aboutsummaryrefslogtreecommitdiffstats
path: root/composer.phar
blob: 1e9ca731cdc54c4d739ea83f24603ba9368bd578 (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 72 65 71 75 69 72 mapPhar('composer.phar');.requir
0140 65 20 27 70 68 61 72 3a 2f 2f 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 2f 62 69 6e 2f 63 6f 6d 70 e.'phar://composer.phar/bin/comp
0160 6f 73 65 72 27 3b 0a 0a 5f 5f 48 41 4c 54 5f 43 4f 4d 50 49 4c 45 52 28 29 3b 20 3f 3e 0d 0a 79 oser';..__HALT_COMPILER();.?>..y
0180 67 00 00 42 01 00 00 11 00 00 00 01 00 0d 00 00 00 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 00 00 g..B.............composer.phar..
01a0 00 00 11 00 00 00 73 72 63 2f 62 6f 6f 74 73 74 72 61 70 2e 70 68 70 c5 01 00 00 6c fb ca 52 c5 ......src/bootstrap.php....l..R.
01c0 01 00 00 a8 af 32 90 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f .....2.............src/Composer/
01e0 49 4f 2f 43 6f 6e 73 6f 6c 65 49 4f 2e 70 68 70 10 0e 00 00 6c fb ca 52 10 0e 00 00 a9 61 9a 71 IO/ConsoleIO.php....l..R.....a.q
0200 b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 4e 75 6c 6c ............src/Composer/IO/Null
0220 49 4f 2e 70 68 70 25 03 00 00 6c fb ca 52 25 03 00 00 7e 60 9f 04 b6 01 00 00 00 00 00 00 1f 00 IO.php%...l..R%...~`............
0240 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 49 4f 49 6e 74 65 72 66 61 63 65 2e 70 68 ..src/Composer/IO/IOInterface.ph
0260 70 f6 03 00 00 6c fb ca 52 f6 03 00 00 47 6a af 3a b6 01 00 00 00 00 00 00 1a 00 00 00 73 72 63 p....l..R....Gj.:............src
0280 2f 43 6f 6d 70 6f 73 65 72 2f 49 4f 2f 42 61 73 65 49 4f 2e 70 68 70 64 04 00 00 6c fb ca 52 64 /Composer/IO/BaseIO.phpd...l..Rd
02a0 04 00 00 e6 47 dc d1 b6 01 00 00 00 00 00 00 1c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f ....G..............src/Composer/
02c0 49 4f 2f 42 75 66 66 65 72 49 4f 2e 70 68 70 2b 04 00 00 6c fb ca 52 2b 04 00 00 5d 0b 12 ed b6 IO/BufferIO.php+...l..R+...]....
02e0 01 00 00 00 00 00 00 29 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/
0300 52 75 6e 53 63 72 69 70 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 6b 06 00 00 6c fb ca 52 6b 06 00 00 RunScriptCommand.phpk...l..Rk...
0320 1e 20 b1 df b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d ............(...src/Composer/Com
0340 6d 61 6e 64 2f 44 69 61 67 6e 6f 73 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 9c 2c 00 00 6c fb ca 52 mand/DiagnoseCommand.php.,..l..R
0360 9c 2c 00 00 c8 5b 1d bd b6 01 00 00 00 00 00 00 27 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 41 72 63 68 69 76 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 7b 0e 00 00 6c /Command/ArchiveCommand.php{...l
03a0 fb ca 52 7b 0e 00 00 6f d2 9b 7c b6 01 00 00 00 00 00 00 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..R{...o..|............src/Compo
03c0 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 ac 04 00 00 6c fb ca 52 ac ser/Command/Command.php....l..R.
03e0 04 00 00 48 17 31 2f 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 ...H.1/........-...src/Composer/
0400 43 6f 6d 6d 61 6e 64 2f 43 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 Command/CreateProjectCommand.php
0420 9b 2e 00 00 6c fb ca 52 9b 2e 00 00 12 7c c1 df b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f ....l..R.....|..........%...src/
0440 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 41 62 6f 75 74 43 6f 6d 6d 61 6e 64 2e 70 68 Composer/Command/AboutCommand.ph
0460 70 b7 02 00 00 6c fb ca 52 b7 02 00 00 bb 4d e6 2a b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 p....l..R.....M.*........$...src
0480 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 53 68 6f 77 43 6f 6d 6d 61 6e 64 2e 70 68 /Composer/Command/ShowCommand.ph
04a0 70 d5 2c 00 00 6c fb ca 52 d5 2c 00 00 21 cf b7 df b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 p.,..l..R.,..!...........&...src
04c0 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 2e /Composer/Command/UpdateCommand.
04e0 70 68 70 9e 11 00 00 6c fb ca 52 9e 11 00 00 94 44 3a 70 b6 01 00 00 00 00 00 00 26 00 00 00 73 php....l..R.....D:p........&...s
0500 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e rc/Composer/Command/ConfigComman
0520 64 2e 70 68 70 d4 28 00 00 6c fb ca 52 d4 28 00 00 45 ad 89 22 b6 01 00 00 00 00 00 00 27 00 00 d.php.(..l..R.(..E.."........'..
0540 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 49 6e 73 74 61 6c 6c 43 6f 6d .src/Composer/Command/InstallCom
0560 6d 61 6e 64 2e 70 68 70 b3 0e 00 00 6c fb ca 52 b3 0e 00 00 99 4c ba de b6 01 00 00 00 00 00 00 mand.php....l..R.....L..........
0580 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 56 61 6c 69 64 61 74 (...src/Composer/Command/Validat
05a0 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 47 08 00 00 6c fb ca 52 47 08 00 00 d9 0e 3b 72 b6 01 00 00 eCommand.phpG...l..RG.....;r....
05c0 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 44 65 70 ....'...src/Composer/Command/Dep
05e0 65 6e 64 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 75 0a 00 00 6c fb ca 52 75 0a 00 00 a2 84 b0 99 b6 endsCommand.phpu...l..Ru........
0600 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f .......&...src/Composer/Command/
0620 53 65 61 72 63 68 43 6f 6d 6d 61 6e 64 2e 70 68 70 5d 09 00 00 6c fb ca 52 5d 09 00 00 8b d4 6b SearchCommand.php]...l..R].....k
0640 65 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 43 6f 6d 6d 61 6e e........*...src/Composer/Comman
0660 64 2f 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 69 18 00 00 6c fb ca 52 69 d/SelfUpdateCommand.phpi...l..Ri
0680 18 00 00 3a ac 11 84 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 ...:...........(...src/Composer/
06a0 43 6f 6d 6d 61 6e 64 2f 4c 69 63 65 6e 73 65 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 2f 0a 00 00 6c Command/LicensesCommand.php/...l
06c0 fb ca 52 2f 0a 00 00 54 dd 81 e3 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..R/...T...........'...src/Compo
06e0 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 52 65 71 75 69 72 65 43 6f 6d 6d 61 6e 64 2e 70 68 70 1f 11 ser/Command/RequireCommand.php..
0700 00 00 6c fb ca 52 1f 11 00 00 e5 41 2a 7d b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f ..l..R.....A*}........,...src/Co
0720 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 mposer/Command/DumpAutoloadComma
0740 6e 64 2e 70 68 70 6e 05 00 00 6c fb ca 52 6e 05 00 00 db 88 c3 e7 b6 01 00 00 00 00 00 00 26 00 nd.phpn...l..Rn...............&.
0760 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 2f 47 6c 6f 62 61 6c 43 6f 6d ..src/Composer/Command/GlobalCom
0780 6d 61 6e 64 2e 70 68 70 09 07 00 00 6c fb ca 52 09 07 00 00 53 b5 16 c6 b6 01 00 00 00 00 00 00 mand.php....l..R....S...........
07a0 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 48 65 6c 70 65 72 2f ,...src/Composer/Command/Helper/
07c0 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 9e 01 00 00 6c fb ca 52 9e 01 00 00 95 82 8c 26 DialogHelper.php....l..R.......&
07e0 b6 01 00 00 00 00 00 00 26 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6d 6d 61 6e 64 ........&...src/Composer/Command
0800 2f 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 2e 70 68 70 47 09 00 00 6c fb ca 52 47 09 00 00 e8 04 /StatusCommand.phpG...l..RG.....
0820 99 4b 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 43 6f 6d 6d 61 .K........$...src/Composer/Comma
0840 6e 64 2f 49 6e 69 74 43 6f 6d 6d 61 6e 64 2e 70 68 70 53 31 00 00 6c fb ca 52 53 31 00 00 df af nd/InitCommand.phpS1..l..RS1....
0860 00 19 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 77 6e 6c ..........)...src/Composer/Downl
0880 6f 61 64 65 72 2f 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 4d 0f 00 00 6c fb ca 52 4d oader/VcsDownloader.phpM...l..RM
08a0 0f 00 00 2d 45 26 ca 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 ...-E&.........)...src/Composer/
08c0 44 6f 77 6e 6c 6f 61 64 65 72 2f 52 61 72 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 c4 07 00 00 Downloader/RarDownloader.php....
08e0 6c fb ca 52 c4 07 00 00 6e 9c 32 2e b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 l..R....n.2.........*...src/Comp
0900 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
0920 68 70 e3 16 00 00 6c fb ca 52 e3 16 00 00 63 19 2f cb b6 01 00 00 00 00 00 00 29 00 00 00 73 72 hp....l..R....c./.........)...sr
0940 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
0960 64 65 72 2e 70 68 70 78 0d 00 00 6c fb ca 52 78 0d 00 00 c4 4e 5b e7 b6 01 00 00 00 00 00 00 30 der.phpx...l..Rx....N[.........0
0980 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
09a0 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 2e 70 68 70 65 1b 00 00 6c fb ca 52 65 1b 00 00 d7 ackageExtractor.phpe...l..Re....
09c0 a1 50 ba 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 .P.........+...src/Composer/Down
09e0 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 71 0f 00 00 6c fb loader/DownloadManager.phpq...l.
0a00 ca 52 71 0f 00 00 25 29 84 77 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .Rq...%).w......../...src/Compos
0a20 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
0a40 65 2e 70 68 70 ca 01 00 00 6c fb ca 52 ca 01 00 00 67 73 21 6c b6 01 00 00 00 00 00 00 2e 00 00 e.php....l..R....gs!l...........
0a60 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
0a80 72 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 f6 00 00 00 6c fb ca 52 f6 00 00 00 cb 38 cd 8a b6 rtException.php....l..R.....8...
0aa0 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
0ac0 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 6c fb ca 52 e5 00 00 er/PharDownloader.php....l..R...
0ae0 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
0b00 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 6c fb wnloader/TarDownloader.php....l.
0b20 ca 52 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 .R......X?........(...src/Compos
0b40 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 24 08 er/Downloader/HgDownloader.php$.
0b60 00 00 6c fb ca 52 24 08 00 00 c8 63 80 ef b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f ..l..R$....c..........1...src/Co
0b80 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e mposer/Downloader/ChangeReportIn
0ba0 74 65 72 66 61 63 65 2e 70 68 70 cc 00 00 00 6c fb ca 52 cc 00 00 00 af e0 a8 bf b6 01 00 00 00 terface.php....l..R.............
0bc0 00 00 00 2d 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 41 ...-...src/Composer/Downloader/A
0be0 72 63 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 2e 0c 00 00 6c fb ca 52 2e 0c 00 00 rchiveDownloader.php....l..R....
0c00 f5 a2 72 e3 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 ..r........./...src/Composer/Dow
0c20 6e 6c 6f 61 64 65 72 2f 46 69 6c 65 73 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 0f nloader/FilesystemException.php.
0c40 01 00 00 6c fb ca 52 0f 01 00 00 5d 54 bd 88 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 ...l..R....]T..............src/C
0c60 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 50 65 72 66 6f 72 63 65 44 6f 77 6e 6c omposer/Downloader/PerforceDownl
0c80 6f 61 64 65 72 2e 70 68 70 c3 06 00 00 6c fb ca 52 c3 06 00 00 0d 64 9c 22 b6 01 00 00 00 00 00 oader.php....l..R.....d.".......
0ca0 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 72 2f 5a 69 70 .)...src/Composer/Downloader/Zip
0cc0 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 b9 0a 00 00 6c fb ca 52 b9 0a 00 00 1f 27 bf 11 b6 01 Downloader.php....l..R.....'....
0ce0 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 6f 77 6e 6c 6f 61 64 65 ......)...src/Composer/Downloade
0d00 72 2f 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 2e 70 68 70 d9 34 00 00 6c fb ca 52 d9 34 00 00 12 r/GitDownloader.php.4..l..R.4...
0d20 c0 76 d7 b6 01 00 00 00 00 00 00 36 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f .v.........6...src/Composer/Repo
0d40 73 69 74 6f 72 79 2f 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f sitory/InvalidRepositoryExceptio
0d60 6e 2e 70 68 70 6e 00 00 00 6c fb ca 52 6e 00 00 00 e0 93 eb 98 b6 01 00 00 00 00 00 00 2b 00 00 n.phpn...l..Rn...............+..
0d80 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 41 72 72 61 79 52 65 .src/Composer/Repository/ArrayRe
0da0 70 6f 73 69 74 6f 72 79 2e 70 68 70 07 0c 00 00 6c fb ca 52 07 0c 00 00 6b ff 62 e7 b6 01 00 00 pository.php....l..R....k.b.....
0dc0 00 00 00 00 30 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 ....0...src/Composer/Repository/
0de0 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 b6 04 00 00 6c fb ca 52 FilesystemRepository.php....l..R
0e00 b6 04 00 00 8e 59 95 7a b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 .....Y.z........7...src/Composer
0e20 2f 52 65 70 6f 73 69 74 6f 72 79 2f 57 72 69 74 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e /Repository/WritableRepositoryIn
0e40 74 65 72 66 61 63 65 2e 70 68 70 89 01 00 00 6c fb ca 52 89 01 00 00 91 2f 73 ef b6 01 00 00 00 terface.php....l..R...../s......
0e60 00 00 00 2a 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 ...*...src/Composer/Repository/P
0e80 65 61 72 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 59 15 00 00 6c fb ca 52 59 15 00 00 c1 61 ad earRepository.phpY...l..RY....a.
0ea0 98 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 69 .........-...src/Composer/Reposi
0ec0 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2e 70 68 70 b3 07 00 00 6c fb tory/RepositoryManager.php....l.
0ee0 ca 52 b3 07 00 00 33 33 b8 ef b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .R....33..........3...src/Compos
0f00 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 57 72 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f 73 er/Repository/WritableArrayRepos
0f20 69 74 6f 72 79 2e 70 68 70 0f 03 00 00 6c fb ca 52 0f 03 00 00 be 47 17 2a b6 01 00 00 00 00 00 itory.php....l..R.....G.*.......
0f40 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 .,...src/Composer/Repository/Vcs
0f60 2f 47 69 74 48 75 62 44 72 69 76 65 72 2e 70 68 70 f2 23 00 00 6c fb ca 52 f2 23 00 00 d9 d9 35 /GitHubDriver.php.#..l..R.#....5
0f80 74 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 t........2...src/Composer/Reposi
0fa0 74 6f 72 79 2f 56 63 73 2f 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 2e 70 68 70 e6 tory/Vcs/GitBitbucketDriver.php.
0fc0 0c 00 00 6c fb ca 52 e6 0c 00 00 51 bc 5d 17 b6 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 ...l..R....Q.].........)...src/C
0fe0 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 73 2f 47 69 74 44 72 69 76 65 72 omposer/Repository/Vcs/GitDriver
1000 2e 70 68 70 a2 15 00 00 6c fb ca 52 a2 15 00 00 5d 09 12 d8 b6 01 00 00 00 00 00 00 2e 00 00 00 .php....l..R....]...............
1020 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 50 65 72 66 src/Composer/Repository/Vcs/Perf
1040 6f 72 63 65 44 72 69 76 65 72 2e 70 68 70 b0 0a 00 00 6c fb ca 52 b0 0a 00 00 9d f6 51 51 b6 01 orceDriver.php....l..R......QQ..
1060 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 ......)...src/Composer/Repositor
1080 79 2f 56 63 73 2f 53 76 6e 44 72 69 76 65 72 2e 70 68 70 d4 18 00 00 6c fb ca 52 d4 18 00 00 95 y/Vcs/SvnDriver.php....l..R.....
10a0 24 fd ee b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f $..........2...src/Composer/Repo
10c0 73 69 74 6f 72 79 2f 56 63 73 2f 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 sitory/Vcs/VcsDriverInterface.ph
10e0 70 89 02 00 00 6c fb ca 52 89 02 00 00 70 4f e3 a4 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 p....l..R....pO..........(...src
1100 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 48 67 44 72 69 76 65 /Composer/Repository/Vcs/HgDrive
1120 72 2e 70 68 70 f2 12 00 00 6c fb ca 52 f2 12 00 00 1c a2 c1 f7 b6 01 00 00 00 00 00 00 29 00 00 r.php....l..R................)..
1140 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 73 .src/Composer/Repository/Vcs/Vcs
1160 44 72 69 76 65 72 2e 70 68 70 2c 06 00 00 6c fb ca 52 2c 06 00 00 a8 67 7d 67 b6 01 00 00 00 00 Driver.php,...l..R,....g}g......
1180 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 56 63 ..1...src/Composer/Repository/Vc
11a0 73 2f 48 67 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 2e 70 68 70 ee 0d 00 00 6c fb ca 52 ee s/HgBitbucketDriver.php....l..R.
11c0 0d 00 00 d5 0f 27 c3 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 .....'.........4...src/Composer/
11e0 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 Repository/InstalledArrayReposit
1200 6f 72 79 2e 70 68 70 a3 00 00 00 6c fb ca 52 a3 00 00 00 2f f6 7e 3e b6 01 00 00 00 00 00 00 37 ory.php....l..R..../.~>........7
1220 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
1240 69 74 6f 72 79 53 65 63 75 72 69 74 79 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 6f 00 00 00 6c fb itorySecurityException.phpo...l.
1260 ca 52 6f 00 00 00 70 d5 ab aa b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .Ro...p...........9...src/Compos
1280 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f er/Repository/StreamableReposito
12a0 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 84 01 00 00 6c fb ca 52 84 01 00 00 38 fe 01 b6 b6 ryInterface.php....l..R....8....
12c0 01 00 00 00 00 00 00 29 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f .......)...src/Composer/Reposito
12e0 72 79 2f 56 63 73 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 df 1c 00 00 6c fb ca 52 df 1c 00 00 ry/VcsRepository.php....l..R....
1300 98 a6 74 f3 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 ..t.............src/Composer/Rep
1320 6f 73 69 74 6f 72 79 2f 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 99 0e ository/PlatformRepository.php..
1340 00 00 6c fb ca 52 99 0e 00 00 31 68 88 d6 b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f ..l..R....1h..........9...src/Co
1360 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 mposer/Repository/InstalledFiles
1380 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 a3 00 00 00 6c fb ca 52 a3 00 00 00 56 ystemRepository.php....l..R....V
13a0 0a 95 5f b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f .._......../...src/Composer/Repo
13c0 73 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 08 09 sitory/CompositeRepository.php..
13e0 00 00 6c fb ca 52 08 09 00 00 34 fa 03 45 b6 01 00 00 00 00 00 00 38 00 00 00 73 72 63 2f 43 6f ..l..R....4..E........8...src/Co
1400 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 mposer/Repository/InstalledRepos
1420 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 2e 70 68 70 87 00 00 00 6c fb ca 52 87 00 00 00 18 a3 itoryInterface.php....l..R......
1440 39 70 b6 01 00 00 00 00 00 00 2e 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 9p............src/Composer/Repos
1460 69 74 6f 72 79 2f 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 06 3a 00 00 itory/ComposerRepository.php.:..
1480 6c fb ca 52 06 3a 00 00 30 dc 6f d5 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 l..R.:..0.o........./...src/Comp
14a0 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 44 65 70 65 6e 64 65 6e 63 79 49 oser/Repository/Pear/DependencyI
14c0 6e 66 6f 2e 70 68 70 71 01 00 00 6c fb ca 52 71 01 00 00 66 ba 54 f2 b6 01 00 00 00 00 00 00 38 nfo.phpq...l..Rq...f.T.........8
14e0 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/
1500 50 61 63 6b 61 67 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 2e 70 68 70 21 16 00 00 6c PackageDependencyParser.php!...l
1520 fb ca 52 21 16 00 00 3d cc f3 46 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..R!...=..F........,...src/Compo
1540 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 43 68 61 6e 6e 65 6c 49 6e 66 6f 2e ser/Repository/Pear/ChannelInfo.
1560 70 68 70 c4 01 00 00 6c fb ca 52 c4 01 00 00 3a 54 2a c9 b6 01 00 00 00 00 00 00 2e 00 00 00 73 php....l..R....:T*.............s
1580 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 68 61 6e rc/Composer/Repository/Pear/Chan
15a0 6e 65 6c 52 65 61 64 65 72 2e 70 68 70 6e 06 00 00 6c fb ca 52 6e 06 00 00 1c 9a 38 15 b6 01 00 nelReader.phpn...l..Rn.....8....
15c0 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 .....,...src/Composer/Repository
15e0 2f 50 65 61 72 2f 50 61 63 6b 61 67 65 49 6e 66 6f 2e 70 68 70 b0 03 00 00 6c fb ca 52 b0 03 00 /Pear/PackageInfo.php....l..R...
1600 00 9f 0d b8 0c b6 01 00 00 00 00 00 00 35 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 .............5...src/Composer/Re
1620 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 pository/Pear/DependencyConstrai
1640 6e 74 2e 70 68 70 71 02 00 00 6c fb ca 52 71 02 00 00 39 0e 17 3d b6 01 00 00 00 00 00 00 34 00 nt.phpq...l..Rq...9..=........4.
1660 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
1680 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 65 61 64 65 72 2e 70 68 70 26 09 00 00 6c fb ca 52 26 09 hannelRest11Reader.php&...l..R&.
16a0 00 00 f2 55 62 08 b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 ...Ub.........,...src/Composer/R
16c0 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 52 65 6c 65 61 73 65 49 6e 66 6f 2e 70 68 70 92 01 epository/Pear/ReleaseInfo.php..
16e0 00 00 6c fb ca 52 92 01 00 00 6f 93 8a c3 b6 01 00 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f ..l..R....o...........2...src/Co
1700 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 50 65 61 72 2f 42 61 73 65 43 68 61 6e 6e mposer/Repository/Pear/BaseChann
1720 65 6c 52 65 61 64 65 72 2e 70 68 70 36 05 00 00 6c fb ca 52 36 05 00 00 2e 66 69 21 b6 01 00 00 elReader.php6...l..R6....fi!....
1740 00 00 00 00 34 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f ....4...src/Composer/Repository/
1760 50 65 61 72 2f 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 72 2e 70 68 70 c1 09 00 00 Pear/ChannelRest10Reader.php....
1780 6c fb ca 52 c1 09 00 00 04 4f 80 eb b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 l..R.....O........../...src/Comp
17a0 6f 73 65 72 2f 52 65 70 6f 73 69 74 6f 72 79 2f 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 oser/Repository/RepositoryInterf
17c0 61 63 65 2e 70 68 70 d4 01 00 00 6c fb ca 52 d4 01 00 00 f2 90 9f c9 b6 01 00 00 00 00 00 00 2e ace.php....l..R.................
17e0 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 41 72 74 69 66 ...src/Composer/Repository/Artif
1800 61 63 74 52 65 70 6f 73 69 74 6f 72 79 2e 70 68 70 46 08 00 00 6c fb ca 52 46 08 00 00 ae 0b 38 actRepository.phpF...l..RF.....8
1820 97 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 52 65 70 6f 73 69 .........-...src/Composer/Reposi
1840 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 47 03 00 00 6c fb tory/PackageRepository.phpG...l.
1860 ca 52 47 03 00 00 ed 04 3a 6b b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .RG.....:k........(...src/Compos
1880 65 72 2f 50 61 63 6b 61 67 65 2f 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 2e 70 68 70 d8 05 er/Package/CompletePackage.php..
18a0 00 00 6c fb ca 52 d8 05 00 00 38 47 6c 5d b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f ..l..R....8Gl]........+...src/Co
18c0 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 44 75 6d 70 65 72 2f 41 72 72 61 79 44 75 6d 70 65 mposer/Package/Dumper/ArrayDumpe
18e0 72 2e 70 68 70 4a 0a 00 00 6c fb ca 52 4a 0a 00 00 0c 86 7c e2 b6 01 00 00 00 00 00 00 37 00 00 r.phpJ...l..RJ.....|.........7..
1900 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 49 6e 76 .src/Composer/Package/Loader/Inv
1920 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 45 02 00 00 6c fb ca 52 alidPackageException.phpE...l..R
1940 45 02 00 00 78 62 13 be b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 E...xb..........*...src/Composer
1960 2f 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 f9 01 /Package/Loader/JsonLoader.php..
1980 00 00 6c fb ca 52 f9 01 00 00 21 7e 88 7b b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f ..l..R....!~.{......../...src/Co
19a0 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 2f 4c 6f 61 64 65 72 49 6e 74 65 mposer/Package/Loader/LoaderInte
19c0 72 66 61 63 65 2e 70 68 70 b2 00 00 00 6c fb ca 52 b2 00 00 00 a6 7d fa ce b6 01 00 00 00 00 00 rface.php....l..R.....}.........
19e0 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 6f 61 64 65 72 .+...src/Composer/Package/Loader
1a00 2f 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 70 a5 17 00 00 6c fb ca 52 a5 17 00 00 91 fe 00 30 /ArrayLoader.php....l..R.......0
1a20 b6 01 00 00 00 00 00 00 35 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 ........5...src/Composer/Package
1a40 2f 4c 6f 61 64 65 72 2f 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 2e 70 68 /Loader/ValidatingArrayLoader.ph
1a60 70 66 2b 00 00 6c fb ca 52 66 2b 00 00 ae b4 d7 72 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 pf+..l..Rf+.....r........1...src
1a80 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 50 61 63 /Composer/Package/Loader/RootPac
1aa0 6b 61 67 65 4c 6f 61 64 65 72 2e 70 68 70 7e 1d 00 00 6c fb ca 52 7e 1d 00 00 02 c5 23 0f b6 01 kageLoader.php~...l..R~.....#...
1ac0 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 61 67 65 2f 4c ..........src/Composer/Package/L
1ae0 6f 63 6b 65 72 2e 70 68 70 f4 1a 00 00 6c fb ca 52 f4 1a 00 00 a4 d3 ac 4a b6 01 00 00 00 00 00 ocker.php....l..R.......J.......
1b00 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 61 63 6b 61 67 .)...src/Composer/Package/Packag
1b20 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 67 06 00 00 6c fb ca 52 67 06 00 00 60 9d 58 c4 b6 01 eInterface.phpg...l..Rg...`.X...
1b40 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 61 67 65 2f 42 ......$...src/Composer/Package/B
1b60 61 73 65 50 61 63 6b 61 67 65 2e 70 68 70 5b 0a 00 00 6c fb ca 52 5b 0a 00 00 24 08 b5 d2 b6 01 asePackage.php[...l..R[...$.....
1b80 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 61 67 65 2f 56 ..........src/Composer/Package/V
1ba0 65 72 73 69 6f 6e 2f 56 65 72 73 69 6f 6e 50 61 72 73 65 72 2e 70 68 70 66 25 00 00 6c fb ca 52 ersion/VersionParser.phpf%..l..R
1bc0 66 25 00 00 e5 90 01 6e b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 f%.....n........1...src/Composer
1be0 2f 50 61 63 6b 61 67 65 2f 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 /Package/CompletePackageInterfac
1c00 65 2e 70 68 70 a1 01 00 00 6c fb ca 52 a1 01 00 00 96 cf 32 97 b6 01 00 00 00 00 00 00 2d 00 00 e.php....l..R......2.........-..
1c20 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 52 6f 6f 74 50 61 63 6b 61 67 .src/Composer/Package/RootPackag
1c40 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 b4 01 00 00 6c fb ca 52 b4 01 00 00 ea 71 4b d0 b6 01 eInterface.php....l..R.....qK...
1c60 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 61 67 65 2f 52 ......$...src/Composer/Package/R
1c80 6f 6f 74 50 61 63 6b 61 67 65 2e 70 68 70 6e 04 00 00 6c fb ca 52 6e 04 00 00 e1 41 43 4f b6 01 ootPackage.phpn...l..Rn....ACO..
1ca0 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 ......3...src/Composer/Package/A
1cc0 72 63 68 69 76 65 72 2f 41 72 63 68 69 76 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ef 00 00 rchiver/ArchiverInterface.php...
1ce0 00 6c fb ca 52 ef 00 00 00 07 3c ca b8 b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d .l..R.....<..........7...src/Com
1d00 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 43 6f 6d 70 6f 73 65 72 45 poser/Package/Archiver/ComposerE
1d20 78 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 1f 01 00 00 6c fb ca 52 1f 01 00 00 8b 53 5a 30 xcludeFilter.php....l..R.....SZ0
1d40 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 61 67 65 ............src/Composer/Package
1d60 2f 41 72 63 68 69 76 65 72 2f 50 68 61 72 41 72 63 68 69 76 65 72 2e 70 68 70 5b 03 00 00 6c fb /Archiver/PharArchiver.php[...l.
1d80 ca 52 5b 03 00 00 ca 35 cd f8 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .R[....5..........3...src/Compos
1da0 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 42 61 73 65 45 78 63 6c 75 64 65 46 er/Package/Archiver/BaseExcludeF
1dc0 69 6c 74 65 72 2e 70 68 70 9d 06 00 00 6c fb ca 52 9d 06 00 00 90 d5 23 26 b6 01 00 00 00 00 00 ilter.php....l..R......#&.......
1de0 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 .2...src/Composer/Package/Archiv
1e00 65 72 2f 47 69 74 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e 70 68 70 77 03 00 00 6c fb ca 52 77 er/GitExcludeFilter.phpw...l..Rw
1e20 03 00 00 4c 67 55 bb 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 ...LgU.........7...src/Composer/
1e40 50 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 41 72 63 68 69 76 61 62 6c 65 46 69 6c 65 73 Package/Archiver/ArchivableFiles
1e60 46 69 6e 64 65 72 2e 70 68 70 65 04 00 00 6c fb ca 52 65 04 00 00 54 ec 8c 7a b6 01 00 00 00 00 Finder.phpe...l..Re...T..z......
1e80 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 41 72 63 68 69 ..0...src/Composer/Package/Archi
1ea0 76 65 72 2f 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 2e 70 68 70 4d 0b 00 00 6c fb ca 52 4d 0b ver/ArchiveManager.phpM...l..RM.
1ec0 00 00 de ed 7e f5 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 ....~.........1...src/Composer/P
1ee0 61 63 6b 61 67 65 2f 41 72 63 68 69 76 65 72 2f 48 67 45 78 63 6c 75 64 65 46 69 6c 74 65 72 2e ackage/Archiver/HgExcludeFilter.
1f00 70 68 70 13 05 00 00 6c fb ca 52 13 05 00 00 7e 94 0e b8 b6 01 00 00 00 00 00 00 29 00 00 00 73 php....l..R....~...........)...s
1f20 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 52 6f 6f 74 41 6c 69 61 73 50 61 63 rc/Composer/Package/RootAliasPac
1f40 6b 61 67 65 2e 70 68 70 de 03 00 00 6c fb ca 52 de 03 00 00 d5 12 3e 05 b6 01 00 00 00 00 00 00 kage.php....l..R......>.........
1f60 20 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 61 63 6b 61 67 65 ....src/Composer/Package/Package
1f80 2e 70 68 70 8e 13 00 00 6c fb ca 52 8e 13 00 00 5a be a6 ce b6 01 00 00 00 00 00 00 25 00 00 00 .php....l..R....Z...........%...
1fa0 73 72 63 2f 43 6f 6d 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 src/Composer/Package/AliasPackag
1fc0 65 2e 70 68 70 45 12 00 00 6c fb ca 52 45 12 00 00 56 6e f3 c0 b6 01 00 00 00 00 00 00 1d 00 00 e.phpE...l..RE...Vn.............
1fe0 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 2e 70 68 70 51 05 .src/Composer/Package/Link.phpQ.
2000 00 00 6c fb ca 52 51 05 00 00 87 cf 39 04 b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f ..l..RQ.....9.........7...src/Co
2020 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 45 6d mposer/Package/LinkConstraint/Em
2040 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 ea 01 00 00 6c fb ca 52 ea 01 00 00 00 ec 1b ptyConstraint.php....l..R.......
2060 be b6 01 00 00 00 00 00 00 37 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 .........7...src/Composer/Packag
2080 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 e/LinkConstraint/MultiConstraint
20a0 2e 70 68 70 67 04 00 00 6c fb ca 52 67 04 00 00 78 f5 18 38 b6 01 00 00 00 00 00 00 39 00 00 00 .phpg...l..Rg...x..8........9...
20c0 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 src/Composer/Package/LinkConstra
20e0 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 c9 08 00 00 6c fb ca int/VersionConstraint.php....l..
2100 52 c9 08 00 00 79 3f b3 d8 b6 01 00 00 00 00 00 00 3a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 R....y?..........:...src/Compose
2120 72 2f 50 61 63 6b 61 67 65 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 53 70 65 63 69 66 69 r/Package/LinkConstraint/Specifi
2140 63 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 71 02 00 00 6c fb ca 52 71 02 00 00 96 53 9a f8 b6 cConstraint.phpq...l..Rq....S...
2160 01 00 00 00 00 00 00 3f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 61 63 6b 61 67 65 2f .......?...src/Composer/Package/
2180 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 2f 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 LinkConstraint/LinkConstraintInt
21a0 65 72 66 61 63 65 2e 70 68 70 15 01 00 00 6c fb ca 52 15 01 00 00 e5 fe 87 a2 b6 01 00 00 00 00 erface.php....l..R..............
21c0 00 00 16 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 61 63 68 65 2e 70 68 70 dc 0d 00 00 ......src/Composer/Cache.php....
21e0 6c fb ca 52 dc 0d 00 00 0d 71 4a 60 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 l..R.....qJ`........3...src/Comp
2200 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 6f 6c 69 63 79 49 6e oser/DependencyResolver/PolicyIn
2220 74 65 72 66 61 63 65 2e 70 68 70 91 01 00 00 6c fb ca 52 91 01 00 00 42 18 9f b6 b6 01 00 00 00 terface.php....l..R....B........
2240 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 65 ...+...src/Composer/DependencyRe
2260 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 74 2e 70 68 70 9b 09 00 00 6c fb ca 52 9b 09 00 00 4a 79 solver/RuleSet.php....l..R....Jy
2280 0c c0 b6 01 00 00 00 00 00 00 36 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e ..........6...src/Composer/Depen
22a0 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e dencyResolver/SolverBugException
22c0 2e 70 68 70 98 01 00 00 6c fb ca 52 98 01 00 00 7f 22 71 4e b6 01 00 00 00 00 00 00 31 00 00 00 .php....l..R....."qN........1...
22e0 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/
2300 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 2e 70 68 70 80 18 00 00 6c fb ca 52 80 18 00 00 31 88 d5 DefaultPolicy.php....l..R....1..
2320 4c b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 L........-...src/Composer/Depend
2340 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 44 65 63 69 73 69 6f 6e 73 2e 70 68 70 51 0f 00 00 6c fb encyResolver/Decisions.phpQ...l.
2360 ca 52 51 0f 00 00 3f 98 ac 24 b6 01 00 00 00 00 00 00 31 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .RQ...?..$........1...src/Compos
2380 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 4e er/DependencyResolver/RuleWatchN
23a0 6f 64 65 2e 70 68 70 ea 03 00 00 6c fb ca 52 ea 03 00 00 10 5a fe 0e b6 01 00 00 00 00 00 00 3b ode.php....l..R.....Z..........;
23c0 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
23e0 65 72 2f 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 25 04 er/SolverProblemsException.php%.
2400 00 00 6c fb ca 52 25 04 00 00 54 1a ed 50 b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f ..l..R%...T..P......../...src/Co
2420 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 54 72 61 6e 73 61 mposer/DependencyResolver/Transa
2440 63 74 69 6f 6e 2e 70 68 70 11 14 00 00 6c fb ca 52 11 14 00 00 93 fe de 87 b6 01 00 00 00 00 00 ction.php....l..R...............
2460 00 40 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f .@...src/Composer/DependencyReso
2480 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f lver/Operation/UninstallOperatio
24a0 6e 2e 70 68 70 49 02 00 00 6c fb ca 52 49 02 00 00 46 fb c2 c9 b6 01 00 00 00 00 00 00 3d 00 00 n.phpI...l..RI...F...........=..
24c0 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
24e0 2f 4f 70 65 72 61 74 69 6f 6e 2f 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 68 03 /Operation/UpdateOperation.phph.
2500 00 00 6c fb ca 52 68 03 00 00 f6 53 d5 5d b6 01 00 00 00 00 00 00 49 00 00 00 73 72 63 2f 43 6f ..l..Rh....S.]........I...src/Co
2520 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 mposer/DependencyResolver/Operat
2540 69 6f 6e 2f 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 2e ion/MarkAliasInstalledOperation.
2560 70 68 70 d0 02 00 00 6c fb ca 52 d0 02 00 00 78 55 5a 61 b6 01 00 00 00 00 00 00 3e 00 00 00 73 php....l..R....xUZa........>...s
2580 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
25a0 70 65 72 61 74 69 6f 6e 2f 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 43 02 00 peration/InstallOperation.phpC..
25c0 00 6c fb ca 52 43 02 00 00 b4 5c f5 2a b6 01 00 00 00 00 00 00 3d 00 00 00 73 72 63 2f 43 6f 6d .l..RC....\.*........=...src/Com
25e0 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 poser/DependencyResolver/Operati
2600 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 6c fb ca 52 eb 01 on/SolverOperation.php....l..R..
2620 00 00 c4 a7 dd 94 b6 01 00 00 00 00 00 00 4b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 ..............K...src/Composer/D
2640 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 6f 6e 2f 4d 61 72 6b ependencyResolver/Operation/Mark
2660 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 2e 70 68 70 d6 02 00 AliasUninstalledOperation.php...
2680 00 6c fb ca 52 d6 02 00 00 5f 69 c7 ab b6 01 00 00 00 00 00 00 40 00 00 00 73 72 63 2f 43 6f 6d .l..R...._i..........@...src/Com
26a0 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 4f 70 65 72 61 74 69 poser/DependencyResolver/Operati
26c0 6f 6e 2f 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 d3 00 00 00 6c fb ca on/OperationInterface.php....l..
26e0 52 d3 00 00 00 d9 e2 26 e4 b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 R......&.........(...src/Compose
2700 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 50 6f 6f 6c 2e 70 68 70 03 2a 00 r/DependencyResolver/Pool.php.*.
2720 00 6c fb ca 52 03 2a 00 00 eb cb 0d 1e b6 01 00 00 00 00 00 00 28 00 00 00 73 72 63 2f 43 6f 6d .l..R.*..............(...src/Com
2740 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 2e 70 68 poser/DependencyResolver/Rule.ph
2760 70 c7 14 00 00 6c fb ca 52 c7 14 00 00 fa 27 10 47 b6 01 00 00 00 00 00 00 34 00 00 00 73 72 63 p....l..R.....'.G........4...src
2780 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 6c /Composer/DependencyResolver/Rul
27a0 65 53 65 74 47 65 6e 65 72 61 74 6f 72 2e 70 68 70 4f 15 00 00 6c fb ca 52 4f 15 00 00 5f 3c a0 eSetGenerator.phpO...l..RO..._<.
27c0 3d b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 =......../...src/Composer/Depend
27e0 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 44 65 62 75 67 53 6f 6c 76 65 72 2e 70 68 70 89 06 00 00 encyResolver/DebugSolver.php....
2800 6c fb ca 52 89 06 00 00 a3 d2 ad 85 b6 01 00 00 00 00 00 00 33 00 00 00 73 72 63 2f 43 6f 6d 70 l..R................3...src/Comp
2820 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 53 65 74 49 oser/DependencyResolver/RuleSetI
2840 74 65 72 61 74 6f 72 2e 70 68 70 14 06 00 00 6c fb ca 52 14 06 00 00 7d f5 c7 f9 b6 01 00 00 00 terator.php....l..R....}........
2860 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 ...2...src/Composer/DependencyRe
2880 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 2e 70 68 70 69 01 00 00 6c fb ca solver/RuleWatchChain.phpi...l..
28a0 52 69 01 00 00 68 ef 9a 2c b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 Ri...h..,........*...src/Compose
28c0 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 53 6f 6c 76 65 72 2e 70 68 70 71 r/DependencyResolver/Solver.phpq
28e0 35 00 00 6c fb ca 52 71 35 00 00 72 67 b5 36 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 5..l..Rq5..rg.6........+...src/C
2900 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 2f 52 65 71 75 65 omposer/DependencyResolver/Reque
2920 73 74 2e 70 68 70 89 04 00 00 6c fb ca 52 89 04 00 00 31 1a b2 49 b6 01 00 00 00 00 00 00 2b 00 st.php....l..R....1..I........+.
2940 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 ..src/Composer/DependencyResolve
2960 72 2f 50 72 6f 62 6c 65 6d 2e 70 68 70 b7 10 00 00 6c fb ca 52 b7 10 00 00 1b 14 dc 42 b6 01 00 r/Problem.php....l..R.......B...
2980 00 00 00 00 00 32 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 44 65 70 65 6e 64 65 6e 63 79 .....2...src/Composer/Dependency
29a0 52 65 73 6f 6c 76 65 72 2f 52 75 6c 65 57 61 74 63 68 47 72 61 70 68 2e 70 68 70 e1 06 00 00 6c Resolver/RuleWatchGraph.php....l
29c0 fb ca 52 e1 06 00 00 89 72 f4 76 b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..R.....r.v........-...src/Compo
29e0 73 65 72 2f 43 6f 6e 66 69 67 2f 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 61 63 65 ser/Config/ConfigSourceInterface
2a00 2e 70 68 70 8d 01 00 00 6c fb ca 52 8d 01 00 00 21 94 02 70 b6 01 00 00 00 00 00 00 28 00 00 00 .php....l..R....!..p........(...
2a20 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 66 69 67 2f 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f src/Composer/Config/JsonConfigSo
2a40 75 72 63 65 2e 70 68 70 1f 08 00 00 6c fb ca 52 1f 08 00 00 1e 82 08 d0 b6 01 00 00 00 00 00 00 urce.php....l..R................
2a60 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 50 6c 75 67 69 6e 45 76 $...src/Composer/Plugin/PluginEv
2a80 65 6e 74 73 2e 70 68 70 a4 00 00 00 6c fb ca 52 a4 00 00 00 30 ef de 58 b6 01 00 00 00 00 00 00 ents.php....l..R....0..X........
2aa0 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 43 6f 6d 6d 61 6e 64 45 $...src/Composer/Plugin/CommandE
2ac0 76 65 6e 74 2e 70 68 70 a2 02 00 00 6c fb ca 52 a2 02 00 00 59 d8 5d d3 b6 01 00 00 00 00 00 00 vent.php....l..R....Y.].........
2ae0 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f 50 72 65 46 69 6c 65 44 ,...src/Composer/Plugin/PreFileD
2b00 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2e 70 68 70 60 02 00 00 6c fb ca 52 60 02 00 00 00 39 2d ce ownloadEvent.php`...l..R`....9-.
2b20 b6 01 00 00 00 00 00 00 27 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 50 6c 75 67 69 6e 2f ........'...src/Composer/Plugin/
2b40 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 f4 00 00 00 6c fb ca 52 f4 00 00 00 0c PluginInterface.php....l..R.....
2b60 31 89 25 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 50 6c 75 67 1.%........%...src/Composer/Plug
2b80 69 6e 2f 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 2e 70 68 70 8e 15 00 00 6c fb ca 52 8e 15 00 00 in/PluginManager.php....l..R....
2ba0 4a c4 29 29 b6 01 00 00 00 00 00 00 18 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 46 61 63 J.))............src/Composer/Fac
2bc0 74 6f 72 79 2e 70 68 70 cc 29 00 00 6c fb ca 52 cc 29 00 00 b0 21 2d c8 b6 01 00 00 00 00 00 00 tory.php.)..l..R.)...!-.........
2be0 20 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 46 69 6c 65 73 79 73 74 65 6d ....src/Composer/Util/Filesystem
2c00 2e 70 68 70 e9 1a 00 00 6c fb ca 52 e9 1a 00 00 30 37 9c b2 b6 01 00 00 00 00 00 00 1c 00 00 00 .php....l..R....07..............
2c20 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 69 6c 2f 47 69 74 48 75 62 2e 70 68 70 5b 0a 00 00 src/Composer/Util/GitHub.php[...
2c40 6c fb ca 52 5b 0a 00 00 a3 06 52 24 b6 01 00 00 00 00 00 00 1e 00 00 00 73 72 63 2f 43 6f 6d 70 l..R[.....R$............src/Comp
2c60 6f 73 65 72 2f 55 74 69 6c 2f 50 65 72 66 6f 72 63 65 2e 70 68 70 5e 30 00 00 6c fb ca 52 5e 30 oser/Util/Perforce.php^0..l..R^0
2c80 00 00 8b 6e 7c ac 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 ...n|.........%...src/Composer/U
2ca0 74 69 6c 2f 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2e 70 68 70 57 06 00 00 6c fb ca 52 57 til/ProcessExecutor.phpW...l..RW
2cc0 06 00 00 d4 15 20 b8 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 ...................src/Composer/
2ce0 55 74 69 6c 2f 47 69 74 2e 70 68 70 43 02 00 00 6c fb ca 52 43 02 00 00 16 8e e3 2f b6 01 00 00 Util/Git.phpC...l..RC....../....
2d00 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 52 65 6d 6f 74 65 ....&...src/Composer/Util/Remote
2d20 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 d6 1c 00 00 6c fb ca 52 d6 1c 00 00 33 f5 45 12 b6 01 Filesystem.php....l..R....3.E...
2d40 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 6c 2f 53 74 72 65 ......*...src/Composer/Util/Stre
2d60 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 2e 70 68 70 6b 0b 00 00 6c fb ca 52 6b 0b 00 00 amContextFactory.phpk...l..Rk...
2d80 2a 55 f4 3a 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 *U.:........%...src/Composer/Uti
2da0 6c 2f 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 2e 70 68 70 27 0d 00 00 6c fb ca 52 27 0d 00 l/ConfigValidator.php'...l..R'..
2dc0 00 f5 c2 50 cb b6 01 00 00 00 00 00 00 22 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 55 74 ...P........."...src/Composer/Ut
2de0 69 6c 2f 45 72 72 6f 72 48 61 6e 64 6c 65 72 2e 70 68 70 14 02 00 00 6c fb ca 52 14 02 00 00 b4 il/ErrorHandler.php....l..R.....
2e00 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 2f 55 74 69 6c @..........+...src/Composer/Util
2e20 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 0a 00 00 6c fb /SpdxLicenseIdentifier.php6...l.
2e40 ca 52 36 0a 00 00 c4 36 bb 6f b6 01 00 00 00 00 00 00 24 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .R6....6.o........$...src/Compos
2e60 65 72 2f 55 74 69 6c 2f 4e 6f 50 72 6f 78 79 50 61 74 74 65 72 6e 2e 70 68 70 bd 06 00 00 6c fb er/Util/NoProxyPattern.php....l.
2e80 ca 52 bd 06 00 00 78 0e 46 7e b6 01 00 00 00 00 00 00 19 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 .R....x.F~............src/Compos
2ea0 65 72 2f 55 74 69 6c 2f 53 76 6e 2e 70 68 70 9f 0d 00 00 6c fb ca 52 9f 0d 00 00 01 50 74 aa b6 er/Util/Svn.php....l..R.....Pt..
2ec0 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 70 6f 73 65 72 ...........src/Composer/Composer
2ee0 2e 70 68 70 e5 08 00 00 6c fb ca 52 e5 08 00 00 88 57 b2 f3 b6 01 00 00 00 00 00 00 25 00 00 00 .php....l..R.....W..........%...
2f00 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 75 6c 61 74 6f src/Composer/Json/JsonManipulato
2f20 72 2e 70 68 70 bc 1e 00 00 6c fb ca 52 bc 1e 00 00 61 a8 21 23 b6 01 00 00 00 00 00 00 1e 00 00 r.php....l..R....a.!#...........
2f40 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 2e 70 68 70 62 .src/Composer/Json/JsonFile.phpb
2f60 14 00 00 6c fb ca 52 62 14 00 00 4b 74 c8 cd b6 01 00 00 00 00 00 00 2d 00 00 00 73 72 63 2f 43 ...l..Rb...Kt..........-...src/C
2f80 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 45 78 63 65 70 omposer/Json/JsonValidationExcep
2fa0 74 69 6f 6e 2e 70 68 70 32 01 00 00 6c fb ca 52 32 01 00 00 39 62 84 31 b6 01 00 00 00 00 00 00 tion.php2...l..R2...9b.1........
2fc0 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 1c 13 00 00 6c ....src/Composer/Config.php....l
2fe0 fb ca 52 1c 13 00 00 ac 31 13 47 b6 01 00 00 00 00 00 00 39 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..R.....1.G........9...src/Compo
3000 73 65 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2f 45 76 65 6e 74 53 75 62 73 63 72 69 ser/EventDispatcher/EventSubscri
3020 62 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 a9 00 00 00 6c fb ca 52 a9 00 00 00 68 b7 01 30 berInterface.php....l..R....h..0
3040 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 45 76 65 6e 74 44 69 ........&...src/Composer/EventDi
3060 73 70 61 74 63 68 65 72 2f 45 76 65 6e 74 2e 70 68 70 a1 01 00 00 6c fb ca 52 a1 01 00 00 ce 94 spatcher/Event.php....l..R......
3080 b6 4c b6 01 00 00 00 00 00 00 30 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 45 76 65 6e 74 .L........0...src/Composer/Event
30a0 44 69 73 70 61 74 63 68 65 72 2f 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2e 70 68 70 8f 12 Dispatcher/EventDispatcher.php..
30c0 00 00 6c fb ca 52 8f 12 00 00 77 07 69 16 b6 01 00 00 00 00 00 00 1d 00 00 00 73 72 63 2f 43 6f ..l..R....w.i.............src/Co
30e0 6d 70 6f 73 65 72 2f 53 63 72 69 70 74 2f 45 76 65 6e 74 2e 70 68 70 5a 02 00 00 6c fb ca 52 5a mposer/Script/Event.phpZ...l..RZ
3100 02 00 00 c7 ef e8 19 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/
3120 53 63 72 69 70 74 2f 53 63 72 69 70 74 45 76 65 6e 74 73 2e 70 68 70 e1 03 00 00 6c fb ca 52 e1 Script/ScriptEvents.php....l..R.
3140 03 00 00 28 71 50 45 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 ...(qPE........$...src/Composer/
3160 53 63 72 69 70 74 2f 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 2e 70 68 70 57 00 00 00 6c fb ca 52 57 Script/CommandEvent.phpW...l..RW
3180 00 00 00 a3 56 5a 74 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 ....VZt........$...src/Composer/
31a0 53 63 72 69 70 74 2f 50 61 63 6b 61 67 65 45 76 65 6e 74 2e 70 68 70 f7 01 00 00 6c fb ca 52 f7 Script/PackageEvent.php....l..R.
31c0 01 00 00 61 16 b1 09 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 ...a...........(...src/Composer/
31e0 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 2b 05 00 00 6c Installer/NoopInstaller.php+...l
3200 fb ca 52 2b 05 00 00 c0 b7 4d 7d b6 01 00 00 00 00 00 00 2f 00 00 00 73 72 63 2f 43 6f 6d 70 6f ..R+.....M}......../...src/Compo
3220 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 73 74 61 6c 6c ser/Installer/MetapackageInstall
3240 65 72 2e 70 68 70 9c 04 00 00 6c fb ca 52 9c 04 00 00 c6 12 c5 21 b6 01 00 00 00 00 00 00 28 00 er.php....l..R.......!........(.
3260 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 61 72 49 6e 73 ..src/Composer/Installer/PearIns
3280 74 61 6c 6c 65 72 2e 70 68 70 09 11 00 00 6c fb ca 52 09 11 00 00 a8 08 4d 69 b6 01 00 00 00 00 taller.php....l..R......Mi......
32a0 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 72 2f 50 72 6f ..+...src/Composer/Installer/Pro
32c0 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 1d 06 00 00 6c fb ca 52 1d 06 00 00 2a 30 40 jectInstaller.php....l..R....*0@
32e0 50 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c P........+...src/Composer/Instal
3300 6c 65 72 2f 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 2e 70 68 70 ff 1b 00 00 6c fb ca 52 ler/LibraryInstaller.php....l..R
3320 ff 1b 00 00 e4 6e 15 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 .....n..............src/Composer
3340 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 67 65 72 2e 70 /Installer/InstallationManager.p
3360 68 70 65 14 00 00 6c fb ca 52 65 14 00 00 b7 9b 10 87 b6 01 00 00 00 00 00 00 2a 00 00 00 73 72 hpe...l..Re...............*...sr
3380 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 50 6c 75 67 69 6e 49 6e 73 74 61 c/Composer/Installer/PluginInsta
33a0 6c 6c 65 72 2e 70 68 70 3f 06 00 00 6c fb ca 52 3f 06 00 00 5f fe d8 bb b6 01 00 00 00 00 00 00 ller.php?...l..R?..._...........
33c0 2d 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 49 6e 73 74 61 6c 6c 65 72 2f 49 6e 73 74 61 -...src/Composer/Installer/Insta
33e0 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 c5 02 00 00 6c fb ca 52 c5 02 00 00 48 53 93 llerInterface.php....l..R....HS.
3400 a1 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 43 6f 6e 73 6f 6c .........$...src/Composer/Consol
3420 65 2f 41 70 70 6c 69 63 61 74 69 6f 6e 2e 70 68 70 b5 18 00 00 6c fb ca 52 b5 18 00 00 f0 f2 40 e/Application.php....l..R......@
3440 fd b6 01 00 00 00 00 00 00 2c 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 72 2f 43 6f 6e 73 6f 6c .........,...src/Composer/Consol
3460 65 2f 48 74 6d 6c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 2e 70 68 70 d0 05 00 00 6c fb ca e/HtmlOutputFormatter.php....l..
3480 52 d0 05 00 00 dd 46 d7 ea b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f 43 6f 6d 70 6f 73 65 R.....F..........+...src/Compose
34a0 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
34c0 23 42 00 00 6c fb ca 52 23 42 00 00 8e da 2d 77 b6 01 00 00 00 00 00 00 2b 00 00 00 73 72 63 2f #B..l..R#B....-w........+...src/
34e0 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
3500 74 6f 72 2e 70 68 70 de 0a 00 00 6c fb ca 52 de 0a 00 00 b8 e5 f7 5f b6 01 00 00 00 00 00 00 1a tor.php....l..R......._.........
3520 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 63 61 00 ...src/Composer/Installer.phpca.
3540 00 6c fb ca 52 63 61 00 00 98 81 cd da b6 01 00 00 00 00 00 00 25 00 00 00 73 72 63 2f 43 6f 6d .l..Rca..............%...src/Com
3560 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 17 2b poser/Autoload/ClassLoader.php.+
3580 00 00 6c fb ca 52 17 2b 00 00 8a d1 74 ee b6 01 00 00 00 00 00 00 18 00 00 00 72 65 73 2f 73 70 ..l..R.+....t.............res/sp
35a0 64 78 2d 69 64 65 6e 74 69 66 69 65 72 2e 6a 73 6f 6e 69 0b 00 00 6c fb ca 52 69 0b 00 00 e6 97 dx-identifier.jsoni...l..Ri.....
35c0 52 1a 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 R.............res/composer-schem
35e0 61 2e 6a 73 6f 6e 6c 46 00 00 6c fb ca 52 6c 46 00 00 32 b1 3c 38 b6 01 00 00 00 00 00 00 1f 00 a.jsonlF..l..RlF..2.<8..........
3600 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
3620 65 00 24 00 00 6c fb ca 52 00 24 00 00 95 8d a5 76 b6 01 00 00 00 00 00 00 3f 00 00 00 76 65 6e e.$..l..R.$.....v........?...ven
3640 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
3660 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 0f 03 00 00 onent/Process/PhpProcess.php....
3680 6c fb ca 52 0f 03 00 00 38 5a d4 b7 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 l..R....8Z..........E...vendor/s
36a0 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
36c0 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 b3 04 00 /Process/ExecutableFinder.php...
36e0 00 6c fb ca 52 b3 04 00 00 09 4a ee 9f b6 01 00 00 00 00 00 00 3c 00 00 00 76 65 6e 64 6f 72 2f .l..R.....J..........<...vendor/
3700 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
3720 74 2f 50 72 6f 63 65 73 73 2f 50 72 6f 63 65 73 73 2e 70 68 70 75 3d 00 00 6c fb ca 52 75 3d 00 t/Process/Process.phpu=..l..Ru=.
3740 00 19 b6 bc cc b6 01 00 00 00 00 00 00 41 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f .............A...vendor/symfony/
3760 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
3780 73 2f 50 72 6f 63 65 73 73 50 69 70 65 73 2e 70 68 70 f6 0f 00 00 6c fb ca 52 f6 0f 00 00 d9 b3 s/ProcessPipes.php....l..R......
37a0 ce d2 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 70 72 6f ..........C...vendor/symfony/pro
37c0 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 2f 50 cess/Symfony/Component/Process/P
37e0 72 6f 63 65 73 73 42 75 69 6c 64 65 72 2e 70 68 70 4b 09 00 00 6c fb ca 52 4b 09 00 00 e0 51 e4 rocessBuilder.phpK...l..RK....Q.
3800 72 b6 01 00 00 00 00 00 00 41 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 r........A...vendor/symfony/proc
3820 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 2f 50 72 ess/Symfony/Component/Process/Pr
3840 6f 63 65 73 73 55 74 69 6c 73 2e 70 68 70 87 02 00 00 6c fb ca 52 87 02 00 00 3b f0 6a ce b6 01 ocessUtils.php....l..R....;.j...
3860 00 00 00 00 00 00 57 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 ......W...vendor/symfony/process
3880 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 2f 45 78 63 65 70 /Symfony/Component/Process/Excep
38a0 74 69 6f 6e 2f 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 2e 70 68 tion/ProcessTimedOutException.ph
38c0 70 1f 04 00 00 6c fb ca 52 1f 04 00 00 2e 09 c3 e1 b6 01 00 00 00 00 00 00 51 00 00 00 76 65 6e p....l..R................Q...ven
38e0 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
3900 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 45 78 63 65 70 74 69 6f onent/Process/Exception/Exceptio
3920 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 66 00 00 00 6c fb ca 52 66 00 00 00 5d f6 3e 54 b6 01 nInterface.phpf...l..Rf...].>T..
3940 00 00 00 00 00 00 4f 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 ......O...vendor/symfony/process
3960 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 2f 45 78 63 65 70 /Symfony/Component/Process/Excep
3980 74 69 6f 6e 2f 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 98 00 00 00 6c fb ca tion/RuntimeException.php....l..
39a0 52 98 00 00 00 a2 1b d8 3a b6 01 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 R.......:........M...vendor/symf
39c0 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 ony/process/Symfony/Component/Pr
39e0 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 2e 70 ocess/Exception/LogicException.p
3a00 68 70 94 00 00 00 6c fb ca 52 94 00 00 00 20 b3 e3 f1 b6 01 00 00 00 00 00 00 55 00 00 00 76 65 hp....l..R................U...ve
3a20 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d ndor/symfony/process/Symfony/Com
3a40 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 45 78 63 65 70 74 69 6f 6e 2f 50 72 6f 63 65 73 73 ponent/Process/Exception/Process
3a60 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 ed 02 00 00 6c fb ca 52 ed 02 00 00 7c FailedException.php....l..R....|
3a80 ee e7 aa b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 ...........W...vendor/symfony/pr
3aa0 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 2f ocess/Symfony/Component/Process/
3ac0 45 78 63 65 70 74 69 6f 6e 2f 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 Exception/InvalidArgumentExcepti
3ae0 6f 6e 2e 70 68 70 a8 00 00 00 6c fb ca 52 a8 00 00 00 d0 c0 2b 5f b6 01 00 00 00 00 00 00 48 00 on.php....l..R......+_........H.
3b00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 70 72 6f 63 65 73 73 2f 53 79 6d 66 6f 6e 79 ..vendor/symfony/process/Symfony
3b20 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 50 72 6f 63 65 73 73 2f 50 68 70 45 78 65 63 75 74 61 62 6c 65 /Component/Process/PhpExecutable
3b40 46 69 6e 64 65 72 2e 70 68 70 28 03 00 00 6c fb ca 52 28 03 00 00 09 1d 0c 8f b6 01 00 00 00 00 Finder.php(...l..R(.............
3b60 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 79 6d 66 6f 6e ..5...vendor/symfony/yaml/Symfon
3b80 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 6d 6c 2f 50 61 72 73 65 72 2e 70 68 70 59 33 00 00 6c y/Component/Yaml/Parser.phpY3..l
3ba0 fb ca 52 59 33 00 00 b2 87 1f 0e b6 01 00 00 00 00 00 00 38 00 00 00 76 65 6e 64 6f 72 2f 73 79 ..RY3..............8...vendor/sy
3bc0 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 6d mfony/yaml/Symfony/Component/Yam
3be0 6c 2f 55 6e 65 73 63 61 70 65 72 2e 70 68 70 09 08 00 00 6c fb ca 52 09 08 00 00 07 d5 71 88 b6 l/Unescaper.php....l..R......q..
3c00 01 00 00 00 00 00 00 33 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 .......3...vendor/symfony/yaml/S
3c20 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 6d 6c 2f 59 61 6d 6c 2e 70 68 70 cb 03 ymfony/Component/Yaml/Yaml.php..
3c40 00 00 6c fb ca 52 cb 03 00 00 15 e4 f3 0c b6 01 00 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f 72 ..l..R................5...vendor
3c60 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f /symfony/yaml/Symfony/Component/
3c80 59 61 6d 6c 2f 44 75 6d 70 65 72 2e 70 68 70 09 04 00 00 6c fb ca 52 09 04 00 00 17 8d ff c7 b6 Yaml/Dumper.php....l..R.........
3ca0 01 00 00 00 00 00 00 47 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 .......G...vendor/symfony/yaml/S
3cc0 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 6d 6c 2f 45 78 63 65 70 74 69 6f 6e 2f ymfony/Component/Yaml/Exception/
3ce0 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 c0 06 00 00 6c fb ca 52 c0 06 00 00 cc e1 ParseException.php....l..R......
3d00 8e 77 b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d .w........K...vendor/symfony/yam
3d20 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 6d 6c 2f 45 78 63 65 70 74 69 l/Symfony/Component/Yaml/Excepti
3d40 6f 6e 2f 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 2e 70 68 70 65 00 00 00 6c fb ca on/ExceptionInterface.phpe...l..
3d60 52 65 00 00 00 ce 63 ba 07 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 Re....c..........I...vendor/symf
3d80 6f 6e 79 2f 79 61 6d 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 6d 6c 2f ony/yaml/Symfony/Component/Yaml/
3da0 45 78 63 65 70 74 69 6f 6e 2f 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 97 00 Exception/RuntimeException.php..
3dc0 00 00 6c fb ca 52 97 00 00 00 87 07 f5 81 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 ..l..R................F...vendor
3de0 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f /symfony/yaml/Symfony/Component/
3e00 59 61 6d 6c 2f 45 78 63 65 70 74 69 6f 6e 2f 44 75 6d 70 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 Yaml/Exception/DumpException.php
3e20 75 00 00 00 6c fb ca 52 75 00 00 00 65 01 2a 6e b6 01 00 00 00 00 00 00 36 00 00 00 76 65 6e 64 u...l..Ru...e.*n........6...vend
3e40 6f 72 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e or/symfony/yaml/Symfony/Componen
3e60 74 2f 59 61 6d 6c 2f 45 73 63 61 70 65 72 2e 70 68 70 bd 05 00 00 6c fb ca 52 bd 05 00 00 bb b5 t/Yaml/Escaper.php....l..R......
3e80 32 18 b6 01 00 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 2.........5...vendor/symfony/yam
3ea0 6c 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 59 61 6d 6c 2f 49 6e 6c 69 6e 65 2e l/Symfony/Component/Yaml/Inline.
3ec0 70 68 70 be 21 00 00 6c fb ca 52 be 21 00 00 cf 96 c1 c5 b6 01 00 00 00 00 00 00 48 00 00 00 76 php.!..l..R.!..............H...v
3ee0 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
3f00 6d 70 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 mponent/Console/Command/HelpComm
3f20 61 6e 64 2e 70 68 70 31 07 00 00 6c fb ca 52 31 07 00 00 fd 1d 80 94 b6 01 00 00 00 00 00 00 44 and.php1...l..R1...............D
3f40 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e ...vendor/symfony/console/Symfon
3f60 79 2f 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 y/Component/Console/Command/Comm
3f80 61 6e 64 2e 70 68 70 07 19 00 00 6c fb ca 52 07 19 00 00 4f dd 1d 82 b6 01 00 00 00 00 00 00 48 and.php....l..R....O...........H
3fa0 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e ...vendor/symfony/console/Symfon
3fc0 79 2f 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 y/Component/Console/Command/List
3fe0 43 6f 6d 6d 61 6e 64 2e 70 68 70 b3 07 00 00 6c fb ca 52 b3 07 00 00 56 03 d3 e9 b6 01 00 00 00 Command.php....l..R....V........
4000 00 00 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 ...M...vendor/symfony/console/Sy
4020 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 54 65 73 74 65 72 2f 41 mfony/Component/Console/Tester/A
4040 70 70 6c 69 63 61 74 69 6f 6e 54 65 73 74 65 72 2e 70 68 70 d4 05 00 00 6c fb ca 52 d4 05 00 00 pplicationTester.php....l..R....
4060 ac ec a4 64 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 ...d........I...vendor/symfony/c
4080 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
40a0 2f 54 65 73 74 65 72 2f 43 6f 6d 6d 61 6e 64 54 65 73 74 65 72 2e 70 68 70 90 06 00 00 6c fb ca /Tester/CommandTester.php....l..
40c0 52 90 06 00 00 48 bb e2 60 b6 01 00 00 00 00 00 00 58 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 R....H..`........X...vendor/symf
40e0 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f ony/console/Symfony/Component/Co
4100 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 53 nsole/Formatter/OutputFormatterS
4120 74 79 6c 65 53 74 61 63 6b 2e 70 68 70 08 05 00 00 6c fb ca 52 08 05 00 00 79 08 49 27 b6 01 00 tyleStack.php....l..R....y.I'...
4140 00 00 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 .....S...vendor/symfony/console/
4160 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 46 6f 72 6d 61 74 Symfony/Component/Console/Format
4180 74 65 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 55 0c 00 00 ter/OutputFormatterStyle.phpU...
41a0 6c fb ca 52 55 0c 00 00 7a a8 dc ed b6 01 00 00 00 00 00 00 5c 00 00 00 76 65 6e 64 6f 72 2f 73 l..RU...z...........\...vendor/s
41c0 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
41e0 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
4200 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 8e 01 00 00 6c fb ca 52 8e 01 00 00 erStyleInterface.php....l..R....
4220 f6 eb c4 3d 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 ...=........N...vendor/symfony/c
4240 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
4260 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 2e 70 68 70 00 0c /Formatter/OutputFormatter.php..
4280 00 00 6c fb ca 52 00 0c 00 00 7d d7 ed 29 b6 01 00 00 00 00 00 00 57 00 00 00 76 65 6e 64 6f 72 ..l..R....}..)........W...vendor
42a0 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
42c0 6e 74 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 nt/Console/Formatter/OutputForma
42e0 74 74 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 98 01 00 00 6c fb ca 52 98 01 00 00 33 6c 7e tterInterface.php....l..R....3l~
4300 b4 b6 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 .........@...vendor/symfony/cons
4320 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 41 70 ole/Symfony/Component/Console/Ap
4340 70 6c 69 63 61 74 69 6f 6e 2e 70 68 70 b4 4c 00 00 6c fb ca 52 b4 4c 00 00 b8 40 88 9a b6 01 00 plication.php.L..l..R.L...@.....
4360 00 00 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 .....H...vendor/symfony/console/
4380 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/
43a0 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 2e 70 68 70 9e 05 00 00 6c fb ca 52 9e 05 00 00 4b 5d ec InputArgument.php....l..R....K].
43c0 69 b6 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 i........@...vendor/symfony/cons
43e0 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e ole/Symfony/Component/Console/In
4400 70 75 74 2f 49 6e 70 75 74 2e 70 68 70 15 0a 00 00 6c fb ca 52 15 0a 00 00 db a9 ea aa b6 01 00 put/Input.php....l..R...........
4420 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/
4440 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/
4460 53 74 72 69 6e 67 49 6e 70 75 74 2e 70 68 70 8f 05 00 00 6c fb ca 52 8f 05 00 00 c4 5d 74 68 b6 StringInput.php....l..R.....]th.
4480 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
44a0 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
44c0 74 2f 49 6e 70 75 74 4f 70 74 69 6f 6e 2e 70 68 70 aa 0b 00 00 6c fb ca 52 aa 0b 00 00 e2 f5 fe t/InputOption.php....l..R.......
44e0 31 b6 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 1........D...vendor/symfony/cons
4500 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e ole/Symfony/Component/Console/In
4520 70 75 74 2f 41 72 67 76 49 6e 70 75 74 2e 70 68 70 c5 13 00 00 6c fb ca 52 c5 13 00 00 90 27 17 put/ArgvInput.php....l..R.....'.
4540 e4 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 73 .........I...vendor/symfony/cons
4560 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e ole/Symfony/Component/Console/In
4580 70 75 74 2f 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 20 03 00 00 6c fb ca 52 20 03 put/InputInterface.php....l..R..
45a0 00 00 39 94 f8 c7 b6 01 00 00 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 ..9...........E...vendor/symfony
45c0 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
45e0 6c 65 2f 49 6e 70 75 74 2f 41 72 72 61 79 49 6e 70 75 74 2e 70 68 70 f7 09 00 00 6c fb ca 52 f7 le/Input/ArrayInput.php....l..R.
4600 09 00 00 e0 22 18 39 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 ....".9........N...vendor/symfon
4620 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
4640 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 41 77 61 72 65 49 6e 74 65 72 66 61 63 65 2e 70 68 ole/Input/InputAwareInterface.ph
4660 70 9a 00 00 00 6c fb ca 52 9a 00 00 00 87 6a 54 9f b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e p....l..R.....jT.........J...ven
4680 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
46a0 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 49 6e 70 75 74 2f 49 6e 70 75 74 44 65 66 69 6e 69 74 onent/Console/Input/InputDefinit
46c0 69 6f 6e 2e 70 68 70 85 17 00 00 6c fb ca 52 85 17 00 00 24 7e a8 45 b6 01 00 00 00 00 00 00 3a ion.php....l..R....$~.E........:
46e0 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e ...vendor/symfony/console/Symfon
4700 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 53 68 65 6c 6c 2e 70 68 70 31 0f 00 y/Component/Console/Shell.php1..
4720 00 6c fb ca 52 31 0f 00 00 ae de 24 fb b6 01 00 00 00 00 00 00 42 00 00 00 76 65 6e 64 6f 72 2f .l..R1.....$.........B...vendor/
4740 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
4760 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 4f 75 74 70 75 74 2e 70 68 70 a7 08 00 00 6c t/Console/Output/Output.php....l
4780 fb ca 52 a7 08 00 00 1c da 20 5f b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 73 79 ..R......._........F...vendor/sy
47a0 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/
47c0 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 4e 75 6c 6c 4f 75 74 70 75 74 2e 70 68 70 04 03 00 Console/Output/NullOutput.php...
47e0 00 6c fb ca 52 04 03 00 00 b3 28 8a f7 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e 64 6f 72 2f .l..R.....(..........R...vendor/
4800 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
4820 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e t/Console/Output/ConsoleOutputIn
4840 74 65 72 66 61 63 65 2e 70 68 70 e5 00 00 00 6c fb ca 52 e5 00 00 00 72 4e f4 00 b6 01 00 00 00 terface.php....l..R....rN.......
4860 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
4880 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 53 mfony/Component/Console/Output/S
48a0 74 72 65 61 6d 4f 75 74 70 75 74 2e 70 68 70 aa 04 00 00 6c fb ca 52 aa 04 00 00 b2 7f f8 1b b6 treamOutput.php....l..R.........
48c0 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c .......J...vendor/symfony/consol
48e0 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
4900 75 74 2f 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 2e 70 68 70 5f 01 00 00 6c fb ca 52 5f 01 00 ut/BufferedOutput.php_...l..R_..
4920 00 fb 42 cd b7 b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f ..B..........K...vendor/symfony/
4940 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
4960 65 2f 4f 75 74 70 75 74 2f 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 2e 70 68 70 49 03 00 00 e/Output/OutputInterface.phpI...
4980 6c fb ca 52 49 03 00 00 c8 e2 e3 42 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 l..RI......B........I...vendor/s
49a0 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
49c0 2f 43 6f 6e 73 6f 6c 65 2f 4f 75 74 70 75 74 2f 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 2e 70 68 /Console/Output/ConsoleOutput.ph
49e0 70 09 05 00 00 6c fb ca 52 09 05 00 00 71 82 39 9e b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e p....l..R....q.9.........S...ven
4a00 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
4a20 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 44 65 73 63 72 69 70 onent/Console/Descriptor/Descrip
4a40 74 6f 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 fc 00 00 00 6c fb ca 52 fc 00 00 00 b1 51 07 b5 torInterface.php....l..R.....Q..
4a60 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 73 6f ........N...vendor/symfony/conso
4a80 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 44 65 73 le/Symfony/Component/Console/Des
4aa0 63 72 69 70 74 6f 72 2f 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 9b 17 00 00 6c fb criptor/TextDescriptor.php....l.
4ac0 ca 52 9b 17 00 00 f5 23 61 91 b6 01 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d .R.....#a.........M...vendor/sym
4ae0 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
4b00 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 2e onsole/Descriptor/XmlDescriptor.
4b20 70 68 70 9e 1c 00 00 6c fb ca 52 9e 1c 00 00 d2 91 a6 6a b6 01 00 00 00 00 00 00 52 00 00 00 76 php....l..R.......j........R...v
4b40 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
4b60 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 4d 61 72 6b 64 mponent/Console/Descriptor/Markd
4b80 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 17 0e 00 00 6c fb ca 52 17 0e 00 00 3f a8 d0 ownDescriptor.php....l..R....?..
4ba0 7a 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 2f 63 6f 6e 73 z........V...vendor/symfony/cons
4bc0 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 44 65 ole/Symfony/Component/Console/De
4be0 73 63 72 69 70 74 6f 72 2f 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 2e scriptor/ApplicationDescription.
4c00 70 68 70 f7 07 00 00 6c fb ca 52 f7 07 00 00 29 49 df f0 b6 01 00 00 00 00 00 00 4a 00 00 00 76 php....l..R....)I..........J...v
4c20 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
4c40 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 2f 44 65 73 63 72 mponent/Console/Descriptor/Descr
4c60 69 70 74 6f 72 2e 70 68 70 5a 07 00 00 6c fb ca 52 5a 07 00 00 76 3b 83 f6 b6 01 00 00 00 00 00 iptor.phpZ...l..RZ...v;.........
4c80 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 .N...vendor/symfony/console/Symf
4ca0 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 44 65 73 63 72 69 70 74 6f 72 ony/Component/Console/Descriptor
4cc0 2f 4a 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 2e 70 68 70 30 0d 00 00 6c fb ca 52 30 0d 00 00 0b /JsonDescriptor.php0...l..R0....
4ce0 46 c4 60 b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f F.`........K...vendor/symfony/co
4d00 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f nsole/Symfony/Component/Console/
4d20 48 65 6c 70 65 72 2f 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 ef 00 00 00 6c fb Helper/HelperInterface.php....l.
4d40 ca 52 ef 00 00 00 3d 65 1b 0c b6 01 00 00 00 00 00 00 47 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d .R....=e..........G...vendor/sym
4d60 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
4d80 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 54 61 62 6c 65 48 65 6c 70 65 72 2e 70 68 70 8d 1b 00 onsole/Helper/TableHelper.php...
4da0 00 6c fb ca 52 8d 1b 00 00 35 e8 4e a9 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f .l..R....5.N.........L...vendor/
4dc0 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
4de0 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 t/Console/Helper/DescriptorHelpe
4e00 72 2e 70 68 70 39 05 00 00 6c fb ca 52 39 05 00 00 fb f9 e4 f0 b6 01 00 00 00 00 00 00 4b 00 00 r.php9...l..R9...............K..
4e20 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/
4e40 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f 46 6f 72 6d 61 74 74 Component/Console/Helper/Formatt
4e60 65 72 48 65 6c 70 65 72 2e 70 68 70 1e 04 00 00 6c fb ca 52 1e 04 00 00 9e 49 82 81 b6 01 00 00 erHelper.php....l..R.....I......
4e80 00 00 00 00 45 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 ....E...vendor/symfony/console/S
4ea0 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 48 65 6c 70 65 72 2f ymfony/Component/Console/Helper/
4ec0 48 65 6c 70 65 72 53 65 74 2e 70 68 70 2f 04 00 00 6c fb ca 52 2f 04 00 00 e2 77 00 64 b6 01 00 HelperSet.php/...l..R/....w.d...
4ee0 00 00 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 .....H...vendor/symfony/console/
4f00 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 65 72 Symfony/Component/Console/Helper
4f20 2f 44 69 61 6c 6f 67 48 65 6c 70 65 72 2e 70 68 70 be 1b 00 00 6c fb ca 52 be 1b 00 00 ba ef 99 /DialogHelper.php....l..R.......
4f40 e9 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
4f60 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 48 65 ole/Symfony/Component/Console/He
4f80 6c 70 65 72 2f 48 65 6c 70 65 72 2e 70 68 70 22 02 00 00 6c fb ca 52 22 02 00 00 17 a8 e4 55 b6 lper/Helper.php"...l..R"......U.
4fa0 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c .......J...vendor/symfony/consol
4fc0 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
4fe0 65 72 2f 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 2e 70 68 70 22 19 00 00 6c fb ca 52 22 19 00 er/ProgressHelper.php"...l..R"..
5000 00 ce cd 36 5b 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 ...6[........L...vendor/symfony/
5020 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
5040 65 2f 48 65 6c 70 65 72 2f 49 6e 70 75 74 41 77 61 72 65 48 65 6c 70 65 72 2e 70 68 70 63 01 00 e/Helper/InputAwareHelper.phpc..
5060 00 6c fb ca 52 63 01 00 00 f1 f8 90 7c b6 01 00 00 00 00 00 00 47 00 00 00 76 65 6e 64 6f 72 2f .l..Rc......|........G...vendor/
5080 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
50a0 74 2f 43 6f 6e 73 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 2e 70 68 70 t/Console/Event/ConsoleEvent.php
50c0 c5 02 00 00 6c fb ca 52 c5 02 00 00 d2 78 db 5c b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 ....l..R.....x.\........P...vend
50e0 6f 72 2f 73 79 6d 66 6f 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f or/symfony/console/Symfony/Compo
5100 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e nent/Console/Event/ConsoleTermin
5120 61 74 65 45 76 65 6e 74 2e 70 68 70 7a 02 00 00 6c fb ca 52 7a 02 00 00 b3 2c ee 4c b6 01 00 00 ateEvent.phpz...l..Rz....,.L....
5140 00 00 00 00 50 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 ....P...vendor/symfony/console/S
5160 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 45 76 65 6e 74 2f 43 ymfony/Component/Console/Event/C
5180 6f 6e 73 6f 6c 65 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 2e 70 68 70 12 03 00 00 6c fb ca 52 onsoleExceptionEvent.php....l..R
51a0 12 03 00 00 e1 16 32 e9 b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f ......2.........N...vendor/symfo
51c0 6e 79 2f 63 6f 6e 73 6f 6c 65 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 43 6f 6e ny/console/Symfony/Component/Con
51e0 73 6f 6c 65 2f 45 76 65 6e 74 2f 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 2e 70 sole/Event/ConsoleCommandEvent.p
5200 68 70 74 00 00 00 6c fb ca 52 74 00 00 00 98 4a 94 ed b6 01 00 00 00 00 00 00 42 00 00 00 76 65 hpt...l..Rt....J..........B...ve
5220 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
5240 70 6f 6e 65 6e 74 2f 43 6f 6e 73 6f 6c 65 2f 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 2e 70 68 70 ponent/Console/ConsoleEvents.php
5260 e9 00 00 00 6c fb ca 52 e9 00 00 00 52 db d4 65 b6 01 00 00 00 00 00 00 39 00 00 00 76 65 6e 64 ....l..R....R..e........9...vend
5280 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
52a0 65 6e 74 2f 46 69 6e 64 65 72 2f 46 69 6e 64 65 72 2e 70 68 70 ca 20 00 00 6c fb ca 52 ca 20 00 ent/Finder/Finder.php....l..R...
52c0 00 8c fe e9 88 b6 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 .............@...vendor/symfony/
52e0 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/
5300 53 68 65 6c 6c 2f 43 6f 6d 6d 61 6e 64 2e 70 68 70 a9 0a 00 00 6c fb ca 52 a9 0a 00 00 56 82 84 Shell/Command.php....l..R....V..
5320 6a b6 01 00 00 00 00 00 00 3e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 j........>...vendor/symfony/find
5340 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 53 68 65 6c er/Symfony/Component/Finder/Shel
5360 6c 2f 53 68 65 6c 6c 2e 70 68 70 a2 03 00 00 6c fb ca 52 a2 03 00 00 44 85 41 0a b6 01 00 00 00 l/Shell.php....l..R....D.A......
5380 00 00 00 43 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 ...C...vendor/symfony/finder/Sym
53a0 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e fony/Component/Finder/Expression
53c0 2f 52 65 67 65 78 2e 70 68 70 5a 0e 00 00 6c fb ca 52 5a 0e 00 00 40 81 b2 7e b6 01 00 00 00 00 /Regex.phpZ...l..RZ...@..~......
53e0 00 00 42 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 ..B...vendor/symfony/finder/Symf
5400 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f ony/Component/Finder/Expression/
5420 47 6c 6f 62 2e 70 68 70 a1 07 00 00 6c fb ca 52 a1 07 00 00 20 20 56 bf b6 01 00 00 00 00 00 00 Glob.php....l..R......V.........
5440 48 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e H...vendor/symfony/finder/Symfon
5460 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f 6e 2f 45 78 y/Component/Finder/Expression/Ex
5480 70 72 65 73 73 69 6f 6e 2e 70 68 70 7d 05 00 00 6c fb ca 52 7d 05 00 00 2f b7 63 f0 b6 01 00 00 pression.php}...l..R}.../.c.....
54a0 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 65 72 2f 53 79 ....L...vendor/symfony/finder/Sy
54c0 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 70 72 65 73 73 69 6f mfony/Component/Finder/Expressio
54e0 6e 2f 56 61 6c 75 65 49 6e 74 65 72 66 61 63 65 2e 70 68 70 3b 01 00 00 6c fb ca 52 3b 01 00 00 n/ValueInterface.php;...l..R;...
5500 0b ee e3 d3 b6 01 00 00 00 00 00 00 4b 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 ............K...vendor/symfony/f
5520 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 41 inder/Symfony/Component/Finder/A
5540 64 61 70 74 65 72 2f 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 2e 70 68 70 af 03 00 00 6c dapter/AdapterInterface.php....l
5560 fb ca 52 af 03 00 00 8b 08 e9 c8 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 73 79 ..R................I...vendor/sy
5580 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 mfony/finder/Symfony/Component/F
55a0 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 2e 70 68 70 inder/Adapter/BsdFindAdapter.php
55c0 7b 06 00 00 6c fb ca 52 7b 06 00 00 51 2c 44 32 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 {...l..R{...Q,D2........I...vend
55e0 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
5600 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 47 6e 75 46 69 6e 64 41 64 61 70 74 65 ent/Finder/Adapter/GnuFindAdapte
5620 72 2e 70 68 70 5e 06 00 00 6c fb ca 52 5e 06 00 00 df 7a 98 72 b6 01 00 00 00 00 00 00 4a 00 00 r.php^...l..R^....z.r........J..
5640 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 2f 43 .vendor/symfony/finder/Symfony/C
5660 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 41 62 73 74 72 61 63 74 omponent/Finder/Adapter/Abstract
5680 41 64 61 70 74 65 72 2e 70 68 70 a7 0a 00 00 6c fb ca 52 a7 0a 00 00 fe 0c 6e 86 b6 01 00 00 00 Adapter.php....l..R......n......
56a0 00 00 00 4e 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 ...N...vendor/symfony/finder/Sym
56c0 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 41 64 61 70 74 65 72 2f 41 62 fony/Component/Finder/Adapter/Ab
56e0 73 74 72 61 63 74 46 69 6e 64 41 64 61 70 74 65 72 2e 70 68 70 01 19 00 00 6c fb ca 52 01 19 00 stractFindAdapter.php....l..R...
5700 00 b7 59 cb fc 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 ..Y..........E...vendor/symfony/
5720 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/
5740 41 64 61 70 74 65 72 2f 50 68 70 41 64 61 70 74 65 72 2e 70 68 70 2b 07 00 00 6c fb ca 52 2b 07 Adapter/PhpAdapter.php+...l..R+.
5760 00 00 26 98 ee d2 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 ..&...........7...vendor/symfony
5780 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
57a0 2f 47 6c 6f 62 2e 70 68 70 0d 05 00 00 6c fb ca 52 0d 05 00 00 7a 9d f8 0a b6 01 00 00 00 00 00 /Glob.php....l..R....z..........
57c0 00 54 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f .T...vendor/symfony/finder/Symfo
57e0 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 44 65 70 ny/Component/Finder/Iterator/Dep
5800 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 f0 01 00 00 6c fb ca thRangeFilterIterator.php....l..
5820 52 f0 01 00 00 df 30 99 04 b6 01 00 00 00 00 00 00 4c 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 R.....0..........L...vendor/symf
5840 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
5860 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 2e 70 68 der/Iterator/SortableIterator.ph
5880 70 de 05 00 00 6c fb ca 52 de 05 00 00 92 1a 94 c7 b6 01 00 00 00 00 00 00 55 00 00 00 76 65 6e p....l..R................U...ven
58a0 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 6f dor/symfony/finder/Symfony/Compo
58c0 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 63 6f 6e 74 65 6e 74 nent/Finder/Iterator/Filecontent
58e0 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 23 03 00 00 6c fb ca 52 23 03 00 00 da 5f FilterIterator.php#...l..R#...._
5900 56 c7 b6 01 00 00 00 00 00 00 4d 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e V.........M...vendor/symfony/fin
5920 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 74 65 der/Symfony/Component/Finder/Ite
5940 72 61 74 6f 72 2f 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 2e 70 68 70 8d 05 00 00 6c rator/FilePathsIterator.php....l
5960 fb ca 52 8d 05 00 00 fd f2 e4 51 b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 2f 73 79 ..R.......Q........S...vendor/sy
5980 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 mfony/finder/Symfony/Component/F
59a0 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 inder/Iterator/SizeRangeFilterIt
59c0 65 72 61 74 6f 72 2e 70 68 70 67 02 00 00 6c fb ca 52 67 02 00 00 21 d4 97 e9 b6 01 00 00 00 00 erator.phpg...l..Rg...!.........
59e0 00 00 5a 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 ..Z...vendor/symfony/finder/Symf
5a00 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 45 78 ony/Component/Finder/Iterator/Ex
5a20 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 cludeDirectoryFilterIterator.php
5a40 94 02 00 00 6c fb ca 52 94 02 00 00 22 d6 f3 c1 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 ....l..R...."...........J...vend
5a60 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
5a80 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 74 65 72 49 74 65 72 61 74 ent/Finder/Iterator/FilterIterat
5aa0 6f 72 2e 70 68 70 86 02 00 00 6c fb ca 52 86 02 00 00 30 a3 be d4 b6 01 00 00 00 00 00 00 56 00 or.php....l..R....0...........V.
5ac0 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 2f ..vendor/symfony/finder/Symfony/
5ae0 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 4d 75 6c 74 69 70 Component/Finder/Iterator/Multip
5b00 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 d8 02 00 00 6c fb ca 52 lePcreFilterIterator.php....l..R
5b20 d8 02 00 00 04 d2 f9 93 b6 01 00 00 00 00 00 00 50 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f ................P...vendor/symfo
5b40 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
5b60 65 72 2f 49 74 65 72 61 74 6f 72 2f 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 er/Iterator/CustomFilterIterator
5b80 2e 70 68 70 5d 02 00 00 6c fb ca 52 5d 02 00 00 74 e0 b1 b5 b6 01 00 00 00 00 00 00 52 00 00 00 .php]...l..R]...t...........R...
5ba0 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 2f 43 6f vendor/symfony/finder/Symfony/Co
5bc0 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 6e 61 6d 65 mponent/Finder/Iterator/Filename
5be0 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 88 02 00 00 6c fb ca 52 88 02 00 00 ea 42 FilterIterator.php....l..R.....B
5c00 83 5a 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 .Z........S...vendor/symfony/fin
5c20 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 74 65 der/Symfony/Component/Finder/Ite
5c40 72 61 74 6f 72 2f 44 61 74 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 rator/DateRangeFilterIterator.ph
5c60 70 67 02 00 00 6c fb ca 52 67 02 00 00 b0 c9 65 00 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e pg...l..Rg.....e.........R...ven
5c80 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 6f dor/symfony/finder/Symfony/Compo
5ca0 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 46 69 6c 65 54 79 70 65 46 69 6c nent/Finder/Iterator/FileTypeFil
5cc0 74 65 72 49 74 65 72 61 74 6f 72 2e 70 68 70 5c 02 00 00 6c fb ca 52 5c 02 00 00 70 91 27 98 b6 terIterator.php\...l..R\...p.'..
5ce0 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 2f 66 69 6e 64 65 72 .......V...vendor/symfony/finder
5d00 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 61 74 /Symfony/Component/Finder/Iterat
5d20 6f 72 2f 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 2e 70 68 or/RecursiveDirectoryIterator.ph
5d40 70 dc 05 00 00 6c fb ca 52 dc 05 00 00 aa bd e9 fa b6 01 00 00 00 00 00 00 4e 00 00 00 76 65 6e p....l..R................N...ven
5d60 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 6f dor/symfony/finder/Symfony/Compo
5d80 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 49 74 65 72 61 74 6f 72 2f 50 61 74 68 46 69 6c 74 65 72 49 nent/Finder/Iterator/PathFilterI
5da0 74 65 72 61 74 6f 72 2e 70 68 70 c1 02 00 00 6c fb ca 52 c1 02 00 00 5f dc 41 15 b6 01 00 00 00 terator.php....l..R...._.A......
5dc0 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 65 72 2f 53 79 6d ...L...vendor/symfony/finder/Sym
5de0 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 43 6f 6d 70 61 72 61 74 6f 72 fony/Component/Finder/Comparator
5e00 2f 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 26 03 00 00 6c fb ca 52 26 03 00 00 e9 /DateComparator.php&...l..R&....
5e20 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 6f 6e 79 2f 66 69 hd.........N...vendor/symfony/fi
5e40 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 43 6f nder/Symfony/Component/Finder/Co
5e60 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 70 68 70 79 03 00 mparator/NumberComparator.phpy..
5e80 00 6c fb ca 52 79 03 00 00 22 60 14 db b6 01 00 00 00 00 00 00 48 00 00 00 76 65 6e 64 6f 72 2f .l..Ry..."`..........H...vendor/
5ea0 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 symfony/finder/Symfony/Component
5ec0 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 74 6f 72 2e 70 68 /Finder/Comparator/Comparator.ph
5ee0 70 8c 03 00 00 6c fb ca 52 8c 03 00 00 16 77 fe 54 b6 01 00 00 00 00 00 00 52 00 00 00 76 65 6e p....l..R.....w.T........R...ven
5f00 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 6f dor/symfony/finder/Symfony/Compo
5f20 6e 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 41 63 63 65 73 73 44 65 6e 69 nent/Finder/Exception/AccessDeni
5f40 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 84 00 00 00 6c fb ca 52 84 00 00 00 bd be 73 9c b6 edException.php....l..R......s..
5f60 01 00 00 00 00 00 00 4f 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 .......O...vendor/symfony/finder
5f80 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 45 78 63 65 70 74 /Symfony/Component/Finder/Except
5fa0 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 70 84 00 00 00 6c fb ion/ExceptionInterface.php....l.
5fc0 ca 52 84 00 00 00 1c 47 7a 2d b6 01 00 00 00 00 00 00 5a 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d .R.....Gz-........Z...vendor/sym
5fe0 66 6f 6e 79 2f 66 69 6e 64 65 72 2f 53 79 6d 66 6f 6e 79 2f 43 6f 6d 70 6f 6e 65 6e 74 2f 46 69 fony/finder/Symfony/Component/Fi
6000 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 4f 70 65 72 61 74 69 6f 6e 4e 6f 74 50 65 72 6d 69 nder/Exception/OperationNotPermi
6020 74 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 8a 00 00 00 6c fb ca 52 8a 00 00 00 55 12 38 38 tedException.php....l..R....U.88
6040 b6 01 00 00 00 00 00 00 54 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 ........T...vendor/symfony/finde
6060 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 45 78 63 65 70 r/Symfony/Component/Finder/Excep
6080 74 69 6f 6e 2f 41 64 61 70 74 65 72 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 tion/AdapterFailureException.php
60a0 16 02 00 00 6c fb ca 52 16 02 00 00 6d 8c 5f 2c b6 01 00 00 00 00 00 00 59 00 00 00 76 65 6e 64 ....l..R....m._,........Y...vend
60c0 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
60e0 65 6e 74 2f 46 69 6e 64 65 72 2f 45 78 63 65 70 74 69 6f 6e 2f 53 68 65 6c 6c 43 6f 6d 6d 61 6e ent/Finder/Exception/ShellComman
6100 64 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 24 02 00 00 6c fb ca 52 24 02 00 dFailureException.php$...l..R$..
6120 00 43 94 73 d3 b6 01 00 00 00 00 00 00 3e 00 00 00 76 65 6e 64 6f 72 2f 73 79 6d 66 6f 6e 79 2f .C.s.........>...vendor/symfony/
6140 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/
6160 53 70 6c 46 69 6c 65 49 6e 66 6f 2e 70 68 70 fb 02 00 00 6c fb ca 52 fb 02 00 00 91 05 86 36 b6 SplFileInfo.php....l..R.......6.
6180 01 00 00 00 00 00 00 34 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f .......4...vendor/seld/jsonlint/
61a0 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 55 6e 64 65 66 69 6e 65 64 2e 70 68 70 3e src/Seld/JsonLint/Undefined.php>
61c0 00 00 00 6c fb ca 52 3e 00 00 00 ff 71 9f 9f b6 01 00 00 00 00 00 00 35 00 00 00 76 65 6e 64 6f ...l..R>....q..........5...vendo
61e0 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 69 6e r/seld/jsonlint/src/Seld/JsonLin
6200 74 2f 4a 73 6f 6e 50 61 72 73 65 72 2e 70 68 70 a9 2d 00 00 6c fb ca 52 a9 2d 00 00 94 66 63 b7 t/JsonParser.php.-..l..R.-...fc.
6220 b6 01 00 00 00 00 00 00 30 00 00 00 76 65 6e 64 6f 72 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 ........0...vendor/seld/jsonlint
6240 2f 73 72 63 2f 53 65 6c 64 2f 4a 73 6f 6e 4c 69 6e 74 2f 4c 65 78 65 72 2e 70 68 70 bf 0f 00 00 /src/Seld/JsonLint/Lexer.php....
6260 6c fb ca 52 bf 0f 00 00 ab 0b ba 59 b6 01 00 00 00 00 00 00 3b 00 00 00 76 65 6e 64 6f 72 2f 73 l..R.......Y........;...vendor/s
6280 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 69 6e 74 2f 50 eld/jsonlint/src/Seld/JsonLint/P
62a0 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 1e 01 00 00 6c fb ca 52 1e 01 00 00 89 arsingException.php....l..R.....
62c0 b2 10 f1 b6 01 00 00 00 00 00 00 49 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e ...........I...vendor/justinrain
62e0 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 bow/json-schema/src/JsonSchema/C
6300 6f 6e 73 74 72 61 69 6e 74 73 2f 55 6e 64 65 66 69 6e 65 64 2e 70 68 70 78 06 00 00 6c fb ca 52 onstraints/Undefined.phpx...l..R
6320 78 06 00 00 68 b7 d9 71 b6 01 00 00 00 00 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 x...h..q........D...vendor/justi
6340 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 nrainbow/json-schema/src/JsonSch
6360 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 54 79 70 65 2e 70 68 70 d4 05 00 00 6c fb ca 52 ema/Constraints/Type.php....l..R
6380 d4 05 00 00 85 e9 2b 46 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 ......+F........F...vendor/justi
63a0 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 nrainbow/json-schema/src/JsonSch
63c0 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 53 63 68 65 6d 61 2e 70 68 70 d4 01 00 00 6c fb ema/Constraints/Schema.php....l.
63e0 ca 52 d4 01 00 00 b9 3a 66 4d b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 .R.....:fM........F...vendor/jus
6400 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 4a 73 6f 6e 53 tinrainbow/json-schema/src/JsonS
6420 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 4e 75 6d 62 65 72 2e 70 68 70 57 02 00 00 chema/Constraints/Number.phpW...
6440 6c fb ca 52 57 02 00 00 2e 31 f2 e7 b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 6a l..RW....1..........F...vendor/j
6460 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 4a 73 6f ustinrainbow/json-schema/src/Jso
6480 6e 53 63 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 4f 62 6a 65 63 74 2e 70 68 70 94 07 nSchema/Constraints/Object.php..
64a0 00 00 6c fb ca 52 94 07 00 00 63 e8 5a fb b6 01 00 00 00 00 00 00 53 00 00 00 76 65 6e 64 6f 72 ..l..R....c.Z.........S...vendor
64c0 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 4a /justinrainbow/json-schema/src/J
64e0 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 74 sonSchema/Constraints/Constraint
6500 49 6e 74 65 72 66 61 63 65 2e 70 68 70 24 01 00 00 6c fb ca 52 24 01 00 00 03 67 d6 ec b6 01 00 Interface.php$...l..R$....g.....
6520 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 .....J...vendor/justinrainbow/js
6540 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 61 on-schema/src/JsonSchema/Constra
6560 69 6e 74 73 2f 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 15 0a 00 00 6c fb ca 52 15 0a 00 00 3e ints/Constraint.php....l..R....>
6580 1d e3 18 b6 01 00 00 00 00 00 00 4a 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 69 6e 72 61 69 6e ...........J...vendor/justinrain
65a0 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 68 65 6d 61 2f 43 bow/json-schema/src/JsonSchema/C
65c0 6f 6e 73 74 72 61 69 6e 74 73 2f 43 6f 6c 6c 65 63 74 69 6f 6e 2e 70 68 70 56 08 00 00 6c fb ca onstraints/Collection.phpV...l..
65e0 52 56 08 00 00 dc 3c a7 b6 b6 01 00 00 00 00 00 00 44 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 RV....<..........D...vendor/just
6600 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 inrainbow/json-schema/src/JsonSc
6620 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 45 6e 75 6d 2e 70 68 70 86 01 00 00 6c fb ca hema/Constraints/Enum.php....l..
6640 52 86 01 00 00 24 28 6d be b6 01 00 00 00 00 00 00 46 00 00 00 76 65 6e 64 6f 72 2f 6a 75 73 74 R....$(m.........F...vendor/just
6660 69 6e 72 61 69 6e 62 6f 77 2f 6a 73 6f 6e 2d 73 63 68 65 6d 61 2f 73 72 63 2f 4a 73 6f 6e 53 63 inrainbow/json-schema/src/JsonSc
6680 68 65 6d 61 2f 43 6f 6e 73 74 72 61 69 6e 74 73 2f 53 74 72 69 6e 67 2e 70 68 70 98 02 00 00 6c hema/Constraints/String.php....l
66a0 fb ca 52 98 02 00 00 b4 f5 97 6b b6 01 00 00 00 00 00 00 3d 00 00 00 76 65 6e 64 6f 72 2f 6a 75 ..R.......k........=...vendor/ju
66c0 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 4a 73 6f 6e stinrainbow/json-schema/src/Json
66e0 53 63 68 65 6d 61 2f 56 61 6c 69 64 61 74 6f 72 2e 70 68 70 5b 01 00 00 6c fb ca 52 5b 01 00 00 Schema/Validator.php[...l..R[...
6700 38 11 97 f6 b6 01 00 00 00 00 00 00 13 00 00 00 76 65 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 64 2e 8...............vendor/autoload.
6720 70 68 70 91 00 00 00 6c fb ca 52 91 00 00 00 f5 71 f6 70 b6 01 00 00 00 00 00 00 27 00 00 00 76 php....l..R.....q.p........'...v
6740 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 endor/composer/autoload_namespac
6760 65 73 2e 70 68 70 34 02 00 00 6c fb ca 52 34 02 00 00 f5 85 c2 17 b6 01 00 00 00 00 00 00 21 00 es.php4...l..R4...............!.
6780 00 00 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 70 73 72 34 2e ..vendor/composer/autoload_psr4.
67a0 70 68 70 64 00 00 00 6c fb ca 52 64 00 00 00 5a a1 a6 48 b6 01 00 00 00 00 00 00 25 00 00 00 76 phpd...l..Rd...Z..H........%...v
67c0 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 endor/composer/autoload_classmap
67e0 2e 70 68 70 46 87 00 00 6c fb ca 52 46 87 00 00 23 b4 d2 1e b6 01 00 00 00 00 00 00 21 00 00 00 .phpF...l..RF...#...........!...
6800 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 vendor/composer/autoload_real.ph
6820 70 ea 04 00 00 6c fb ca 52 ea 04 00 00 13 31 54 83 b6 01 00 00 00 00 00 00 21 00 00 00 76 65 6e p....l..R.....1T.........!...ven
6840 64 6f 72 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 9f 01 dor/composer/include_paths.php..
6860 00 00 6c fb ca 52 9f 01 00 00 41 4e b6 63 b6 01 00 00 00 00 00 00 1f 00 00 00 76 65 6e 64 6f 72 ..l..R....AN.c............vendor
6880 2f 63 6f 6d 70 6f 73 65 72 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 97 13 00 00 6c fb ca /composer/ClassLoader.php....l..
68a0 52 97 13 00 00 42 a7 86 30 b6 01 00 00 00 00 00 00 0c 00 00 00 62 69 6e 2f 63 6f 6d 70 6f 73 65 R....B..0............bin/compose
68c0 72 6e 04 00 00 6c fb ca 52 6e 04 00 00 1f 96 85 57 b6 01 00 00 00 00 00 00 07 00 00 00 4c 49 43 rn...l..Rn......W............LIC
68e0 45 4e 53 45 33 04 00 00 6c fb ca 52 33 04 00 00 0b 81 32 0b b6 01 00 00 00 00 00 00 3c 3f 70 68 ENSE3...l..R3.....2.........<?ph
6900 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 69 6e 63 6c 75 64 65 49 66 45 p............function.includeIfE
6920 78 69 73 74 73 28 24 66 69 6c 65 29 0a 7b 0a 72 65 74 75 72 6e 20 66 69 6c 65 5f 65 78 69 73 74 xists($file).{.return.file_exist
6940 73 28 24 66 69 6c 65 29 20 3f 20 69 6e 63 6c 75 64 65 20 24 66 69 6c 65 20 3a 20 66 61 6c 73 65 s($file).?.include.$file.:.false
6960 3b 0a 7d 0a 0a 69 66 20 28 28 21 24 6c 6f 61 64 65 72 20 3d 20 69 6e 63 6c 75 64 65 49 66 45 78 ;.}..if.((!$loader.=.includeIfEx
6980 69 73 74 73 28 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 76 65 6e 64 6f 72 2f 61 75 74 6f 6c 6f 61 ists(__DIR__.'/../vendor/autoloa
69a0 64 2e 70 68 70 27 29 29 20 26 26 20 28 21 24 6c 6f 61 64 65 72 20 3d 20 69 6e 63 6c 75 64 65 49 d.php')).&&.(!$loader.=.includeI
69c0 66 45 78 69 73 74 73 28 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e 2f 2e 2e 2f 2e 2e 2f 61 75 74 6f 6c fExists(__DIR__.'/../../../autol
69e0 6f 61 64 2e 70 68 70 27 29 29 29 20 7b 0a 65 63 68 6f 20 27 59 6f 75 20 6d 75 73 74 20 73 65 74 oad.php'))).{.echo.'You.must.set
6a00 20 75 70 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2c 20 72 75 .up.the.project.dependencies,.ru
6a20 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 3a 27 2e 50 48 50 5f 45 n.the.following.commands:'.PHP_E
6a40 4f 4c 2e 0a 27 63 75 72 6c 20 2d 73 53 20 68 74 74 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 OL..'curl.-sS.https://getcompose
6a60 72 2e 6f 72 67 2f 69 6e 73 74 61 6c 6c 65 72 20 7c 20 70 68 70 27 2e 50 48 50 5f 45 4f 4c 2e 0a r.org/installer.|.php'.PHP_EOL..
6a80 27 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 69 6e 73 74 61 6c 6c 27 2e 50 48 50 5f 'php.composer.phar.install'.PHP_
6aa0 45 4f 4c 3b 0a 65 78 69 74 28 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b EOL;.exit(1);.}..return.$loader;
6ac0 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
6ae0 6f 73 65 72 5c 49 4f 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c oser\IO;..use.Symfony\Component\
6b00 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
6b20 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
6b40 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\
6b60 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 Component\Console\Helper\HelperS
6b80 65 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 49 4f 20 65 78 74 65 6e et;........class.ConsoleIO.exten
6ba0 64 73 20 42 61 73 65 49 4f 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a 70 72 ds.BaseIO.{.protected.$input;.pr
6bc0 6f 74 65 63 74 65 64 20 24 6f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 6c 70 otected.$output;.protected.$help
6be0 65 72 53 65 74 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 70 erSet;.protected.$lastMessage;.p
6c00 72 69 76 61 74 65 20 24 73 74 61 72 74 54 69 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 rivate.$startTime;.........publi
6c20 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 6e 70 75 74 49 6e 74 65 c.function.__construct(InputInte
6c40 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
6c60 75 74 70 75 74 2c 20 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 29 0a 7b 0a 24 utput,.HelperSet.$helperSet).{.$
6c80 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 this->input.=.$input;.$this->out
6ca0 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 put.=.$output;.$this->helperSet.
6cc0 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e =.$helperSet;.}..public.function
6ce0 20 65 6e 61 62 6c 65 44 65 62 75 67 67 69 6e 67 28 24 73 74 61 72 74 54 69 6d 65 29 0a 7b 0a 24 .enableDebugging($startTime).{.$
6d00 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 24 73 74 61 72 74 54 69 6d 65 3b 0a 7d 0a this->startTime.=.$startTime;.}.
6d20 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 61 63 74 69 76 ....public.function.isInteractiv
6d40 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 69 73 49 6e 74 e().{.return.$this->input->isInt
6d60 65 72 61 63 74 69 76 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f eractive();.}.....public.functio
6d80 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 24 74 68 69 73 2d 3e n.isDecorated().{.return.$this->
6da0 6f 75 74 70 75 74 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 output->isDecorated();.}.....pub
6dc0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 lic.function.isVerbose().{.retur
6de0 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 20 n.$this->output->getVerbosity().
6e00 3e 3d 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 >=.OutputInterface::VERBOSITY_VE
6e20 52 42 4f 53 45 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 56 RBOSE;.}.....public.function.isV
6e40 65 72 79 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 eryVerbose().{.return.$this->out
6e60 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 20 3e 3d 20 33 3b 20 0a 20 7d 0a 0a 0a put->getVerbosity().>=.3;...}...
6e80 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 62 75 67 28 29 0a 7b 0a 72 65 ..public.function.isDebug().{.re
6ea0 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f 73 69 74 79 turn.$this->output->getVerbosity
6ec0 28 29 20 3e 3d 20 34 3b 20 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ().>=.4;...}.....public.function
6ee0 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 74 72 75 .write($messages,.$newline.=.tru
6f00 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 e).{.if.(null.!==.$this->startTi
6f20 6d 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 me).{.$messages.=.(array).$messa
6f40 67 65 73 3b 0a 24 6d 65 73 73 61 67 65 73 5b 30 5d 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 5b 25 ges;.$messages[0].=.sprintf(.'[%
6f60 2e 31 66 4d 42 2f 25 2e 32 66 73 5d 20 25 73 27 2c 0a 6d 65 6d 6f 72 79 5f 67 65 74 5f 75 73 61 .1fMB/%.2fs].%s',.memory_get_usa
6f80 67 65 28 29 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 2c 0a 6d 69 63 72 6f 74 69 6d 65 28 74 72 ge()./.1024./.1024,.microtime(tr
6fa0 75 65 29 20 2d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 2c 0a 24 6d 65 73 73 61 67 65 ue).-.$this->startTime,.$message
6fc0 73 5b 30 5d 0a 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 s[0].);.}.$this->output->write($
6fe0 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 messages,.$newline);.$this->last
7000 4d 65 73 73 61 67 65 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 20 3f 20 22 5c 6e 22 20 3a Message.=.join($newline.?."\n".:
7020 20 27 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 .'',.(array).$messages);.}.....p
7040 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 24 6d 65 73 73 61 67 ublic.function.overwrite($messag
7060 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 2c 20 24 73 69 7a 65 20 3d 20 6e 75 6c es,.$newline.=.true,.$size.=.nul
7080 6c 29 0a 7b 0a 0a 20 24 6d 65 73 73 61 67 65 73 20 3d 20 6a 6f 69 6e 28 24 6e 65 77 6c 69 6e 65 l).{...$messages.=.join($newline
70a0 20 3f 20 22 5c 6e 22 20 3a 20 27 27 2c 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 29 .?."\n".:.'',.(array).$messages)
70c0 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 73 69 7a 65 29 29 20 7b 0a 0a 20 24 73 69 7a ;....if.(!isset($size)).{...$siz
70e0 65 20 3d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 5f 74 61 67 73 28 24 74 68 69 73 2d 3e 6c 61 73 e.=.strlen(strip_tags($this->las
7100 74 4d 65 73 73 61 67 65 29 29 3b 0a 7d 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 73 74 72 tMessage));.}...$this->write(str
7120 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 73 69 7a 65 29 2c 20 66 61 6c 73 65 29 3b 0a _repeat("\x08",.$size),.false);.
7140 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 66 61 6c 73 65 ...$this->write($messages,.false
7160 29 3b 0a 0a 24 66 69 6c 6c 20 3d 20 24 73 69 7a 65 20 2d 20 73 74 72 6c 65 6e 28 73 74 72 69 70 );..$fill.=.$size.-.strlen(strip
7180 5f 74 61 67 73 28 24 6d 65 73 73 61 67 65 73 29 29 3b 0a 69 66 20 28 24 66 69 6c 6c 20 3e 20 30 _tags($messages));.if.($fill.>.0
71a0 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 65 28 73 74 72 5f 72 65 70 65 61 74 28 27 20 ).{...$this->write(str_repeat('.
71c0 27 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c 73 65 29 3b 0a 0a 20 24 74 68 69 73 2d 3e 77 72 69 74 ',.$fill),.false);...$this->writ
71e0 65 28 73 74 72 5f 72 65 70 65 61 74 28 22 5c 78 30 38 22 2c 20 24 66 69 6c 6c 29 2c 20 66 61 6c e(str_repeat("\x08",.$fill),.fal
7200 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 6e 65 77 6c 69 6e 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 se);.}..if.($newline).{.$this->w
7220 72 69 74 65 28 27 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 20 3d rite('');.}.$this->lastMessage.=
7240 20 24 6d 65 73 73 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$messages;.}.....public.functio
7260 6e 20 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c n.ask($question,.$default.=.null
7280 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 2d 3e 67 65 74 ).{.return.$this->helperSet->get
72a0 28 27 64 69 61 6c 6f 67 27 29 2d 3e 61 73 6b 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 ('dialog')->ask($this->output,.$
72c0 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 question,.$default);.}.....publi
72e0 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 71 75 65 73 c.function.askConfirmation($ques
7300 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 tion,.$default.=.true).{.return.
7320 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')-
7340 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 >askConfirmation($this->output,.
7360 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c $question,.$default);.}.....publ
7380 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 71 75 65 73 ic.function.askAndValidate($ques
73a0 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 tion,.$validator,.$attempts.=.fa
73c0 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 24 lse,.$default.=.null).{.return.$
73e0 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 2d 3e this->helperSet->get('dialog')->
7400 61 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 71 askAndValidate($this->output,.$q
7420 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 2c 20 uestion,.$validator,.$attempts,.
7440 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
7460 20 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 0a 7b 0a 0a .askAndHideAnswer($question).{..
7480 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f .if.(defined('PHP_WINDOWS_VERSIO
74a0 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 78 65 20 3d 20 5f 5f 44 49 52 5f 5f 2e 27 5c 5c 68 N_BUILD')).{.$exe.=.__DIR__.'\\h
74c0 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 iddeninput.exe';....if.('phar:'.
74e0 3d 3d 3d 20 73 75 62 73 74 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 ===.substr(__FILE__,.0,.5)).{.$t
7500 6d 70 45 78 65 20 3d 20 73 79 73 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 68 69 64 mpExe.=.sys_get_temp_dir().'/hid
7520 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 3b 0a 0a 0a 20 0a 20 24 73 6f 75 72 63 65 20 3d 20 66 6f deninput.exe';......$source.=.fo
7540 70 65 6e 28 5f 5f 44 49 52 5f 5f 2e 27 5c 5c 68 69 64 64 65 6e 69 6e 70 75 74 2e 65 78 65 27 2c pen(__DIR__.'\\hiddeninput.exe',
7560 20 27 72 27 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 66 6f 70 65 6e 28 24 74 6d 70 45 78 65 2c 20 .'r');.$target.=.fopen($tmpExe,.
7580 27 77 2b 27 29 3b 0a 73 74 72 65 61 6d 5f 63 6f 70 79 5f 74 6f 5f 73 74 72 65 61 6d 28 24 73 6f 'w+');.stream_copy_to_stream($so
75a0 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 66 63 6c 6f 73 65 28 24 73 6f 75 72 63 65 29 3b urce,.$target);.fclose($source);
75c0 0a 66 63 6c 6f 73 65 28 24 74 61 72 67 65 74 29 3b 0a 75 6e 73 65 74 28 24 73 6f 75 72 63 65 2c .fclose($target);.unset($source,
75e0 20 24 74 61 72 67 65 74 29 3b 0a 0a 24 65 78 65 20 3d 20 24 74 6d 70 45 78 65 3b 0a 7d 0a 0a 24 .$target);..$exe.=.$tmpExe;.}..$
7600 74 68 69 73 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 66 61 6c 73 65 29 3b 0a 24 this->write($question,.false);.$
7620 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 65 78 65 29 29 3b value.=.rtrim(shell_exec($exe));
7640 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 .$this->write('');....if.(isset(
7660 24 74 6d 70 45 78 65 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 6d 70 45 78 65 29 3b 0a 7d 0a 0a $tmpExe)).{.unlink($tmpExe);.}..
7680 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 return.$value;.}..if.(file_exist
76a0 73 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 27 29 29 20 7b 0a 0a 20 24 74 65 73 74 20 3d 20 22 s('/usr/bin/env')).{...$test.=."
76c0 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 65 63 68 6f 20 4f 4b 27 20 32 3e 20 /usr/bin/env.%s.-c.'echo.OK'.2>.
76e0 2f 64 65 76 2f 6e 75 6c 6c 22 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 62 61 73 68 /dev/null";.foreach.(array('bash
7700 27 2c 20 27 7a 73 68 27 2c 20 27 6b 73 68 27 2c 20 27 63 73 68 27 29 20 61 73 20 24 73 68 29 20 ',.'zsh',.'ksh',.'csh').as.$sh).
7720 7b 0a 69 66 20 28 27 4f 4b 27 20 3d 3d 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 {.if.('OK'.===.rtrim(shell_exec(
7740 73 70 72 69 6e 74 66 28 24 74 65 73 74 2c 20 24 73 68 29 29 29 29 20 7b 0a 24 73 68 65 6c 6c 20 sprintf($test,.$sh)))).{.$shell.
7760 3d 20 24 73 68 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 73 68 65 =.$sh;.break;.}.}.if.(isset($she
7780 6c 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 66 ll)).{.$this->write($question,.f
77a0 61 6c 73 65 29 3b 0a 24 72 65 61 64 43 6d 64 20 3d 20 28 24 73 68 65 6c 6c 20 3d 3d 3d 20 27 63 alse);.$readCmd.=.($shell.===.'c
77c0 73 68 27 29 20 3f 20 27 73 65 74 20 6d 79 70 61 73 73 77 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 sh').?.'set.mypassword.=.$<'.:.'
77e0 72 65 61 64 20 2d 72 20 6d 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 read.-r.mypassword';.$command.=.
7800 73 70 72 69 6e 74 66 28 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 73 74 74 sprintf("/usr/bin/env.%s.-c.'stt
7820 79 20 2d 65 63 68 6f 3b 20 25 73 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 65 63 68 6f 20 5c 24 6d y.-echo;.%s;.stty.echo;.echo.\$m
7840 79 70 61 73 73 77 6f 72 64 27 22 2c 20 24 73 68 65 6c 6c 2c 20 24 72 65 61 64 43 6d 64 29 3b 0a ypassword'",.$shell,.$readCmd);.
7860 24 76 61 6c 75 65 20 3d 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 63 6f 6d 6d 61 $value.=.rtrim(shell_exec($comma
7880 6e 64 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 nd));.$this->write('');..return.
78a0 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 73 6b $value;.}.}....return.$this->ask
78c0 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ($question);.}.}.<?php..........
78e0 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 3b 0a 0a 0a 0a 0a 0a 0a 63 ..namespace.Composer\IO;.......c
7900 6c 61 73 73 20 4e 75 6c 6c 49 4f 20 65 78 74 65 6e 64 73 20 42 61 73 65 49 4f 0a 7b 0a 0a 0a 0a lass.NullIO.extends.BaseIO.{....
7920 70 75 62 6c 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 public.function.isInteractive().
7940 7b 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 {.return.false;.}.....public.fun
7960 63 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 66 61 6c 73 65 ction.isVerbose().{.return.false
7980 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 56 65 72 79 56 65 ;.}.....public.function.isVeryVe
79a0 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 rbose().{.return.false;.}.....pu
79c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 62 75 67 28 29 0a 7b 0a 72 65 74 75 72 6e blic.function.isDebug().{.return
79e0 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 .false;.}.....public.function.is
7a00 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a Decorated().{.return.false;.}...
7a20 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 65 ..public.function.write($message
7a40 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 74 72 75 65 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c s,.$newline.=.true).{.}.....publ
7a60 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 73 2c ic.function.overwrite($messages,
7a80 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 0a 7b 0a .$newline.=.true,.$size.=.80).{.
7aa0 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 74 }.....public.function.ask($quest
7ac0 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 24 ion,.$default.=.null).{.return.$
7ae0 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 default;.}.....public.function.a
7b00 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 75 skConfirmation($question,.$defau
7b20 6c 74 20 3d 20 74 72 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a lt.=.true).{.return.$default;.}.
7b40 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 ....public.function.askAndValida
7b60 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d te($question,.$validator,.$attem
7b80 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a pts.=.false,.$default.=.null).{.
7ba0 72 65 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 return.$default;.}.....public.fu
7bc0 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 69 6f nction.askAndHideAnswer($questio
7be0 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a n).{.return.null;.}.}.<?php.....
7c00 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 75 .......namespace.Composer\IO;..u
7c20 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 69 6e 74 65 72 66 se.Composer\Config;.......interf
7c40 61 63 65 20 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 ace.IOInterface.{......public.fu
7c60 6e 63 74 69 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 nction.isInteractive();.......pu
7c80 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 3b 0a 0a 0a 0a 0a 0a blic.function.isVerbose();......
7ca0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 .public.function.isVeryVerbose()
7cc0 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 62 75 67 28 ;.......public.function.isDebug(
7ce0 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 );.......public.function.isDecor
7d00 61 74 65 64 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 77 ated();........public.function.w
7d20 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 74 72 75 65 29 rite($messages,.$newline.=.true)
7d40 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 6f 76 65 72 77 72 ;.........public.function.overwr
7d60 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 74 72 75 65 2c 20 ite($messages,.$newline.=.true,.
7d80 24 73 69 7a 65 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 $size.=.null);............public
7da0 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c .function.ask($question,.$defaul
7dc0 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e t.=.null);............public.fun
7de0 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,
7e00 20 24 64 65 66 61 75 6c 74 20 3d 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .$default.=.true);..............
7e20 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 41 6e 64 56 61 6c 69 64 61 ....public.function.askAndValida
7e40 74 65 28 24 71 75 65 73 74 69 6f 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d te($question,.$validator,.$attem
7e60 70 74 73 20 3d 20 66 61 6c 73 65 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 29 3b 0a 0a pts.=.false,.$default.=.null);..
7e80 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 41 6e 64 48 69 64 .......public.function.askAndHid
7ea0 65 41 6e 73 77 65 72 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 eAnswer($question);.......public
7ec0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 28 29 3b 0a .function.getAuthentications();.
7ee0 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 41 75 74 68 65 ........public.function.hasAuthe
7f00 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 3b 0a 0a 0a 0a 0a ntication($repositoryName);.....
7f20 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 65 6e 74 69 63 ....public.function.getAuthentic
7f40 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a ation($repositoryName);.........
7f60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f public.function.setAuthenticatio
7f80 6e 28 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 n($repositoryName,.$username,.$p
7fa0 61 73 73 77 6f 72 64 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 assword.=.null);.......public.fu
7fc0 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 43 6f 6e 66 69 67 20 nction.loadConfiguration(Config.
7fe0 24 63 6f 6e 66 69 67 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 $config);.}.<?php............nam
8000 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 43 6f 6d 70 6f 73 65 espace.Composer\IO;..use.Compose
8020 72 5c 43 6f 6e 66 69 67 3b 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 42 61 73 65 49 4f r\Config;..abstract.class.BaseIO
8040 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 4f 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 .implements.IOInterface.{.protec
8060 74 65 64 20 24 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ted.$authentications.=.array();.
8080 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 65 6e 74 69 63 ....public.function.getAuthentic
80a0 61 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 65 6e 74 ations().{.return.$this->authent
80c0 69 63 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ications;.}.....public.function.
80e0 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d hasAuthentication($repositoryNam
8100 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 75 74 68 65 6e 74 e).{.return.isset($this->authent
8120 69 63 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a ications[$repositoryName]);.}...
8140 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 65 6e 74 69 63 61 74 ..public.function.getAuthenticat
8160 69 6f 6e 28 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 ion($repositoryName).{.if.(isset
8180 28 24 74 68 69 73 2d 3e 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 ($this->authentications[$reposit
81a0 6f 72 79 4e 61 6d 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 65 oryName])).{.return.$this->authe
81c0 6e 74 69 63 61 74 69 6f 6e 73 5b 24 72 65 70 6f 73 69 74 6f 72 79 4e 61 6d 65 5d 3b 0a 7d 0a 0a ntications[$repositoryName];.}..
81e0 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 75 73 65 72 6e 61 6d 65 27 20 3d 3e 20 6e 75 6c 6c 2c return.array('username'.=>.null,
8200 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 75 62 6c .'password'.=>.null);.}.....publ
8220 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 72 ic.function.setAuthentication($r
8240 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 73 77 epositoryName,.$username,.$passw
8260 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 65 6e 74 69 63 61 74 ord.=.null).{.$this->authenticat
8280 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 75 ions[$repositoryName].=.array('u
82a0 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 64 sername'.=>.$username,.'password
82c0 27 20 3d 3e 20 24 70 61 73 73 77 6f 72 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 '.=>.$password);.}.....public.fu
82e0 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 43 6f 6e 66 69 67 20 nction.loadConfiguration(Config.
8300 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 66 20 28 24 74 6f 6b 65 6e 73 20 3d 20 24 63 6f 6e 66 $config).{...if.($tokens.=.$conf
8320 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 29 29 20 7b 0a 66 6f 72 65 61 ig->get('github-oauth')).{.forea
8340 63 68 20 28 24 74 6f 6b 65 6e 73 20 61 73 20 24 64 6f 6d 61 69 6e 20 3d 3e 20 24 74 6f 6b 65 6e ch.($tokens.as.$domain.=>.$token
8360 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 30 2d 39 5d 2b ).{.if.(!preg_match('{^[a-z0-9]+
8380 24 7d 27 2c 20 24 74 6f 6b 65 6e 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 $}',.$token)).{.throw.new.\Unexp
83a0 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 72 20 67 69 74 68 75 62 ectedValueException('Your.github
83c0 20 6f 61 75 74 68 20 74 6f 6b 65 6e 20 66 6f 72 20 27 2e 24 64 6f 6d 61 69 6e 2e 27 20 63 6f 6e .oauth.token.for.'.$domain.'.con
83e0 74 61 69 6e 73 20 69 6e 76 61 6c 69 64 20 63 68 61 72 61 63 74 65 72 73 3a 20 22 27 2e 24 74 6f tains.invalid.characters:."'.$to
8400 6b 65 6e 2e 27 22 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 ken.'"');.}.$this->setAuthentica
8420 74 69 6f 6e 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 2c 20 27 78 2d 6f 61 75 74 68 2d 62 tion($domain,.$token,.'x-oauth-b
8440 61 73 69 63 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a asic');.}.}.}.}.<?php...........
8460 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
8480 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 53 74 fony\Component\Console\Output\St
84a0 72 65 61 6d 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 reamOutput;.use.Symfony\Componen
84c0 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
84e0 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 5c 43 6f 6d 70 6f 6e terInterface;.use.Symfony\Compon
8500 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 53 74 72 69 6e 67 49 6e 70 75 74 3b 0a 75 ent\Console\Input\StringInput;.u
8520 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
8540 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 42 75 66 66 65 72 49 per\HelperSet;.....class.BufferI
8560 4f 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 49 4f 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 O.extends.ConsoleIO.{......publi
8580 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 70 75 74 20 3d 20 c.function.__construct($input.=.
85a0 27 27 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 '',.$verbosity.=.null,.OutputFor
85c0 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c matterInterface.$formatter.=.nul
85e0 6c 29 0a 7b 0a 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 53 74 72 69 6e 67 49 6e 70 75 74 28 24 69 l).{.$input.=.new.StringInput($i
8600 6e 70 75 74 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 66 61 nput);.$input->setInteractive(fa
8620 6c 73 65 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 lse);..$output.=.new.StreamOutpu
8640 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 72 77 27 29 2c 20 24 t(fopen('php://memory',.'rw'),.$
8660 76 65 72 62 6f 73 69 74 79 20 3d 3d 3d 20 6e 75 6c 6c 20 3f 20 53 74 72 65 61 6d 4f 75 74 70 75 verbosity.===.null.?.StreamOutpu
8680 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3a 20 24 76 65 72 62 6f 73 69 74 79 t::VERBOSITY_NORMAL.:.$verbosity
86a0 2c 20 21 65 6d 70 74 79 28 24 66 6f 72 6d 61 74 74 65 72 29 2c 20 24 66 6f 72 6d 61 74 74 65 72 ,.!empty($formatter),.$formatter
86c0 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 70 75 74 2c 20 );..parent::__construct($input,.
86e0 24 6f 75 74 70 75 74 2c 20 6e 65 77 20 48 65 6c 70 65 72 53 65 74 28 61 72 72 61 79 28 29 29 29 $output,.new.HelperSet(array()))
8700 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 ;.}..public.function.getOutput()
8720 0a 7b 0a 66 73 65 65 6b 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 .{.fseek($this->output->getStrea
8740 6d 28 29 2c 20 30 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 m(),.0);..$output.=.stream_get_c
8760 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 61 6d ontents($this->output->getStream
8780 28 29 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c ());..$output.=.preg_replace_cal
87a0 6c 62 61 63 6b 28 22 7b 28 3f 3c 3d 5e 7c 5c 6e 7c 5c 78 30 38 29 28 2e 2b 3f 29 28 5c 78 30 38 lback("{(?<=^|\n|\x08)(.+?)(\x08
87c0 2b 29 7d 22 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 7b 0a 24 70 72 65 +)}",.function.($matches).{.$pre
87e0 20 3d 20 73 74 72 69 70 5f 74 61 67 73 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 0a 69 66 20 .=.strip_tags($matches[1]);..if.
8800 28 73 74 72 6c 65 6e 28 24 70 72 65 29 20 3d 3d 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 65 (strlen($pre).===.strlen($matche
8820 73 5b 32 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 s[2])).{.return.'';.}....return.
8840 72 74 72 69 6d 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 2e 22 5c 6e 22 3b 0a 7d 2c 20 24 6f 75 74 rtrim($matches[1])."\n";.},.$out
8860 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 put);..return.$output;.}.}.<?php
8880 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 43 ............namespace.Composer\C
88a0 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 ommand;..use.Composer\Script\Scr
88c0 69 70 74 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 iptEvents;.use.Symfony\Component
88e0 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
8900 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
8920 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
8940 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
8960 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
8980 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 63 6c 61 \Output\OutputInterface;.....cla
89a0 73 73 20 52 75 6e 53 63 72 69 70 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d ss.RunScriptCommand.extends.Comm
89c0 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
89e0 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 75 6e 2d 73 63 72 69 re().{.$this.->setName('run-scri
8a00 70 74 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 52 75 6e 20 74 68 65 20 73 pt').->setDescription('Run.the.s
8a20 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e cripts.defined.in.composer.json.
8a40 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e ').->setDefinition(array(.new.In
8a60 70 75 74 41 72 67 75 6d 65 6e 74 28 27 73 63 72 69 70 74 27 2c 20 49 6e 70 75 74 41 72 67 75 6d putArgument('script',.InputArgum
8a80 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 53 63 72 69 70 74 20 6e 61 6d 65 20 74 6f 20 72 ent::REQUIRED,.'Script.name.to.r
8aa0 75 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 un.'),.new.InputOption('dev',.nu
8ac0 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 53 65 ll,.InputOption::VALUE_NONE,.'Se
8ae0 74 73 20 74 68 65 20 64 65 76 20 6d 6f 64 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 ts.the.dev.mode.'),.new.InputOpt
8b00 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a ion('no-dev',.null,.InputOption:
8b20 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 74 68 65 20 64 65 76 20 6d :VALUE_NONE,.'Disables.the.dev.m
8b40 6f 64 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 ode.'),.)).->setHelp(<<<EOT.The.
8b60 3c 69 6e 66 6f 3e 72 75 6e 2d 73 63 72 69 70 74 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 <info>run-script</info>.command.
8b80 72 75 6e 73 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 runs.scripts.defined.in.composer
8ba0 2e 6a 73 6f 6e 3a 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 .json:..<info>php.composer.phar.
8bc0 72 75 6e 2d 73 63 72 69 70 74 20 70 6f 73 74 2d 75 70 64 61 74 65 2d 63 6d 64 3c 2f 69 6e 66 6f run-script.post-update-cmd</info
8be0 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 >.EOT.).;.}..protected.function.
8c00 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 20 4f execute(InputInterface.$input,.O
8c20 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 73 63 72 69 70 utputInterface.$output).{.$scrip
8c40 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 63 72 69 70 74 27 t.=.$input->getArgument('script'
8c60 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 73 63 72 69 70 74 2c 20 61 72 72 61 79 28 );.if.(!in_array($script,.array(
8c80 0a 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 2c 0a .ScriptEvents::PRE_INSTALL_CMD,.
8ca0 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 2c 0a ScriptEvents::POST_INSTALL_CMD,.
8cc0 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 55 50 44 41 54 45 5f 43 4d 44 2c 0a 53 63 ScriptEvents::PRE_UPDATE_CMD,.Sc
8ce0 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 55 50 44 41 54 45 5f 43 4d 44 2c 0a 53 63 72 riptEvents::POST_UPDATE_CMD,.Scr
8d00 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 53 54 41 54 55 53 5f 43 4d 44 2c 0a 53 63 72 69 70 iptEvents::PRE_STATUS_CMD,.Scrip
8d20 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 53 54 41 54 55 53 5f 43 4d 44 2c 0a 29 29 29 20 7b 0a tEvents::POST_STATUS_CMD,.))).{.
8d40 69 66 20 28 64 65 66 69 6e 65 64 28 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 53 63 72 if.(defined('Composer\Script\Scr
8d60 69 70 74 45 76 65 6e 74 73 3a 3a 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2d 27 2c 20 27 5f iptEvents::'.str_replace('-',.'_
8d80 27 2c 20 73 74 72 74 6f 75 70 70 65 72 28 24 73 63 72 69 70 74 29 29 29 29 20 7b 0a 74 68 72 6f ',.strtoupper($script)))).{.thro
8da0 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(
8dc0 73 70 72 69 6e 74 66 28 27 53 63 72 69 70 74 20 22 25 73 22 20 63 61 6e 6e 6f 74 20 62 65 20 72 sprintf('Script."%s".cannot.be.r
8de0 75 6e 20 77 69 74 68 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 27 2c 20 24 73 63 72 69 70 74 29 29 un.with.this.command',.$script))
8e00 3b 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
8e20 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 53 63 72 69 70 74 20 22 25 73 22 20 64 6f xception(sprintf('Script."%s".do
8e40 65 73 20 6e 6f 74 20 65 78 69 73 74 27 2c 20 24 73 63 72 69 70 74 29 29 3b 0a 7d 0a 0a 24 74 68 es.not.exist',.$script));.}..$th
8e60 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 is->getComposer()->getEventDispa
8e80 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 73 tcher()->dispatchCommandEvent($s
8ea0 63 72 69 70 74 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 29 20 cript,.$input->getOption('dev').
8ec0 7c 7c 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 29 ||.!$input->getOption('no-dev'))
8ee0 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
8f00 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 65 72 .Composer\Command;..use.Composer
8f20 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b \Composer;.use.Composer\Factory;
8f40 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f .use.Composer\Downloader\Transpo
8f60 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e rtException;.use.Composer\Plugin
8f80 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 \CommandEvent;.use.Composer\Plug
8fa0 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 in\PluginEvents;.use.Composer\Ut
8fc0 69 6c 5c 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 il\ConfigValidator;.use.Composer
8fe0 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 70 6f \Util\ProcessExecutor;.use.Compo
9000 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 ser\Util\RemoteFilesystem;.use.C
9020 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 omposer\Util\StreamContextFactor
9040 79 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 y;.use.Symfony\Component\Console
9060 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f \Input\InputInterface;.use.Symfo
9080 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
90a0 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 69 61 67 6e 6f 73 65 43 utInterface;.....class.DiagnoseC
90c0 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 74 ommand.extends.Command.{.protect
90e0 65 64 20 24 72 66 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f ed.$rfs;.protected.$process;.pro
9100 74 65 63 74 65 64 20 24 66 61 69 6c 75 72 65 73 20 3d 20 30 3b 0a 0a 70 72 6f 74 65 63 74 65 64 tected.$failures.=.0;..protected
9120 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e .function.configure().{.$this.->
9140 73 65 74 4e 61 6d 65 28 27 64 69 61 67 6e 6f 73 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 setName('diagnose').->setDescrip
9160 74 69 6f 6e 28 27 44 69 61 67 6e 6f 73 65 73 20 74 68 65 20 73 79 73 74 65 6d 20 74 6f 20 69 64 tion('Diagnoses.the.system.to.id
9180 65 6e 74 69 66 79 20 63 6f 6d 6d 6f 6e 20 65 72 72 6f 72 73 2e 27 29 0a 2d 3e 73 65 74 48 65 6c entify.common.errors.').->setHel
91a0 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 64 69 61 67 6e 6f 73 65 3c 2f 69 6e 66 p(<<<EOT.The.<info>diagnose</inf
91c0 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 68 65 63 6b 73 20 63 6f 6d 6d 6f 6e 20 65 72 72 6f 72 73 20 o>.command.checks.common.errors.
91e0 74 6f 20 68 65 6c 70 20 64 65 62 75 67 67 69 6e 67 20 70 72 6f 62 6c 65 6d 73 2e 0a 0a 45 4f 54 to.help.debugging.problems...EOT
9200 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 63 75 .).;.}..protected.function.execu
9220 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
9240 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 72 66 73 20 Interface.$output).{.$this->rfs.
9260 3d 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 67 65 =.new.RemoteFilesystem($this->ge
9280 74 49 4f 28 29 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f tIO());.$this->process.=.new.Pro
92a0 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 0a 24 cessExecutor($this->getIO());..$
92c0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 70 6c 61 74 66 6f 72 6d output->write('Checking.platform
92e0 20 73 65 74 74 69 6e 67 73 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 .settings:.');.$this->outputResu
9300 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 50 6c 61 74 66 6f 72 6d lt($output,.$this->checkPlatform
9320 28 29 29 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 67 ());..$output->write('Checking.g
9340 69 74 20 73 65 74 74 69 6e 67 73 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 it.settings:.');.$this->outputRe
9360 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 47 69 74 28 29 29 sult($output,.$this->checkGit())
9380 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 68 74 74 70 ;..$output->write('Checking.http
93a0 20 63 6f 6e 6e 65 63 74 69 76 69 74 79 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 .connectivity:.');.$this->output
93c0 52 65 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 Result($output,.$this->checkHttp
93e0 28 29 29 3b 0a 0a 24 6f 70 74 73 20 3d 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 78 74 5f 67 65 74 ());..$opts.=.stream_context_get
9400 5f 6f 70 74 69 6f 6e 73 28 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 _options(StreamContextFactory::g
9420 65 74 43 6f 6e 74 65 78 74 28 27 68 74 74 70 3a 2f 2f 65 78 61 6d 70 6c 65 2e 6f 72 67 27 29 29 etContext('http://example.org'))
9440 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6f 70 74 73 5b 27 68 74 74 70 27 5d 5b 27 70 72 6f 78 ;.if.(!empty($opts['http']['prox
9460 79 27 5d 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 y'])).{.$output->write('Checking
9480 20 48 54 54 50 20 70 72 6f 78 79 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 .HTTP.proxy:.');.$this->outputRe
94a0 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 50 72 sult($output,.$this->checkHttpPr
94c0 6f 78 79 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 oxy());.$output->write('Checking
94e0 20 48 54 54 50 20 70 72 6f 78 79 20 73 75 70 70 6f 72 74 20 66 6f 72 20 72 65 71 75 65 73 74 5f .HTTP.proxy.support.for.request_
9500 66 75 6c 6c 75 72 69 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 fulluri:.');.$this->outputResult
9520 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 48 74 74 70 50 72 6f 78 79 46 ($output,.$this->checkHttpProxyF
9540 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 61 6d 28 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e ullUriRequestParam());.$output->
9560 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 48 54 54 50 53 20 70 72 6f 78 79 20 73 75 70 70 write('Checking.HTTPS.proxy.supp
9580 6f 72 74 20 66 6f 72 20 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 3a 20 27 29 3b 0a 24 74 68 ort.for.request_fulluri:.');.$th
95a0 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d is->outputResult($output,.$this-
95c0 3e 63 68 65 63 6b 48 74 74 70 73 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 >checkHttpsProxyFullUriRequestPa
95e0 72 61 6d 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 ram());.}..$composer.=.$this->ge
9600 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 tComposer(false);.if.($composer)
9620 20 7b 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 .{.$commandEvent.=.new.CommandEv
9640 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 64 69 61 67 ent(PluginEvents::COMMAND,.'diag
9660 6e 6f 73 65 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 nose',.$input,.$output);.$compos
9680 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 er->getEventDispatcher()->dispat
96a0 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f ch($commandEvent->getName(),.$co
96c0 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 mmandEvent);..$output->write('Ch
96e0 65 63 6b 69 6e 67 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3a 20 27 29 3b 0a 24 74 68 69 73 2d ecking.composer.json:.');.$this-
9700 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 >outputResult($output,.$this->ch
9720 65 63 6b 43 6f 6d 70 6f 73 65 72 53 63 68 65 6d 61 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f eckComposerSchema());.}..if.($co
9740 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 mposer).{.$config.=.$composer->g
9760 65 74 43 6f 6e 66 69 67 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 etConfig();.}.else.{.$config.=.F
9780 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 actory::createConfig();.}..if.($
97a0 6f 61 75 74 68 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 6f 61 75 oauth.=.$config->get('github-oau
97c0 74 68 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 61 75 74 68 20 61 73 20 24 64 6f 6d 61 th')).{.foreach.($oauth.as.$doma
97e0 69 6e 20 3d 3e 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 in.=>.$token).{.$output->write('
9800 43 68 65 63 6b 69 6e 67 20 27 2e 24 64 6f 6d 61 69 6e 2e 27 20 6f 61 75 74 68 20 61 63 63 65 73 Checking.'.$domain.'.oauth.acces
9820 73 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 6f 75 74 70 s:.');.$this->outputResult($outp
9840 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 47 69 74 68 75 62 4f 61 75 74 68 28 24 64 6f 6d ut,.$this->checkGithubOauth($dom
9860 61 69 6e 2c 20 24 74 6f 6b 65 6e 29 29 3b 0a 7d 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 ain,.$token));.}.}..$output->wri
9880 74 65 28 27 43 68 65 63 6b 69 6e 67 20 64 69 73 6b 20 66 72 65 65 20 73 70 61 63 65 3a 20 27 29 te('Checking.disk.free.space:.')
98a0 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 ;.$this->outputResult($output,.$
98c0 74 68 69 73 2d 3e 63 68 65 63 6b 44 69 73 6b 53 70 61 63 65 28 24 63 6f 6e 66 69 67 29 29 3b 0a this->checkDiskSpace($config));.
98e0 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 43 68 65 63 6b 69 6e 67 20 63 6f 6d 70 6f 73 .$output->write('Checking.compos
9900 65 72 20 76 65 72 73 69 6f 6e 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 52 65 73 er.version:.');.$this->outputRes
9920 75 6c 74 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 56 65 72 73 69 6f 6e ult($output,.$this->checkVersion
9940 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 69 6c 75 72 65 73 3b 0a 7d 0a ());..return.$this->failures;.}.
9960 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 43 6f 6d 70 6f 73 65 72 53 .private.function.checkComposerS
9980 63 68 65 6d 61 28 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 43 6f 6e 66 69 chema().{.$validator.=.new.Confi
99a0 67 56 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 6c 69 73 74 gValidator($this->getIO());.list
99c0 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 ($errors,.$publishErrors,.$warni
99e0 6e 67 73 29 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 2d 3e 76 61 6c 69 64 61 74 65 28 46 61 63 74 ngs).=.$validator->validate(Fact
9a00 6f 72 79 3a 3a 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 29 3b 0a 0a 69 66 20 28 24 65 ory::getComposerFile());..if.($e
9a20 72 72 6f 72 73 20 7c 7c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 20 7c 7c 20 24 77 61 72 6e rrors.||.$publishErrors.||.$warn
9a40 69 6e 67 73 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 0a 27 65 72 72 6f ings).{.$messages.=.array(.'erro
9a60 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 62 6c r'.=>.array_merge($errors,.$publ
9a80 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 69 6e ishErrors),.'warning'.=>.$warnin
9aa0 67 73 2c 0a 29 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 gs,.);..$output.=.'';.foreach.($
9ac0 6d 65 73 73 61 67 65 73 20 61 73 20 24 73 74 79 6c 65 20 3d 3e 20 24 6d 73 67 73 29 20 7b 0a 66 messages.as.$style.=>.$msgs).{.f
9ae0 6f 72 65 61 63 68 20 28 24 6d 73 67 73 20 61 73 20 24 6d 73 67 29 20 7b 0a 24 6f 75 74 70 75 74 oreach.($msgs.as.$msg).{.$output
9b00 20 2e 3d 20 27 3c 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 ..=.'<'...$style...'>'...$msg...
9b20 27 3c 2f 27 20 2e 20 24 73 74 79 6c 65 20 2e 20 27 3e 27 20 2e 20 50 48 50 5f 45 4f 4c 3b 0a 7d '</'...$style...'>'...PHP_EOL;.}
9b40 0a 7d 0a 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 72 65 .}..return.rtrim($output);.}..re
9b60 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 turn.true;.}..private.function.c
9b80 68 65 63 6b 47 69 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 heckGit().{.$this->process->exec
9ba0 75 74 65 28 27 67 69 74 20 63 6f 6e 66 69 67 20 63 6f 6c 6f 72 2e 75 69 27 2c 20 24 6f 75 74 70 ute('git.config.color.ui',.$outp
9bc0 75 74 29 3b 0a 69 66 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 74 72 69 6d 28 24 6f 75 74 70 75 74 ut);.if.(strtolower(trim($output
9be0 29 29 20 3d 3d 3d 20 27 61 6c 77 61 79 73 27 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 77 61 72 6e )).===.'always').{.return.'<warn
9c00 69 6e 67 3e 59 6f 75 72 20 67 69 74 20 63 6f 6c 6f 72 2e 75 69 20 73 65 74 74 69 6e 67 20 69 73 ing>Your.git.color.ui.setting.is
9c20 20 73 65 74 20 74 6f 20 61 6c 77 61 79 73 2c 20 74 68 69 73 20 69 73 20 6b 6e 6f 77 6e 20 74 6f .set.to.always,.this.is.known.to
9c40 20 63 72 65 61 74 65 20 69 73 73 75 65 73 2e 20 55 73 65 20 22 67 69 74 20 63 6f 6e 66 69 67 20 .create.issues..Use."git.config.
9c60 2d 2d 67 6c 6f 62 61 6c 20 63 6f 6c 6f 72 2e 75 69 20 74 72 75 65 22 20 74 6f 20 73 65 74 20 69 --global.color.ui.true".to.set.i
9c80 74 20 63 6f 72 72 65 63 74 6c 79 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 3b 0a 7d 0a 0a 72 65 74 75 t.correctly.</warning>';.}..retu
9ca0 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 rn.true;.}..private.function.che
9cc0 63 6b 48 74 74 70 28 29 0a 7b 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 74 65 6e 73 69 6f 6e ckHttp().{.$protocol.=.extension
9ce0 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 27 _loaded('openssl').?.'https'.:.'
9d00 68 74 74 70 27 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d http';.try.{.$json.=.$this->rfs-
9d20 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 70 >getContents('packagist.org',.$p
9d40 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 2f 70 61 63 6b rotocol...'://packagist.org/pack
9d60 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 ages.json',.false);.}.catch.(\Ex
9d80 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 ception.$e).{.return.$e;.}..retu
9da0 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 rn.true;.}..private.function.che
9dc0 63 6b 48 74 74 70 50 72 6f 78 79 28 29 0a 7b 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 78 74 65 ckHttpProxy().{.$protocol.=.exte
9de0 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 nsion_loaded('openssl').?.'https
9e00 27 20 3a 20 27 68 74 74 70 27 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6a 73 6f 6e 5f 64 '.:.'http';.try.{.$json.=.json_d
9e20 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 ecode($this->rfs->getContents('p
9e40 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 70 ackagist.org',.$protocol...'://p
9e60 61 63 6b 61 67 69 73 74 2e 6f 72 67 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 2c 20 66 61 6c ackagist.org/packages.json',.fal
9e80 73 65 29 2c 20 74 72 75 65 29 3b 0a 24 68 61 73 68 20 3d 20 72 65 73 65 74 28 24 6a 73 6f 6e 5b se),.true);.$hash.=.reset($json[
9ea0 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 3b 0a 24 68 61 73 68 20 3d 20 24 'provider-includes']);.$hash.=.$
9ec0 68 61 73 68 5b 27 73 68 61 32 35 36 27 5d 3b 0a 24 70 61 74 68 20 3d 20 73 74 72 5f 72 65 70 6c hash['sha256'];.$path.=.str_repl
9ee0 61 63 65 28 27 25 68 61 73 68 25 27 2c 20 24 68 61 73 68 2c 20 6b 65 79 28 24 6a 73 6f 6e 5b 27 ace('%hash%',.$hash,.key($json['
9f00 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 3b 0a 24 70 72 6f 76 69 64 65 72 provider-includes']));.$provider
9f20 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 27 70 61 63 6b .=.$this->rfs->getContents('pack
9f40 61 67 69 73 74 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 70 61 63 6b agist.org',.$protocol...'://pack
9f60 61 67 69 73 74 2e 6f 72 67 2f 27 2e 24 70 61 74 68 2c 20 66 61 6c 73 65 29 3b 0a 0a 69 66 20 28 agist.org/'.$path,.false);..if.(
9f80 68 61 73 68 28 27 73 68 61 32 35 36 27 2c 20 24 70 72 6f 76 69 64 65 72 29 20 21 3d 3d 20 24 68 hash('sha256',.$provider).!==.$h
9fa0 61 73 68 29 20 7b 0a 72 65 74 75 72 6e 20 27 49 74 20 73 65 65 6d 73 20 74 68 61 74 20 79 6f 75 ash).{.return.'It.seems.that.you
9fc0 72 20 70 72 6f 78 79 20 69 73 20 6d 6f 64 69 66 79 69 6e 67 20 68 74 74 70 20 74 72 61 66 66 69 r.proxy.is.modifying.http.traffi
9fe0 63 20 6f 6e 20 74 68 65 20 66 6c 79 27 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 c.on.the.fly';.}.}.catch.(\Excep
a000 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 tion.$e).{.return.$e;.}..return.
a020 74 72 75 65 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 true;.}.........private.function
a040 20 63 68 65 63 6b 48 74 74 70 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 .checkHttpProxyFullUriRequestPar
a060 61 6d 28 29 0a 7b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 3a 2f 2f 70 61 63 6b 61 67 69 73 74 2e am().{.$url.=.'http://packagist.
a080 6f 72 67 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d org/packages.json';.try.{.$this-
a0a0 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 >rfs->getContents('packagist.org
a0c0 27 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 ',.$url,.false);.}.catch.(Transp
a0e0 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e ortException.$e).{.try.{.$this->
a100 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 70 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 rfs->getContents('packagist.org'
a120 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 61 72 72 61 79 28 27 68 74 74 70 27 20 3d 3e 20 61 ,.$url,.false,.array('http'.=>.a
a140 72 72 61 79 28 27 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 27 20 3d 3e 20 66 61 6c 73 65 29 rray('request_fulluri'.=>.false)
a160 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 69 6f 6e 20 ));.}.catch.(TransportException.
a180 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 55 6e 61 62 6c 65 20 74 6f 20 61 73 73 65 72 74 20 74 $e).{.return.'Unable.to.assert.t
a1a0 68 65 20 73 69 74 75 61 74 69 6f 6e 2c 20 6d 61 79 62 65 20 70 61 63 6b 61 67 69 73 74 2e 6f 72 he.situation,.maybe.packagist.or
a1c0 67 20 69 73 20 64 6f 77 6e 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 g.is.down.('.$e->getMessage().')
a1e0 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 49 74 20 73 65 65 6d 73 20 74 68 65 72 65 20 69 73 20 ';.}..return.'It.seems.there.is.
a200 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 79 6f 75 72 20 70 72 6f 78 79 20 73 65 72 76 65 72 a.problem.with.your.proxy.server
a220 2c 20 74 72 79 20 73 65 74 74 69 6e 67 20 74 68 65 20 22 48 54 54 50 5f 50 52 4f 58 59 5f 52 45 ,.try.setting.the."HTTP_PROXY_RE
a240 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 22 20 61 6e 64 20 22 48 54 54 50 53 5f 50 52 4f 58 59 5f QUEST_FULLURI".and."HTTPS_PROXY_
a260 52 45 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 22 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 REQUEST_FULLURI".environment.var
a280 69 61 62 6c 65 73 20 74 6f 20 22 66 61 6c 73 65 22 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 iables.to."false"';.}..return.tr
a2a0 75 65 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 63 ue;.}.........private.function.c
a2c0 68 65 63 6b 48 74 74 70 73 50 72 6f 78 79 46 75 6c 6c 55 72 69 52 65 71 75 65 73 74 50 61 72 61 heckHttpsProxyFullUriRequestPara
a2e0 6d 28 29 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 m().{.if.(!extension_loaded('ope
a300 6e 73 73 6c 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 59 6f 75 20 6e 65 65 64 20 74 68 65 20 6f nssl')).{.return.'You.need.the.o
a320 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 64 20 66 6f 72 20 74 penssl.extension.installed.for.t
a340 68 69 73 20 63 68 65 63 6b 27 3b 0a 7d 0a 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 his.check';.}..$url.=.'https://a
a360 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 53 65 6c 64 61 65 6b 2f 6a 73 6f 6e pi.github.com/repos/Seldaek/json
a380 6c 69 6e 74 2f 7a 69 70 62 61 6c 6c 2f 31 2e 30 2e 30 27 3b 0a 74 72 79 20 7b 0a 24 72 66 63 52 lint/zipball/1.0.0';.try.{.$rfcR
a3a0 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 esult.=.$this->rfs->getContents(
a3c0 27 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 27 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 'api.github.com',.$url,.false);.
a3e0 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).
a400 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 {.try.{.$this->rfs->getContents(
a420 27 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 27 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 61 'api.github.com',.$url,.false,.a
a440 72 72 61 79 28 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 27 72 65 71 75 65 73 74 5f 66 75 rray('http'.=>.array('request_fu
a460 6c 6c 75 72 69 27 20 3d 3e 20 66 61 6c 73 65 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 lluri'.=>.false)));.}.catch.(Tra
a480 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 55 6e nsportException.$e).{.return.'Un
a4a0 61 62 6c 65 20 74 6f 20 61 73 73 65 72 74 20 74 68 65 20 73 69 74 75 61 74 69 6f 6e 2c 20 6d 61 able.to.assert.the.situation,.ma
a4c0 79 62 65 20 67 69 74 68 75 62 20 69 73 20 64 6f 77 6e 20 28 27 2e 24 65 2d 3e 67 65 74 4d 65 73 ybe.github.is.down.('.$e->getMes
a4e0 73 61 67 65 28 29 2e 27 29 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 49 74 20 73 65 65 6d 73 20 sage().')';.}..return.'It.seems.
a500 74 68 65 72 65 20 69 73 20 61 20 70 72 6f 62 6c 65 6d 20 77 69 74 68 20 79 6f 75 72 20 70 72 6f there.is.a.problem.with.your.pro
a520 78 79 20 73 65 72 76 65 72 2c 20 74 72 79 20 73 65 74 74 69 6e 67 20 74 68 65 20 22 48 54 54 50 xy.server,.try.setting.the."HTTP
a540 53 5f 50 52 4f 58 59 5f 52 45 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 22 20 65 6e 76 69 72 6f 6e S_PROXY_REQUEST_FULLURI".environ
a560 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 74 6f 20 22 66 61 6c 73 65 22 27 3b 0a 7d 0a 0a 72 65 ment.variable.to."false"';.}..re
a580 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 turn.true;.}..private.function.c
a5a0 68 65 63 6b 47 69 74 68 75 62 4f 61 75 74 68 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 29 heckGithubOauth($domain,.$token)
a5c0 0a 7b 0a 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 .{.$this->getIO()->setAuthentica
a5e0 74 69 6f 6e 28 24 64 6f 6d 61 69 6e 2c 20 24 74 6f 6b 65 6e 2c 20 27 78 2d 6f 61 75 74 68 2d 62 tion($domain,.$token,.'x-oauth-b
a600 61 73 69 63 27 29 3b 0a 74 72 79 20 7b 0a 24 75 72 6c 20 3d 20 24 64 6f 6d 61 69 6e 20 3d 3d 3d asic');.try.{.$url.=.$domain.===
a620 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3f 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e 27 2e 24 .'github.com'.?.'https://api.'.$
a640 64 6f 6d 61 69 6e 2e 27 2f 75 73 65 72 2f 72 65 70 6f 73 27 20 3a 20 27 68 74 74 70 73 3a 2f 2f domain.'/user/repos'.:.'https://
a660 27 2e 24 64 6f 6d 61 69 6e 2e 27 2f 61 70 69 2f 76 33 2f 75 73 65 72 2f 72 65 70 6f 73 27 3b 0a '.$domain.'/api/v3/user/repos';.
a680 0a 72 65 74 75 72 6e 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 .return.$this->rfs->getContents(
a6a0 24 64 6f 6d 61 69 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 20 3f 20 74 72 75 65 20 3a 20 27 $domain,.$url,.false).?.true.:.'
a6c0 55 6e 65 78 70 65 63 74 65 64 20 65 72 72 6f 72 27 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 Unexpected.error';.}.catch.(\Exc
a6e0 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 eption.$e).{.if.($e.instanceof.T
a700 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 26 26 20 24 65 2d 3e 67 65 74 43 6f 64 65 ransportException.&&.$e->getCode
a720 28 29 20 3d 3d 3d 20 34 30 31 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 77 61 72 6e 69 6e 67 3e 54 ().===.401).{.return.'<warning>T
a740 68 65 20 6f 61 75 74 68 20 74 6f 6b 65 6e 20 66 6f 72 20 27 2e 24 64 6f 6d 61 69 6e 2e 27 20 73 he.oauth.token.for.'.$domain.'.s
a760 65 65 6d 73 20 69 6e 76 61 6c 69 64 2c 20 72 75 6e 20 22 63 6f 6d 70 6f 73 65 72 20 63 6f 6e 66 eems.invalid,.run."composer.conf
a780 69 67 20 2d 2d 67 6c 6f 62 61 6c 20 2d 2d 75 6e 73 65 74 20 67 69 74 68 75 62 2d 6f 61 75 74 68 ig.--global.--unset.github-oauth
a7a0 2e 27 2e 24 64 6f 6d 61 69 6e 2e 27 22 20 74 6f 20 72 65 6d 6f 76 65 20 69 74 3c 2f 77 61 72 6e .'.$domain.'".to.remove.it</warn
a7c0 69 6e 67 3e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 ing>';.}..return.$e;.}.}..privat
a7e0 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 44 69 73 6b 53 70 61 63 65 28 24 63 6f 6e 66 69 e.function.checkDiskSpace($confi
a800 67 29 0a 7b 0a 24 6d 69 6e 53 70 61 63 65 46 72 65 65 20 3d 20 31 30 32 34 2a 31 30 32 34 3b 0a g).{.$minSpaceFree.=.1024*1024;.
a820 69 66 20 28 28 28 24 64 66 20 3d 20 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 if.((($df.=.@disk_free_space($di
a840 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 29 29 20 21 3d 3d 20 66 r.=.$config->get('home'))).!==.f
a860 61 6c 73 65 20 26 26 20 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 7c 7c 20 alse.&&.$df.<.$minSpaceFree).||.
a880 28 28 24 64 66 20 3d 20 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 72 20 3d 20 (($df.=.@disk_free_space($dir.=.
a8a0 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 29 20 21 3d 3d $config->get('vendor-dir'))).!==
a8c0 20 66 61 6c 73 65 20 26 26 20 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 29 .false.&&.$df.<.$minSpaceFree).)
a8e0 20 7b 0a 72 65 74 75 72 6e 20 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 69 73 6b 20 68 6f 73 74 69 .{.return.'<error>The.disk.hosti
a900 6e 67 20 27 2e 24 64 69 72 2e 27 20 69 73 20 66 75 6c 6c 3c 2f 65 72 72 6f 72 3e 27 3b 0a 7d 0a ng.'.$dir.'.is.full</error>';.}.
a920 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f .return.true;.}..private.functio
a940 6e 20 63 68 65 63 6b 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 24 70 72 6f 74 6f 63 6f 6c 20 3d 20 65 n.checkVersion().{.$protocol.=.e
a960 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 3f 20 27 68 74 xtension_loaded('openssl').?.'ht
a980 74 70 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 24 6c 61 74 65 73 74 20 3d 20 74 72 69 6d 28 24 74 tps'.:.'http';.$latest.=.trim($t
a9a0 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 27 67 65 74 63 6f 6d 70 6f 73 his->rfs->getContents('getcompos
a9c0 65 72 2e 6f 72 67 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 27 3a 2f 2f 67 65 74 63 6f 6d 70 er.org',.$protocol...'://getcomp
a9e0 6f 73 65 72 2e 6f 72 67 2f 76 65 72 73 69 6f 6e 27 2c 20 66 61 6c 73 65 29 29 3b 0a 0a 69 66 20 oser.org/version',.false));..if.
aa00 28 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 24 6c 61 74 65 73 74 20 26 (Composer::VERSION.!==.$latest.&
aa20 26 20 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 21 3d 3d 20 27 40 70 61 63 6b 61 67 &.Composer::VERSION.!==.'@packag
aa40 65 5f 76 65 72 73 69 6f 6e 40 27 29 20 7b 0a 72 65 74 75 72 6e 20 27 3c 77 61 72 6e 69 6e 67 3e e_version@').{.return.'<warning>
aa60 59 6f 75 72 20 61 72 65 20 6e 6f 74 20 72 75 6e 6e 69 6e 67 20 74 68 65 20 6c 61 74 65 73 74 20 Your.are.not.running.the.latest.
aa80 76 65 72 73 69 6f 6e 3c 2f 77 61 72 6e 69 6e 67 3e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 version</warning>';.}..return.tr
aaa0 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6f 75 74 70 75 74 52 65 ue;.}..private.function.outputRe
aac0 73 75 6c 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 72 sult(OutputInterface.$output,.$r
aae0 65 73 75 6c 74 29 0a 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b esult).{.if.(true.===.$result).{
ab00 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 4f 4b 3c 2f 69 6e 66 .$output->writeln('<info>OK</inf
ab20 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 66 61 69 6c 75 72 65 73 2b 2b o>');.}.else.{.$this->failures++
ab40 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 46 41 49 4c 3c ;.$output->writeln('<error>FAIL<
ab60 2f 65 72 72 6f 72 3e 27 29 3b 0a 69 66 20 28 24 72 65 73 75 6c 74 20 69 6e 73 74 61 6e 63 65 6f /error>');.if.($result.instanceo
ab80 66 20 5c 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e f.\Exception).{.$output->writeln
aba0 28 27 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 72 65 73 75 6c 74 29 2e 27 5d 20 27 2e 24 72 65 ('['.get_class($result).'].'.$re
abc0 73 75 6c 74 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 sult->getMessage());.}.elseif.($
abe0 72 65 73 75 6c 74 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 72 65 73 75 result).{.$output->writeln($resu
ac00 6c 74 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 lt);.}.}.}..private.function.che
ac20 63 6b 50 6c 61 74 66 6f 72 6d 28 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 27 27 3b 0a 24 6f 75 ckPlatform().{.$output.=.'';.$ou
ac40 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 73 67 2c 20 24 73 74 79 6c 65 29 20 75 73 65 20 t.=.function.($msg,.$style).use.
ac60 28 26 24 6f 75 74 70 75 74 29 20 7b 0a 24 6f 75 74 70 75 74 20 2e 3d 20 27 3c 27 2e 24 73 74 79 (&$output).{.$output..=.'<'.$sty
ac80 6c 65 2e 27 3e 27 2e 24 6d 73 67 2e 27 3c 2f 27 2e 24 73 74 79 6c 65 2e 27 3e 27 3b 0a 7d 3b 0a le.'>'.$msg.'</'.$style.'>';.};.
aca0 0a 0a 20 24 65 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 ...$errors.=.array();.$warnings.
acc0 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 69 6e 69 50 61 74 68 20 3d 20 70 68 70 5f 69 6e 69 5f 6c =.array();..$iniPath.=.php_ini_l
ace0 6f 61 64 65 64 5f 66 69 6c 65 28 29 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 65 oaded_file();.$displayIniMessage
ad00 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 24 69 6e 69 50 61 74 68 29 20 7b 0a 24 69 6e 69 4d 65 .=.false;.if.($iniPath).{.$iniMe
ad20 73 73 61 67 65 20 3d 20 50 48 50 5f 45 4f 4c 2e 50 48 50 5f 45 4f 4c 2e 27 54 68 65 20 70 68 70 ssage.=.PHP_EOL.PHP_EOL.'The.php
ad40 2e 69 6e 69 20 75 73 65 64 20 62 79 20 79 6f 75 72 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 50 .ini.used.by.your.command-line.P
ad60 48 50 20 69 73 3a 20 27 20 2e 20 24 69 6e 69 50 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 HP.is:.'...$iniPath;.}.else.{.$i
ad80 6e 69 4d 65 73 73 61 67 65 20 3d 20 50 48 50 5f 45 4f 4c 2e 50 48 50 5f 45 4f 4c 2e 27 41 20 70 niMessage.=.PHP_EOL.PHP_EOL.'A.p
ada0 68 70 2e 69 6e 69 20 66 69 6c 65 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 20 59 6f 75 20 hp.ini.file.does.not.exist..You.
adc0 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 63 72 65 61 74 65 20 6f 6e 65 2e 27 3b 0a 7d 0a 24 69 6e will.have.to.create.one.';.}.$in
ade0 69 4d 65 73 73 61 67 65 20 2e 3d 20 50 48 50 5f 45 4f 4c 2e 27 49 66 20 79 6f 75 20 63 61 6e 20 iMessage..=.PHP_EOL.'If.you.can.
ae00 6e 6f 74 20 6d 6f 64 69 66 79 20 74 68 65 20 69 6e 69 20 66 69 6c 65 2c 20 79 6f 75 20 63 61 6e not.modify.the.ini.file,.you.can
ae20 20 61 6c 73 6f 20 72 75 6e 20 60 70 68 70 20 2d 64 20 6f 70 74 69 6f 6e 3d 76 61 6c 75 65 60 20 .also.run.`php.-d.option=value`.
ae40 74 6f 20 6d 6f 64 69 66 79 20 69 6e 69 20 76 61 6c 75 65 73 20 6f 6e 20 74 68 65 20 66 6c 79 2e to.modify.ini.values.on.the.fly.
ae60 20 59 6f 75 20 63 61 6e 20 75 73 65 20 2d 64 20 6d 75 6c 74 69 70 6c 65 20 74 69 6d 65 73 2e 27 .You.can.use.-d.multiple.times.'
ae80 3b 0a 0a 69 66 20 28 21 69 6e 69 5f 67 65 74 28 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e ;..if.(!ini_get('allow_url_fopen
aea0 27 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 27 5d ')).{.$errors['allow_url_fopen']
aec0 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 .=.true;.}..if.(version_compare(
aee0 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 32 27 2c 20 27 3c 27 29 29 20 7b 0a 24 65 PHP_VERSION,.'5.3.2',.'<')).{.$e
af00 72 72 6f 72 73 5b 27 70 68 70 27 5d 20 3d 20 50 48 50 5f 56 45 52 53 49 4f 4e 3b 0a 7d 0a 0a 69 rrors['php'].=.PHP_VERSION;.}..i
af20 66 20 28 21 69 73 73 65 74 28 24 65 72 72 6f 72 73 5b 27 70 68 70 27 5d 29 20 26 26 20 76 65 72 f.(!isset($errors['php']).&&.ver
af40 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 34 sion_compare(PHP_VERSION,.'5.3.4
af60 27 2c 20 27 3c 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 70 68 70 27 5d 20 3d 20 50 48 ',.'<')).{.$warnings['php'].=.PH
af80 50 5f 56 45 52 53 49 4f 4e 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 P_VERSION;.}..if.(!extension_loa
afa0 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 6f 70 65 ded('openssl')).{.$warnings['ope
afc0 6e 73 73 6c 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 61 nssl'].=.true;.}..if.(ini_get('a
afe0 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 61 70 pc.enable_cli')).{.$warnings['ap
b000 63 5f 63 6c 69 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 c_cli'].=.true;.}..if.(ini_get('
b020 78 64 65 62 75 67 2e 70 72 6f 66 69 6c 65 72 5f 65 6e 61 62 6c 65 64 27 29 29 20 7b 0a 24 77 61 xdebug.profiler_enabled')).{.$wa
b040 72 6e 69 6e 67 73 5b 27 78 64 65 62 75 67 5f 70 72 6f 66 69 6c 65 27 5d 20 3d 20 74 72 75 65 3b rnings['xdebug_profile'].=.true;
b060 0a 7d 20 65 6c 73 65 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 78 64 65 .}.elseif.(extension_loaded('xde
b080 62 75 67 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 78 64 65 62 75 67 5f 6c 6f 61 64 65 bug')).{.$warnings['xdebug_loade
b0a0 64 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a 70 68 70 69 6e d'].=.true;.}..ob_start();.phpin
b0c0 66 6f 28 49 4e 46 4f 5f 47 45 4e 45 52 41 4c 29 3b 0a 24 70 68 70 69 6e 66 6f 20 3d 20 6f 62 5f fo(INFO_GENERAL);.$phpinfo.=.ob_
b0e0 67 65 74 5f 63 6c 65 61 6e 28 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 43 6f get_clean();.if.(preg_match('{Co
b100 6e 66 69 67 75 72 65 20 43 6f 6d 6d 61 6e 64 28 3f 3a 20 2a 3c 2f 74 64 3e 3c 74 64 20 63 6c 61 nfigure.Command(?:.*</td><td.cla
b120 73 73 3d 22 76 22 3e 7c 20 2a 3d 3e 20 2a 29 28 2e 2a 3f 29 28 3f 3a 3c 2f 74 64 3e 7c 24 29 7d ss="v">|.*=>.*)(.*?)(?:</td>|$)}
b140 6d 27 2c 20 24 70 68 70 69 6e 66 6f 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 6f 6e 66 69 67 m',.$phpinfo,.$match)).{.$config
b160 75 72 65 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 ure.=.$match[1];..if.(false.!==.
b180 73 74 72 70 6f 73 28 24 63 6f 6e 66 69 67 75 72 65 2c 20 27 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 strpos($configure,.'--enable-sig
b1a0 63 68 69 6c 64 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 73 69 67 63 68 69 6c 64 27 5d child')).{.$warnings['sigchild']
b1c0 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 .=.true;.}..if.(false.!==.strpos
b1e0 28 24 63 6f 6e 66 69 67 75 72 65 2c 20 27 2d 2d 77 69 74 68 2d 63 75 72 6c 77 72 61 70 70 65 72 ($configure,.'--with-curlwrapper
b200 73 27 29 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b 27 63 75 72 6c 77 72 61 70 70 65 72 73 27 5d s')).{.$warnings['curlwrappers']
b220 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 65 72 72 6f 72 73 .=.true;.}.}..if.(!empty($errors
b240 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 65 72 72 6f 72 73 20 61 73 20 24 65 72 72 6f 72 20 )).{.foreach.($errors.as.$error.
b260 3d 3e 20 24 63 75 72 72 65 6e 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 65 72 72 6f 72 29 20 7b =>.$current).{.switch.($error).{
b280 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 59 6f .case.'php':.$text.=.PHP_EOL."Yo
b2a0 75 72 20 50 48 50 20 28 7b 24 63 75 72 72 65 6e 74 7d 29 20 69 73 20 74 6f 6f 20 6f 6c 64 2c 20 ur.PHP.({$current}).is.too.old,.
b2c0 79 6f 75 20 6d 75 73 74 20 75 70 67 72 61 64 65 20 74 6f 20 50 48 50 20 35 2e 33 2e 32 20 6f 72 you.must.upgrade.to.PHP.5.3.2.or
b2e0 20 68 69 67 68 65 72 2e 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 61 6c 6c 6f 77 5f 75 .higher.";.break;..case.'allow_u
b300 72 6c 5f 66 6f 70 65 6e 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 rl_fopen':.$text.=.PHP_EOL."The.
b320 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 20 73 65 74 74 69 6e 67 20 69 73 20 69 6e 63 6f 72 allow_url_fopen.setting.is.incor
b340 72 65 63 74 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 41 64 64 20 74 68 rect.".PHP_EOL;.$text..=."Add.th
b360 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 79 6f 75 72 20 60 e.following.to.the.end.of.your.`
b380 70 68 70 2e 69 6e 69 60 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 php.ini`:".PHP_EOL;.$text..=."..
b3a0 20 20 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 20 3d 20 4f 6e 22 3b 0a 24 64 69 73 70 6c 61 ..allow_url_fopen.=.On";.$displa
b3c0 79 49 6e 69 4d 65 73 73 61 67 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 24 6f 75 yIniMessage.=.true;.break;.}.$ou
b3e0 74 28 24 74 65 78 74 2c 20 27 65 72 72 6f 72 27 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 2e 3d t($text,.'error');.}..$output..=
b400 20 50 48 50 5f 45 4f 4c 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 77 61 72 6e 69 6e 67 .PHP_EOL;.}..if.(!empty($warning
b420 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 77 61 72 6e 69 6e 67 73 20 61 73 20 24 77 61 72 s)).{.foreach.($warnings.as.$war
b440 6e 69 6e 67 20 3d 3e 20 24 63 75 72 72 65 6e 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 77 61 72 ning.=>.$current).{.switch.($war
b460 6e 69 6e 67 29 20 7b 0a 63 61 73 65 20 27 61 70 63 5f 63 6c 69 27 3a 0a 24 74 65 78 74 20 3d 20 ning).{.case.'apc_cli':.$text.=.
b480 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 61 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 20 73 65 74 74 PHP_EOL."The.apc.enable_cli.sett
b4a0 69 6e 67 20 69 73 20 69 6e 63 6f 72 72 65 63 74 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 ing.is.incorrect.".PHP_EOL;.$tex
b4c0 74 20 2e 3d 20 22 41 64 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 74 68 65 20 65 t..=."Add.the.following.to.the.e
b4e0 6e 64 20 6f 66 20 79 6f 75 72 20 60 70 68 70 2e 69 6e 69 60 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a nd.of.your.`php.ini`:".PHP_EOL;.
b500 24 74 65 78 74 20 2e 3d 20 22 20 20 20 20 61 70 63 2e 65 6e 61 62 6c 65 5f 63 6c 69 20 3d 20 4f $text..=."....apc.enable_cli.=.O
b520 66 66 22 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 73 61 67 65 20 3d 20 74 72 75 65 3b 0a ff";.$displayIniMessage.=.true;.
b540 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 73 69 67 63 68 69 6c 64 27 3a 0a 24 74 65 78 74 20 3d break;..case.'sigchild':.$text.=
b560 20 50 48 50 5f 45 4f 4c 2e 22 50 48 50 20 77 61 73 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 .PHP_EOL."PHP.was.compiled.with.
b580 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 20 77 68 69 63 68 20 63 61 6e 20 63 61 75 73 --enable-sigchild.which.can.caus
b5a0 65 20 69 73 73 75 65 73 20 6f 6e 20 73 6f 6d 65 20 70 6c 61 74 66 6f 72 6d 73 2e 22 2e 50 48 50 e.issues.on.some.platforms.".PHP
b5c0 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 52 65 63 6f 6d 70 69 6c 65 20 69 74 20 77 69 74 _EOL;.$text..=."Recompile.it.wit
b5e0 68 6f 75 74 20 74 68 69 73 20 66 6c 61 67 20 69 66 20 70 6f 73 73 69 62 6c 65 2c 20 73 65 65 20 hout.this.flag.if.possible,.see.
b600 61 6c 73 6f 3a 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 20 20 68 74 also:".PHP_EOL;.$text..=."....ht
b620 74 70 73 3a 2f 2f 62 75 67 73 2e 70 68 70 2e 6e 65 74 2f 62 75 67 2e 70 68 70 3f 69 64 3d 32 32 tps://bugs.php.net/bug.php?id=22
b640 39 39 39 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 63 75 72 6c 77 72 61 70 70 65 72 73 999";.break;..case.'curlwrappers
b660 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 50 48 50 20 77 61 73 20 63 6f 6d 70 ':.$text.=.PHP_EOL."PHP.was.comp
b680 69 6c 65 64 20 77 69 74 68 20 2d 2d 77 69 74 68 2d 63 75 72 6c 77 72 61 70 70 65 72 73 20 77 68 iled.with.--with-curlwrappers.wh
b6a0 69 63 68 20 77 69 6c 6c 20 63 61 75 73 65 20 69 73 73 75 65 73 20 77 69 74 68 20 48 54 54 50 20 ich.will.cause.issues.with.HTTP.
b6c0 61 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 61 6e 64 20 47 69 74 48 75 62 2e 22 2e 50 48 50 5f authentication.and.GitHub.".PHP_
b6e0 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 52 65 63 6f 6d 70 69 6c 65 20 69 74 20 77 69 74 68 EOL;.$text..=."Recompile.it.with
b700 6f 75 74 20 74 68 69 73 20 66 6c 61 67 20 69 66 20 70 6f 73 73 69 62 6c 65 22 3b 0a 62 72 65 61 out.this.flag.if.possible";.brea
b720 6b 3b 0a 0a 63 61 73 65 20 27 6f 70 65 6e 73 73 6c 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f k;..case.'openssl':.$text.=.PHP_
b740 45 4f 4c 2e 22 54 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 EOL."The.openssl.extension.is.mi
b760 73 73 69 6e 67 2c 20 77 68 69 63 68 20 77 69 6c 6c 20 72 65 64 75 63 65 20 74 68 65 20 73 65 63 ssing,.which.will.reduce.the.sec
b780 75 72 69 74 79 20 61 6e 64 20 73 74 61 62 69 6c 69 74 79 20 6f 66 20 43 6f 6d 70 6f 73 65 72 2e urity.and.stability.of.Composer.
b7a0 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 49 66 20 70 6f 73 73 69 62 6c 65 ".PHP_EOL;.$text..=."If.possible
b7c0 20 79 6f 75 20 73 68 6f 75 6c 64 20 65 6e 61 62 6c 65 20 69 74 20 6f 72 20 72 65 63 6f 6d 70 69 .you.should.enable.it.or.recompi
b7e0 6c 65 20 70 68 70 20 77 69 74 68 20 2d 2d 77 69 74 68 2d 6f 70 65 6e 73 73 6c 22 3b 0a 62 72 65 le.php.with.--with-openssl";.bre
b800 61 6b 3b 0a 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c ak;..case.'php':.$text.=.PHP_EOL
b820 2e 22 59 6f 75 72 20 50 48 50 20 28 7b 24 63 75 72 72 65 6e 74 7d 29 20 69 73 20 71 75 69 74 65 ."Your.PHP.({$current}).is.quite
b840 20 6f 6c 64 2c 20 75 70 67 72 61 64 69 6e 67 20 74 6f 20 50 48 50 20 35 2e 33 2e 34 20 6f 72 20 .old,.upgrading.to.PHP.5.3.4.or.
b860 68 69 67 68 65 72 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 22 2e 50 48 50 5f 45 4f 4c 3b higher.is.recommended.".PHP_EOL;
b880 0a 24 74 65 78 74 20 2e 3d 20 22 43 6f 6d 70 6f 73 65 72 20 77 6f 72 6b 73 20 77 69 74 68 20 35 .$text..=."Composer.works.with.5
b8a0 2e 33 2e 32 2b 20 66 6f 72 20 6d 6f 73 74 20 70 65 6f 70 6c 65 2c 20 62 75 74 20 74 68 65 72 65 .3.2+.for.most.people,.but.there
b8c0 20 6d 69 67 68 74 20 62 65 20 65 64 67 65 20 63 61 73 65 20 69 73 73 75 65 73 2e 22 3b 0a 62 72 .might.be.edge.case.issues.";.br
b8e0 65 61 6b 3b 0a 0a 63 61 73 65 20 27 78 64 65 62 75 67 5f 6c 6f 61 64 65 64 27 3a 0a 24 74 65 78 eak;..case.'xdebug_loaded':.$tex
b900 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 78 64 65 62 75 67 20 65 78 74 65 6e 73 69 6f t.=.PHP_EOL."The.xdebug.extensio
b920 6e 20 69 73 20 6c 6f 61 64 65 64 2c 20 74 68 69 73 20 63 61 6e 20 73 6c 6f 77 20 64 6f 77 6e 20 n.is.loaded,.this.can.slow.down.
b940 43 6f 6d 70 6f 73 65 72 20 61 20 6c 69 74 74 6c 65 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 Composer.a.little.".PHP_EOL;.$te
b960 78 74 20 2e 3d 20 22 44 69 73 61 62 6c 69 6e 67 20 69 74 20 77 68 65 6e 20 75 73 69 6e 67 20 43 xt..=."Disabling.it.when.using.C
b980 6f 6d 70 6f 73 65 72 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2c 20 62 75 74 20 73 68 6f 75 omposer.is.recommended,.but.shou
b9a0 6c 64 20 6e 6f 74 20 63 61 75 73 65 20 69 73 73 75 65 73 20 62 65 79 6f 6e 64 20 73 6c 6f 77 6e ld.not.cause.issues.beyond.slown
b9c0 65 73 73 2e 22 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 78 64 65 62 75 67 5f 70 72 6f 66 ess.";.break;..case.'xdebug_prof
b9e0 69 6c 65 27 3a 0a 24 74 65 78 74 20 3d 20 50 48 50 5f 45 4f 4c 2e 22 54 68 65 20 78 64 65 62 75 ile':.$text.=.PHP_EOL."The.xdebu
ba00 67 2e 70 72 6f 66 69 6c 65 72 5f 65 6e 61 62 6c 65 64 20 73 65 74 74 69 6e 67 20 69 73 20 65 6e g.profiler_enabled.setting.is.en
ba20 61 62 6c 65 64 2c 20 74 68 69 73 20 63 61 6e 20 73 6c 6f 77 20 64 6f 77 6e 20 43 6f 6d 70 6f 73 abled,.this.can.slow.down.Compos
ba40 65 72 20 61 20 6c 6f 74 2e 22 2e 50 48 50 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 41 64 er.a.lot.".PHP_EOL;.$text..=."Ad
ba60 64 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 74 6f 20 74 68 65 20 65 6e 64 20 6f 66 20 79 6f d.the.following.to.the.end.of.yo
ba80 75 72 20 60 70 68 70 2e 69 6e 69 60 20 74 6f 20 64 69 73 61 62 6c 65 20 69 74 3a 22 2e 50 48 50 ur.`php.ini`.to.disable.it:".PHP
baa0 5f 45 4f 4c 3b 0a 24 74 65 78 74 20 2e 3d 20 22 20 20 20 20 78 64 65 62 75 67 2e 70 72 6f 66 69 _EOL;.$text..=."....xdebug.profi
bac0 6c 65 72 5f 65 6e 61 62 6c 65 64 20 3d 20 30 22 3b 0a 24 64 69 73 70 6c 61 79 49 6e 69 4d 65 73 ler_enabled.=.0";.$displayIniMes
bae0 73 61 67 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 24 6f 75 74 28 24 74 65 78 74 sage.=.true;.break;.}.$out($text
bb00 2c 20 27 77 61 72 6e 69 6e 67 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 69 73 70 6c 61 79 49 ,.'warning');.}.}..if.($displayI
bb20 6e 69 4d 65 73 73 61 67 65 29 20 7b 0a 24 6f 75 74 28 24 69 6e 69 4d 65 73 73 61 67 65 2c 20 27 niMessage).{.$out($iniMessage,.'
bb40 77 61 72 6e 69 6e 67 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 77 61 72 6e 69 6e 67 73 20 warning');.}..return.!$warnings.
bb60 26 26 20 21 24 65 72 72 6f 72 73 20 3f 20 74 72 75 65 20 3a 20 24 6f 75 74 70 75 74 3b 0a 7d 0a &&.!$errors.?.true.:.$output;.}.
bb80 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
bba0 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 46 61 63 poser\Command;..use.Composer\Fac
bbc0 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 tory;.use.Composer\IO\IOInterfac
bbe0 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 79 52 65 73 6f 6c 76 e;.use.Composer\DependencyResolv
bc00 65 72 5c 50 6f 6f 6c 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 er\Pool;.use.Composer\Package\Li
bc20 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a nkConstraint\VersionConstraint;.
bc40 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 use.Composer\Repository\Composit
bc60 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e eRepository;..use.Symfony\Compon
bc80 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 3b ent\Console\Input\InputArgument;
bca0 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
bcc0 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
bce0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 \Component\Console\Input\InputOp
bd00 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
bd20 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;.....
bd40 0a 0a 63 6c 61 73 73 20 41 72 63 68 69 76 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 ..class.ArchiveCommand.extends.C
bd60 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 ommand.{.protected.function.conf
bd80 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 72 63 68 69 igure().{.$this.->setName('archi
bda0 76 65 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 20 61 6e ve').->setDescription('Create.an
bdc0 20 61 72 63 68 69 76 65 20 6f 66 20 74 68 69 73 20 63 6f 6d 70 6f 73 65 72 20 70 61 63 6b 61 67 .archive.of.this.composer.packag
bde0 65 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 e').->setDefinition(array(.new.I
be00 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 2c 20 49 6e 70 75 74 41 72 67 nputArgument('package',.InputArg
be20 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c 20 27 54 68 65 20 70 61 63 6b 61 67 65 20 74 6f ument::OPTIONAL,.'The.package.to
be40 20 61 72 63 68 69 76 65 20 69 6e 73 74 65 61 64 20 6f 66 20 74 68 65 20 63 75 72 72 65 6e 74 20 .archive.instead.of.the.current.
be60 70 72 6f 6a 65 63 74 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 project'),.new.InputArgument('ve
be80 72 73 69 6f 6e 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 2c rsion',.InputArgument::OPTIONAL,
bea0 20 27 54 68 65 20 70 61 63 6b 61 67 65 20 76 65 72 73 69 6f 6e 20 74 6f 20 61 72 63 68 69 76 65 .'The.package.version.to.archive
bec0 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 27 66 '),.new.InputOption('format',.'f
bee0 27 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 20 ',.InputOption::VALUE_REQUIRED,.
bf00 27 46 6f 72 6d 61 74 20 6f 66 20 74 68 65 20 72 65 73 75 6c 74 69 6e 67 20 61 72 63 68 69 76 65 'Format.of.the.resulting.archive
bf20 3a 20 74 61 72 20 6f 72 20 7a 69 70 27 2c 20 27 74 61 72 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 :.tar.or.zip',.'tar'),.new.Input
bf40 4f 70 74 69 6f 6e 28 27 64 69 72 27 2c 20 66 61 6c 73 65 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e Option('dir',.false,.InputOption
bf60 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 57 72 69 74 65 20 74 68 65 20 61 72 63 ::VALUE_REQUIRED,.'Write.the.arc
bf80 68 69 76 65 20 74 6f 20 74 68 69 73 20 64 69 72 65 63 74 6f 72 79 27 2c 20 27 2e 27 29 2c 0a 29 hive.to.this.directory',.'.'),.)
bfa0 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 61 72 63 ).->setHelp(<<<EOT.The.<info>arc
bfc0 68 69 76 65 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 72 65 61 74 65 73 20 61 6e 20 61 hive</info>.command.creates.an.a
bfe0 72 63 68 69 76 65 20 6f 66 20 74 68 65 20 73 70 65 63 69 66 69 65 64 20 66 6f 72 6d 61 74 0a 63 rchive.of.the.specified.format.c
c000 6f 6e 74 61 69 6e 69 6e 67 20 74 68 65 20 66 69 6c 65 73 20 61 6e 64 20 64 69 72 65 63 74 6f 72 ontaining.the.files.and.director
c020 69 65 73 20 6f 66 20 74 68 65 20 43 6f 6d 70 6f 73 65 72 20 70 72 6f 6a 65 63 74 20 6f 72 20 74 ies.of.the.Composer.project.or.t
c040 68 65 20 73 70 65 63 69 66 69 65 64 0a 70 61 63 6b 61 67 65 20 69 6e 20 74 68 65 20 73 70 65 63 he.specified.package.in.the.spec
c060 69 66 69 65 64 20 76 65 72 73 69 6f 6e 20 61 6e 64 20 77 72 69 74 65 73 20 69 74 20 74 6f 20 74 ified.version.and.writes.it.to.t
c080 68 65 20 73 70 65 63 69 66 69 65 64 20 64 69 72 65 63 74 6f 72 79 2e 0a 0a 3c 69 6e 66 6f 3e 70 he.specified.directory...<info>p
c0a0 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 61 72 63 68 69 76 65 20 5b 2d 2d 66 6f 72 6d hp.composer.phar.archive.[--form
c0c0 61 74 3d 7a 69 70 5d 20 5b 2d 2d 64 69 72 3d 2f 66 6f 6f 5d 20 5b 70 61 63 6b 61 67 65 20 5b 76 at=zip].[--dir=/foo].[package.[v
c0e0 65 72 73 69 6f 6e 5d 5d 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 ersion]]</info>..EOT.).;.}..prot
c100 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 ected.function.execute(InputInte
c120 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
c140 75 74 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 28 0a utput).{.return.$this->archive(.
c160 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d $this->getIO(),.$input->getArgum
c180 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d ent('package'),.$input->getArgum
c1a0 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f ent('version'),.$input->getOptio
c1c0 6e 28 27 66 6f 72 6d 61 74 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 n('format'),.$input->getOption('
c1e0 64 69 72 27 29 0a 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 dir').);.}..protected.function.a
c200 72 63 68 69 76 65 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 rchive(IOInterface.$io,.$package
c220 4e 61 6d 65 20 3d 20 6e 75 6c 6c 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 24 66 Name.=.null,.$version.=.null,.$f
c240 6f 72 6d 61 74 20 3d 20 27 74 61 72 27 2c 20 24 64 65 73 74 20 3d 20 27 2e 27 29 0a 7b 0a 24 63 ormat.=.'tar',.$dest.=.'.').{.$c
c260 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b onfig.=.Factory::createConfig();
c280 0a 24 66 61 63 74 6f 72 79 20 3d 20 6e 65 77 20 46 61 63 74 6f 72 79 3b 0a 24 64 6f 77 6e 6c 6f .$factory.=.new.Factory;.$downlo
c2a0 61 64 4d 61 6e 61 67 65 72 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 44 6f 77 6e adManager.=.$factory->createDown
c2c0 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 61 72 63 68 loadManager($io,.$config);.$arch
c2e0 69 76 65 4d 61 6e 61 67 65 72 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 74 65 41 72 63 iveManager.=.$factory->createArc
c300 68 69 76 65 4d 61 6e 61 67 65 72 28 24 63 6f 6e 66 69 67 2c 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 hiveManager($config,.$downloadMa
c320 6e 61 67 65 72 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 7b 0a 24 70 61 nager);..if.($packageName).{.$pa
c340 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 50 61 63 6b 61 67 65 28 24 69 6f ckage.=.$this->selectPackage($io
c360 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 3b 0a 0a 69 66 20 28 ,.$packageName,.$version);..if.(
c380 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 7d 20 65 6c 73 65 20 !$package).{.return.1;.}.}.else.
c3a0 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 {.$package.=.$this->getComposer(
c3c0 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 )->getPackage();.}..$io->write('
c3e0 3c 69 6e 66 6f 3e 43 72 65 61 74 69 6e 67 20 74 68 65 20 61 72 63 68 69 76 65 2e 3c 2f 69 6e 66 <info>Creating.the.archive.</inf
c400 6f 3e 27 29 3b 0a 24 61 72 63 68 69 76 65 4d 61 6e 61 67 65 72 2d 3e 61 72 63 68 69 76 65 28 24 o>');.$archiveManager->archive($
c420 70 61 63 6b 61 67 65 2c 20 24 66 6f 72 6d 61 74 2c 20 24 64 65 73 74 29 3b 0a 0a 72 65 74 75 72 package,.$format,.$dest);..retur
c440 6e 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 n.0;.}..protected.function.selec
c460 74 50 61 63 6b 61 67 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 70 61 63 6b 61 tPackage(IOInterface.$io,.$packa
c480 67 65 4e 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 69 6f 2d 3e geName,.$version.=.null).{.$io->
c4a0 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 53 65 61 72 63 68 69 6e 67 20 66 6f 72 20 74 68 65 20 73 write('<info>Searching.for.the.s
c4c0 70 65 63 69 66 69 65 64 20 70 61 63 6b 61 67 65 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 pecified.package.</info>');..if.
c4e0 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 65 72 28 ($composer.=.$this->getComposer(
c500 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 73 65 72 false)).{.$localRepo.=.$composer
c520 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 ->getRepositoryManager()->getLoc
c540 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d alRepository();.$repos.=.new.Com
c560 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
c580 61 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 2c 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 ay($localRepo),.$composer->getRe
c5a0 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 72 69 positoryManager()->getRepositori
c5c0 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 20 3d es()));.}.else.{.$defaultRepos.=
c5e0 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 6f 72 .Factory::createDefaultRepositor
c600 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 ies($this->getIO());.$io->write(
c620 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 'No.composer.json.found.in.the.c
c640 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 65 61 72 63 68 69 6e 67 20 70 61 63 6b urrent.directory,.searching.pack
c660 61 67 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 ages.from.'...implode(',.',.arra
c680 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 72 65 70 6f 73 20 y_keys($defaultRepos)));.$repos.
c6a0 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 64 65 66 61 75 =.new.CompositeRepository($defau
c6c0 6c 74 52 65 70 6f 73 29 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 29 3b ltRepos);.}..$pool.=.new.Pool();
c6e0 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 6f 73 29 3b 0a 0a .$pool->addRepository($repos);..
c700 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 28 24 76 65 72 73 69 6f 6e 29 20 3f 20 6e 65 77 20 56 $constraint.=.($version).?.new.V
c720 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 ersionConstraint('>=',.$version)
c740 20 3a 20 6e 75 6c 6c 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 .:.null;.$packages.=.$pool->what
c760 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 Provides($packageName,.$constrai
c780 6e 74 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 70 61 63 6b 61 67 65 73 29 20 3e 20 31 29 20 nt);..if.(count($packages).>.1).
c7a0 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 73 5b 30 5d 3b 0a 24 69 6f 2d 3e {.$package.=.$packages[0];.$io->
c7c0 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 46 6f 75 6e 64 20 6d 75 6c 74 69 70 6c 65 20 6d 61 74 63 write('<info>Found.multiple.matc
c7e0 68 65 73 2c 20 73 65 6c 65 63 74 65 64 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 hes,.selected.'.$package->getPre
c800 74 74 79 53 74 72 69 6e 67 28 29 2e 27 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 24 69 6f 2d 3e 77 72 ttyString().'.</info>');.$io->wr
c820 69 74 65 28 27 41 6c 74 65 72 6e 61 74 69 76 65 73 20 77 65 72 65 20 27 2e 69 6d 70 6c 6f 64 65 ite('Alternatives.were.'.implode
c840 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 70 29 20 7b (',.',.array_map(function.($p).{
c860 20 72 65 74 75 72 6e 20 24 70 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 20 7d .return.$p->getPrettyString();.}
c880 2c 20 24 70 61 63 6b 61 67 65 73 29 29 2e 27 2e 27 29 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 ,.$packages)).'.');.$io->write('
c8a0 3c 63 6f 6d 6d 65 6e 74 3e 50 6c 65 61 73 65 20 75 73 65 20 61 20 6d 6f 72 65 20 73 70 65 63 69 <comment>Please.use.a.more.speci
c8c0 66 69 63 20 63 6f 6e 73 74 72 61 69 6e 74 20 74 6f 20 70 69 63 6b 20 61 20 64 69 66 66 65 72 65 fic.constraint.to.pick.a.differe
c8e0 6e 74 20 70 61 63 6b 61 67 65 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 7d 20 65 6c 73 65 69 nt.package.</comment>');.}.elsei
c900 66 20 28 24 70 61 63 6b 61 67 65 73 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b f.($packages).{.$package.=.$pack
c920 61 67 65 73 5b 30 5d 3b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 46 6f 75 6e 64 ages[0];.$io->write('<info>Found
c940 20 61 6e 20 65 78 61 63 74 20 6d 61 74 63 68 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 .an.exact.match.'.$package->getP
c960 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 2e 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 rettyString().'.</info>');.}.els
c980 65 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 43 6f 75 6c 64 20 6e 6f 74 e.{.$io->write('<error>Could.not
c9a0 20 66 69 6e 64 20 61 20 70 61 63 6b 61 67 65 20 6d 61 74 63 68 69 6e 67 20 27 2e 24 70 61 63 6b .find.a.package.matching.'.$pack
c9c0 61 67 65 4e 61 6d 65 2e 27 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 ageName.'.</error>');..return.fa
c9e0 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 3c 3f 70 lse;.}..return.$package;.}.}.<?p
ca00 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
ca20 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
ca40 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 ;.use.Composer\Console\Applicati
ca60 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b on;.use.Composer\IO\IOInterface;
ca80 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 4e 75 6c 6c 49 4f 3b 0a 75 73 65 20 53 79 6d .use.Composer\IO\NullIO;.use.Sym
caa0 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 43 fony\Component\Console\Command\C
cac0 6f 6d 6d 61 6e 64 20 61 73 20 42 61 73 65 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 61 62 ommand.as.BaseCommand;........ab
cae0 73 74 72 61 63 74 20 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 42 61 73 stract.class.Command.extends.Bas
cb00 65 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 6f 73 65 72 3b eCommand.{....private.$composer;
cb20 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .....private.$io;........public.
cb40 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.=
cb60 20 74 72 75 65 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 29 0a .true,.$disablePlugins.=.false).
cb80 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 20 {.if.(null.===.$this->composer).
cba0 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 {.$application.=.$this->getAppli
cbc0 63 61 74 69 6f 6e 28 29 3b 0a 69 66 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 73 74 61 cation();.if.($application.insta
cbe0 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d nceof.Application).{..$this->com
cc00 70 6f 73 65 72 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 poser.=.$application->getCompose
cc20 72 28 24 72 65 71 75 69 72 65 64 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 3b 0a 7d r($required,.$disablePlugins);.}
cc40 20 65 6c 73 65 69 66 20 28 24 72 65 71 75 69 72 65 64 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 .elseif.($required).{.throw.new.
cc60 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 43 6f 75 6c 64 20 6e 6f 74 20 63 72 \RuntimeException(.'Could.not.cr
cc80 65 61 74 65 20 61 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 20 69 6e 73 74 61 6e 63 eate.a.Composer\Composer.instanc
cca0 65 2c 20 79 6f 75 20 6d 75 73 74 20 69 6e 6a 65 63 74 20 27 2e 0a 27 6f 6e 65 20 69 66 20 74 68 e,.you.must.inject.'..'one.if.th
ccc0 69 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 6e 6f 74 20 75 73 65 64 20 77 69 74 68 20 61 20 43 6f is.command.is.not.used.with.a.Co
cce0 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 73 74 61 mposer\Console\Application.insta
cd00 6e 63 65 27 0a 29 3b 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 nce'.);.}.}..return.$this->compo
cd20 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f ser;.}.....public.function.setCo
cd40 6d 70 6f 73 65 72 28 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 29 0a 7b 0a 24 74 68 mposer(Composer.$composer).{.$th
cd60 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 0a 0a 0a is->composer.=.$composer;.}.....
cd80 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 69 66 20 28 6e 75 public.function.getIO().{.if.(nu
cda0 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 6f 29 20 7b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e ll.===.$this->io).{.$application
cdc0 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 69 66 20 28 .=.$this->getApplication();.if.(
cde0 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 70 70 6c 69 63 61 74 $application.instanceof.Applicat
ce00 69 6f 6e 29 20 7b 0a 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e ion).{..$this->io.=.$application
ce20 2d 3e 67 65 74 49 4f 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 ->getIO();.}.else.{.$this->io.=.
ce40 6e 65 77 20 4e 75 6c 6c 49 4f 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d new.NullIO();.}.}..return.$this-
ce60 3e 69 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 73 65 74 49 4f >io;.}.....public.function.setIO
ce80 28 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 69 6f 20 3d 20 (IOInterface.$io).{.$this->io.=.
cea0 24 69 6f 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
cec0 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f ace.Composer\Command;..use.Compo
cee0 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 46 61 63 74 6f 72 79 ser\Config;.use.Composer\Factory
cf00 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 20 43 6f ;.use.Composer\Installer;.use.Co
cf20 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 6c 6c 65 mposer\Installer\ProjectInstalle
cf40 72 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 r;.use.Composer\Installer\Instal
cf60 6c 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 49 4f 5c 49 lationManager;.use.Composer\IO\I
cf80 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 OInterface;.use.Composer\Package
cfa0 5c 42 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 \BasePackage;.use.Composer\Packa
cfc0 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 ge\LinkConstraint\VersionConstra
cfe0 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f int;.use.Composer\DependencyReso
d000 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 6e 64 65 6e lver\Pool;.use.Composer\Dependen
d020 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 72 cyResolver\Operation\InstallOper
d040 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 ation;.use.Composer\Repository\C
d060 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 5c omposerRepository;.use.Composer\
d080 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a Repository\CompositeRepository;.
d0a0 75 73 65 20 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 use.Composer\Repository\Filesyst
d0c0 65 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 73 emRepository;.use.Composer\Repos
d0e0 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 itory\InstalledFilesystemReposit
d100 6f 72 79 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 74 45 ory;.use.Composer\Script\ScriptE
d120 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e vents;.use.Symfony\Component\Con
d140 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 sole\Input\InputArgument;.use.Sy
d160 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
d180 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
d1a0 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 75 ent\Console\Input\InputOption;.u
d1c0 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 74 se.Symfony\Component\Console\Out
d1e0 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 6e 79 put\OutputInterface;.use.Symfony
d200 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 46 69 6e 64 65 72 3b 0a 75 73 65 20 43 6f \Component\Finder\Finder;.use.Co
d220 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
d240 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 75 73 65 20 er\Config\JsonConfigSource;.use.
d260 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 65 20 43 6f Composer\Util\Filesystem;.use.Co
d280 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 mposer\Util\RemoteFilesystem;.us
d2a0 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 e.Composer\Package\Version\Versi
d2c0 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 72 65 61 74 65 50 onParser;..........class.CreateP
d2e0 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 6e 64 0a 7b 0a rojectCommand.extends.Command.{.
d300 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 0a 7b protected.function.configure().{
d320 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 6f 6a 65 63 74 .$this.->setName('create-project
d340 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 20 6e 65 77 20 ').->setDescription('Create.new.
d360 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 20 67 69 76 65 project.from.a.package.into.give
d380 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 69 6f 6e 28 61 n.directory.').->setDefinition(a
d3a0 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 rray(.new.InputArgument('package
d3c0 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 50 61 63 ',.InputArgument::OPTIONAL,.'Pac
d3e0 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 2c 0a 6e 65 77 kage.name.to.be.installed'),.new
d400 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 20 49 6e 70 75 .InputArgument('directory',.Inpu
d420 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 74 6f 72 79 20 tArgument::OPTIONAL,.'Directory.
d440 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 72 65 61 74 65 where.the.files.should.be.create
d460 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 73 69 6f 6e 27 d'),.new.InputArgument('version'
d480 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 56 65 72 73 ,.InputArgument::OPTIONAL,.'Vers
d4a0 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 74 27 29 2c 0a ion,.will.defaults.to.latest'),.
d4c0 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 2c 20 27 73 27 new.InputOption('stability',.'s'
d4e0 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 20 27 ,.InputOption::VALUE_REQUIRED,.'
d500 4d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 61 6c 6c 6f 77 65 64 20 28 75 6e 6c 65 73 Minimum-stability.allowed.(unles
d520 73 20 61 20 76 65 72 73 69 6f 6e 20 69 73 20 73 70 65 63 69 66 69 65 64 29 2e 27 29 2c 0a 6e 65 s.a.version.is.specified).'),.ne
d540 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 2c 20 6e w.InputOption('prefer-source',.n
d560 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 46 ull,.InputOption::VALUE_NONE,.'F
d580 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 orces.installation.from.package.
d5a0 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 69 6e 63 6c 75 64 69 6e 67 sources.when.possible,.including
d5c0 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 .VCS.information.'),.new.InputOp
d5e0 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f tion('prefer-dist',.null,.InputO
d600 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 ption::VALUE_NONE,.'Forces.insta
d620 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 6e 20 66 llation.from.package.dist.even.f
d640 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 or.dev.versions.'),.new.InputOpt
d660 69 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d 75 72 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 ion('repository-url',.null,.Inpu
d680 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 50 69 63 6b 20 61 tOption::VALUE_REQUIRED,.'Pick.a
d6a0 20 64 69 66 66 65 72 65 6e 74 20 72 65 70 6f 73 69 74 6f 72 79 20 75 72 6c 20 74 6f 20 6c 6f 6f .different.repository.url.to.loo
d6c0 6b 20 66 6f 72 20 74 68 65 20 70 61 63 6b 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f k.for.the.package.'),.new.InputO
d6e0 70 74 69 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a ption('dev',.null,.InputOption::
d700 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f VALUE_NONE,.'Enables.installatio
d720 6e 20 6f 66 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e 61 62 6c n.of.require-dev.packages.(enabl
d740 65 64 20 62 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 6f 72 20 ed.by.default,.only.present.for.
d760 42 43 29 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 64 65 76 27 BC).'),.new.InputOption('no-dev'
d780 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,
d7a0 20 27 44 69 73 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 .'Disables.installation.of.requi
d7c0 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 re-dev.packages.'),.new.InputOpt
d7e0 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 ion('no-plugins',.null,.InputOpt
d800 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 64 69 73 ion::VALUE_NONE,.'Whether.to.dis
d820 61 62 6c 65 20 70 6c 75 67 69 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e able.plugins.'),.new.InputOption
d840 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 ('no-custom-installers',.null,.I
d860 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 45 50 52 45 43 41 nputOption::VALUE_NONE,.'DEPRECA
d880 54 45 44 3a 20 55 73 65 20 6e 6f 2d 70 6c 75 67 69 6e 73 20 69 6e 73 74 65 61 64 2e 27 29 2c 0a TED:.Use.no-plugins.instead.'),.
d8a0 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 20 6e 75 new.InputOption('no-scripts',.nu
d8c0 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 57 68 ll,.InputOption::VALUE_NONE,.'Wh
d8e0 65 74 68 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c ether.to.prevent.execution.of.al
d900 6c 20 64 65 66 69 6e 65 64 20 73 63 72 69 70 74 73 20 69 6e 20 74 68 65 20 72 6f 6f 74 20 70 61 l.defined.scripts.in.the.root.pa
d920 63 6b 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 6e 6f 2d 70 72 ckage.'),.new.InputOption('no-pr
d940 6f 67 72 65 73 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 ogress',.null,.InputOption::VALU
d960 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 E_NONE,.'Do.not.output.download.
d980 70 72 6f 67 72 65 73 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6b 65 progress.'),.new.InputOption('ke
d9a0 65 70 2d 76 63 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 ep-vcs',.null,.InputOption::VALU
d9c0 45 5f 4e 4f 4e 45 2c 20 27 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 76 65 6e 74 20 64 65 6c 65 E_NONE,.'Whether.to.prevent.dele
d9e0 74 69 6f 6e 20 76 63 73 20 66 6f 6c 64 65 72 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 tion.vcs.folder.'),.new.InputOpt
da00 69 6f 6e 28 27 6e 6f 2d 69 6e 73 74 61 6c 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 ion('no-install',.null,.InputOpt
da20 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 73 6b 69 ion::VALUE_NONE,.'Whether.to.ski
da40 70 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 70 61 63 6b 61 67 65 20 64 65 p.installation.of.the.package.de
da60 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 pendencies.'),.)).->setHelp(<<<E
da80 4f 54 0a 54 68 65 20 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 OT.The.<info>create-project</inf
daa0 6f 3e 20 63 6f 6d 6d 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 o>.command.creates.a.new.project
dac0 20 66 72 6f 6d 20 61 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 .from.a.given.package.into.a.new
dae0 20 64 69 72 65 63 74 6f 72 79 2e 20 49 66 20 65 78 65 63 75 74 65 64 20 77 69 74 68 6f 75 74 20 .directory..If.executed.without.
db00 70 61 72 61 6d 73 20 61 6e 64 20 69 6e 20 61 20 64 69 72 65 63 74 6f 72 79 0a 77 69 74 68 20 61 params.and.in.a.directory.with.a
db20 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 69 74 20 69 6e 73 74 61 6c 6c 73 20 .composer.json.file.it.installs.
db40 74 68 65 20 70 61 63 6b 61 67 65 73 20 66 6f 72 20 74 68 65 20 63 75 72 72 65 6e 74 20 70 72 6f the.packages.for.the.current.pro
db60 6a 65 63 74 2e 0a 0a 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 ject...You.can.use.this.command.
db80 74 6f 20 62 6f 6f 74 73 74 72 61 70 20 6e 65 77 20 70 72 6f 6a 65 63 74 73 20 6f 72 20 73 65 74 to.bootstrap.new.projects.or.set
dba0 75 70 20 61 20 63 6c 65 61 6e 0a 76 65 72 73 69 6f 6e 2d 63 6f 6e 74 72 6f 6c 6c 65 64 20 69 6e up.a.clean.version-controlled.in
dbc0 73 74 61 6c 6c 61 74 69 6f 6e 20 66 6f 72 20 64 65 76 65 6c 6f 70 65 72 73 20 6f 66 20 79 6f 75 stallation.for.developers.of.you
dbe0 72 20 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 r.project...<info>php.composer.p
dc00 68 61 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 har.create-project.vendor/projec
dc20 74 20 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 t.target-directory.[version]</in
dc40 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 73 70 65 63 69 66 79 20 74 68 65 20 76 65 fo>..You.can.also.specify.the.ve
dc60 72 73 69 6f 6e 20 77 69 74 68 20 74 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 75 73 69 6e rsion.with.the.package.name.usin
dc80 67 20 3d 20 6f 72 20 3a 20 61 73 20 73 65 70 61 72 61 74 6f 72 2e 0a 0a 54 6f 20 69 6e 73 74 61 g.=.or.:.as.separator...To.insta
dca0 6c 6c 20 75 6e 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 2c 20 65 69 74 68 65 72 20 73 70 65 ll.unstable.packages,.either.spe
dcc0 63 69 66 79 20 74 68 65 20 76 65 72 73 69 6f 6e 20 79 6f 75 20 77 61 6e 74 2c 20 6f 72 20 75 73 cify.the.version.you.want,.or.us
dce0 65 20 74 68 65 0a 2d 2d 73 74 61 62 69 6c 69 74 79 3d 64 65 76 20 28 77 68 65 72 65 20 64 65 76 e.the.--stability=dev.(where.dev
dd00 20 63 61 6e 20 62 65 20 6f 6e 65 20 6f 66 20 52 43 2c 20 62 65 74 61 2c 20 61 6c 70 68 61 20 6f .can.be.one.of.RC,.beta,.alpha.o
dd20 72 20 64 65 76 29 2e 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 r.dev)...To.setup.a.developer.wo
dd40 72 6b 61 62 6c 65 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 rkable.version.you.should.create
dd60 20 74 68 65 20 70 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 .the.project.using.the.source.co
dd80 6e 74 72 6f 6c 6c 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 ntrolled.code.by.appending.the.<
dda0 69 6e 66 6f 3e 27 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 info>'--prefer-source'</info>.fl
ddc0 61 67 2e 0a 0a 54 6f 20 69 6e 73 74 61 6c 6c 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 61 ag...To.install.a.package.from.a
dde0 6e 6f 74 68 65 72 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 nother.repository.than.the.defau
de00 6c 74 20 6f 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 lt.one.you.can.pass.the.<info>'-
de20 2d 72 65 70 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 -repository-url=http://myreposit
de40 6f 72 79 2e 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 ory.org'</info>.flag...EOT.).;.}
de60 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
de80 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
dea0 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 ace.$output).{.$config.=.Factory
dec0 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 ::createConfig();..$preferSource
dee0 20 3d 20 66 61 6c 73 65 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 73 .=.false;.$preferDist.=.false;.s
df00 77 69 74 63 68 20 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d 69 witch.($config->get('preferred-i
df20 6e 73 74 61 6c 6c 27 29 29 20 7b 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 70 72 65 66 nstall')).{.case.'source':.$pref
df40 65 72 53 6f 75 72 63 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 64 69 erSource.=.true;.break;.case.'di
df60 73 74 27 3a 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a st':.$preferDist.=.true;.break;.
df80 63 61 73 65 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d case.'auto':.default:...break;.}
dfa0 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 .if.($input->getOption('prefer-s
dfc0 6f 75 72 63 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 ource').||.$input->getOption('pr
dfe0 65 66 65 72 2d 64 69 73 74 27 29 29 20 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 efer-dist')).{.$preferSource.=.$
e000 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 input->getOption('prefer-source'
e020 29 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 );.$preferDist.=.$input->getOpti
e040 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 on('prefer-dist');.}..if.($input
e060 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 ->getOption('no-custom-installer
e080 73 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 72 6e 69 6e s')).{.$output->writeln('<warnin
e0a0 67 3e 59 6f 75 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 64 65 70 72 65 63 61 74 65 64 20 6f g>You.are.using.the.deprecated.o
e0c0 70 74 69 6f 6e 20 22 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 22 2e 20 55 73 ption."no-custom-installers"..Us
e0e0 65 20 22 6e 6f 2d 70 6c 75 67 69 6e 73 22 20 69 6e 73 74 65 61 64 2e 3c 2f 77 61 72 6e 69 6e 67 e."no-plugins".instead.</warning
e100 3e 27 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 >');.$input->setOption('no-plugi
e120 6e 73 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 ns',.true);.}..return.$this->ins
e140 74 61 6c 6c 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 63 6f tallProject(.$this->getIO(),.$co
e160 6e 66 69 67 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 nfig,.$input->getArgument('packa
e180 67 65 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 64 69 72 65 63 ge'),.$input->getArgument('direc
e1a0 74 6f 72 79 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 tory'),.$input->getArgument('ver
e1c0 73 69 6f 6e 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 sion'),.$input->getOption('stabi
e1e0 6c 69 74 79 27 29 2c 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 2c 0a 24 70 72 65 66 65 72 44 69 lity'),.$preferSource,.$preferDi
e200 73 74 2c 0a 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 st,.!$input->getOption('no-dev')
e220 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 65 70 6f 73 69 74 6f 72 79 2d ,.$input->getOption('repository-
e240 75 72 6c 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 url'),.$input->getOption('no-plu
e260 67 69 6e 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 gins'),.$input->getOption('no-sc
e280 72 69 70 74 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6b 65 65 70 ripts'),.$input->getOption('keep
e2a0 2d 76 63 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 -vcs'),.$input->getOption('no-pr
e2c0 6f 67 72 65 73 73 27 29 2c 0a 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d ogress'),.$input->getOption('no-
e2e0 69 6e 73 74 61 6c 6c 27 29 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 install').);.}..public.function.
e300 69 6e 73 74 61 6c 6c 50 72 6f 6a 65 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 installProject(IOInterface.$io,.
e320 24 63 6f 6e 66 69 67 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 69 72 65 63 74 6f 72 $config,.$packageName,.$director
e340 79 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c y.=.null,.$packageVersion.=.null
e360 2c 20 24 73 74 61 62 69 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 2c 20 24 70 72 65 66 65 72 ,.$stability.=.'stable',.$prefer
e380 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 2c 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 Source.=.false,.$preferDist.=.fa
e3a0 6c 73 65 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 20 3d 20 66 61 6c 73 65 lse,.$installDevPackages.=.false
e3c0 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 20 3d 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c ,.$repositoryUrl.=.null,.$disabl
e3e0 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 2c 20 24 6e 6f 53 63 72 69 70 74 73 20 3d 20 66 ePlugins.=.false,.$noScripts.=.f
e400 61 6c 73 65 2c 20 24 6b 65 65 70 56 63 73 20 3d 20 66 61 6c 73 65 2c 20 24 6e 6f 50 72 6f 67 72 alse,.$keepVcs.=.false,.$noProgr
e420 65 73 73 20 3d 20 66 61 6c 73 65 2c 20 24 6e 6f 49 6e 73 74 61 6c 6c 20 3d 20 66 61 6c 73 65 29 ess.=.false,.$noInstall.=.false)
e440 0a 7b 0a 24 6f 6c 64 43 77 64 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 0a 69 66 20 28 24 70 61 63 .{.$oldCwd.=.getcwd();..if.($pac
e460 6b 61 67 65 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 46 kageName.!==.null).{.$installedF
e480 72 6f 6d 56 63 73 20 3d 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 52 6f 6f 74 50 61 63 6b 61 romVcs.=.$this->installRootPacka
e4a0 67 65 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 ge($io,.$config,.$packageName,.$
e4c0 64 69 72 65 63 74 6f 72 79 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 2c 20 24 73 74 61 directory,.$packageVersion,.$sta
e4e0 62 69 6c 69 74 79 2c 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 2c 20 24 70 72 65 66 65 72 44 69 bility,.$preferSource,.$preferDi
e500 73 74 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 67 65 73 2c 20 24 72 65 70 6f 73 69 st,.$installDevPackages,.$reposi
e520 74 6f 72 79 55 72 6c 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 2c 20 24 6e 6f 53 63 72 toryUrl,.$disablePlugins,.$noScr
e540 69 70 74 73 2c 20 24 6b 65 65 70 56 63 73 2c 20 24 6e 6f 50 72 6f 67 72 65 73 73 29 3b 0a 7d 20 ipts,.$keepVcs,.$noProgress);.}.
e560 65 6c 73 65 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 20 3d 20 66 61 6c 73 65 else.{.$installedFromVcs.=.false
e580 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 ;.}..$composer.=.Factory::create
e5a0 28 24 69 6f 2c 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 3b 0a 24 66 ($io,.null,.$disablePlugins);.$f
e5c0 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 0a 69 66 20 28 24 6e 6f 53 63 s.=.new.Filesystem();..if.($noSc
e5e0 72 69 70 74 73 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 2d 3e ripts.===.false).{...$composer->
e600 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 43 6f getEventDispatcher()->dispatchCo
e620 6d 6d 61 6e 64 45 76 65 6e 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 52 4f mmandEvent(ScriptEvents::POST_RO
e640 4f 54 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 2c 20 24 69 6e 73 74 61 6c 6c 44 65 76 50 OT_PACKAGE_INSTALL,.$installDevP
e660 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6e 6f 49 6e 73 74 61 6c 6c 20 3d 3d ackages);.}....if.($noInstall.==
e680 3d 20 66 61 6c 73 65 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 49 6e 73 74 61 6c 6c 65 =.false).{.$installer.=.Installe
e6a0 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 24 69 6e 73 74 r::create($io,.$composer);.$inst
e6c0 61 6c 6c 65 72 2d 3e 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 aller->setPreferSource($preferSo
e6e0 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 urce).->setPreferDist($preferDis
e700 74 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 24 69 6e 73 74 61 6c 6c 44 65 76 50 61 63 6b 61 t).->setDevMode($installDevPacka
e720 67 65 73 29 0a 2d 3e 73 65 74 52 75 6e 53 63 72 69 70 74 73 28 20 21 20 24 6e 6f 53 63 72 69 70 ges).->setRunScripts(.!.$noScrip
e740 74 73 29 3b 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 24 69 6e ts);..if.($disablePlugins).{.$in
e760 73 74 61 6c 6c 65 72 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 24 73 staller->disablePlugins();.}..$s
e780 74 61 74 75 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 72 75 6e 28 29 3b 0a 69 66 20 28 30 tatus.=.$installer->run();.if.(0
e7a0 20 21 3d 3d 20 24 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 3b 0a .!==.$status).{.return.$status;.
e7c0 7d 0a 7d 0a 0a 24 68 61 73 56 63 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f 6d 56 63 73 }.}..$hasVcs.=.$installedFromVcs
e7e0 3b 0a 69 66 20 28 21 24 6b 65 65 70 56 63 73 20 26 26 20 24 69 6e 73 74 61 6c 6c 65 64 46 72 6f ;.if.(!$keepVcs.&&.$installedFro
e800 6d 56 63 73 0a 26 26 20 28 0a 21 24 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 0a mVcs.&&.(.!$io->isInteractive().
e820 7c 7c 20 24 69 6f 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f 6e 28 27 3c 69 6e 66 6f 3e 44 ||.$io->askConfirmation('<info>D
e840 6f 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 72 65 6d 6f 76 65 20 74 68 65 20 65 78 69 73 74 69 6e o.you.want.to.remove.the.existin
e860 67 20 56 43 53 20 28 2e 67 69 74 2c 20 2e 73 76 6e 2e 2e 29 20 68 69 73 74 6f 72 79 3f 3c 2f 69 g.VCS.(.git,..svn..).history?</i
e880 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 59 2c 6e 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 3f 20 27 nfo>.[<comment>Y,n</comment>]?.'
e8a0 2c 20 74 72 75 65 29 0a 29 0a 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 46 69 6e 64 ,.true).).).{.$finder.=.new.Find
e8c0 65 72 28 29 3b 0a 24 66 69 6e 64 65 72 2d 3e 64 65 70 74 68 28 30 29 2d 3e 64 69 72 65 63 74 6f er();.$finder->depth(0)->directo
e8e0 72 69 65 73 28 29 2d 3e 69 6e 28 67 65 74 63 77 64 28 29 29 2d 3e 69 67 6e 6f 72 65 56 43 53 28 ries()->in(getcwd())->ignoreVCS(
e900 66 61 6c 73 65 29 2d 3e 69 67 6e 6f 72 65 44 6f 74 46 69 6c 65 73 28 66 61 6c 73 65 29 3b 0a 66 false)->ignoreDotFiles(false);.f
e920 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 2e 73 76 6e 27 2c 20 27 5f 73 76 6e 27 2c 20 27 43 oreach.(array('.svn',.'_svn',.'C
e940 56 53 27 2c 20 27 5f 64 61 72 63 73 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 61 6d 73 27 2c 20 27 VS',.'_darcs',.'.arch-params',.'
e960 2e 6d 6f 6e 6f 74 6f 6e 65 27 2c 20 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 2c 20 27 2e 68 67 .monotone',.'.bzr',.'.git',.'.hg
e980 27 29 20 61 73 20 24 76 63 73 4e 61 6d 65 29 20 7b 0a 24 66 69 6e 64 65 72 2d 3e 6e 61 6d 65 28 ').as.$vcsName).{.$finder->name(
e9a0 24 76 63 73 4e 61 6d 65 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 64 69 72 73 20 3d 20 69 74 65 72 $vcsName);.}..try.{.$dirs.=.iter
e9c0 61 74 6f 72 5f 74 6f 5f 61 72 72 61 79 28 24 66 69 6e 64 65 72 29 3b 0a 75 6e 73 65 74 28 24 66 ator_to_array($finder);.unset($f
e9e0 69 6e 64 65 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 inder);.foreach.($dirs.as.$dir).
ea00 7b 0a 69 66 20 28 21 24 66 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 {.if.(!$fs->removeDirectory($dir
ea20 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
ea40 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 6d 6f 76 65 20 27 2e 24 64 69 72 29 3b 0a 7d 0a 7d 0a ('Could.not.remove.'.$dir);.}.}.
ea60 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 69 6f 2d 3e 77 }.catch.(\Exception.$e).{.$io->w
ea80 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 41 6e 20 65 72 72 6f 72 20 6f 63 63 75 72 72 65 64 20 77 rite('<error>An.error.occurred.w
eaa0 68 69 6c 65 20 72 65 6d 6f 76 69 6e 67 20 74 68 65 20 56 43 53 20 6d 65 74 61 64 61 74 61 3a 20 hile.removing.the.VCS.metadata:.
eac0 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a '.$e->getMessage().'</error>');.
eae0 7d 0a 0a 24 68 61 73 56 63 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 68 }..$hasVcs.=.false;.}....if.(!$h
eb00 61 73 56 63 73 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 asVcs).{.$package.=.$composer->g
eb20 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 6e 65 77 etPackage();.$configSource.=.new
eb40 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 27 .JsonConfigSource(new.JsonFile('
eb60 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 42 61 73 65 50 composer.json'));.foreach.(BaseP
eb80 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.$
eba0 74 79 70 65 20 3d 3e 20 24 6d 65 74 61 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 type.=>.$meta).{.foreach.($packa
ebc0 67 65 2d 3e 7b 27 67 65 74 27 2e 24 6d 65 74 61 5b 27 6d 65 74 68 6f 64 27 5d 7d 28 29 20 61 73 ge->{'get'.$meta['method']}().as
ebe0 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f .$link).{.if.($link->getPrettyCo
ec00 6e 73 74 72 61 69 6e 74 28 29 20 3d 3d 3d 20 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 29 20 7b nstraint().===.'self.version').{
ec20 0a 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 .$configSource->addLink($type,.$
ec40 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 link->getTarget(),.$package->get
ec60 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 PrettyVersion());.}.}.}.}..if.($
ec80 6e 6f 53 63 72 69 70 74 73 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 0a 20 24 63 6f 6d 70 6f 73 noScripts.===.false).{...$compos
eca0 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 er->getEventDispatcher()->dispat
ecc0 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 chCommandEvent(ScriptEvents::POS
ece0 54 5f 43 52 45 41 54 45 5f 50 52 4f 4a 45 43 54 5f 43 4d 44 2c 20 24 69 6e 73 74 61 6c 6c 44 65 T_CREATE_PROJECT_CMD,.$installDe
ed00 76 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 63 68 64 69 72 28 24 6f 6c 64 43 77 64 29 3b 0a 24 vPackages);.}..chdir($oldCwd);.$
ed20 76 65 6e 64 6f 72 43 6f 6d 70 6f 73 65 72 44 69 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 vendorComposerDir.=.$composer->g
ed40 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f etConfig()->get('vendor-dir').'/
ed60 63 6f 6d 70 6f 73 65 72 27 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 43 6f 6d composer';.if.(is_dir($vendorCom
ed80 70 6f 73 65 72 44 69 72 29 20 26 26 20 24 66 73 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 76 65 poserDir).&&.$fs->isDirEmpty($ve
eda0 6e 64 6f 72 43 6f 6d 70 6f 73 65 72 44 69 72 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 76 65 6e 64 ndorComposerDir)).{.@rmdir($vend
edc0 6f 72 43 6f 6d 70 6f 73 65 72 44 69 72 29 3b 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 63 6f orComposerDir);.$vendorDir.=.$co
ede0 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 6e 64 6f 72 mposer->getConfig()->get('vendor
ee00 2d 64 69 72 27 29 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 29 20 26 -dir');.if.(is_dir($vendorDir).&
ee20 26 20 24 66 73 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 76 65 6e 64 6f 72 44 69 72 29 29 20 7b &.$fs->isDirEmpty($vendorDir)).{
ee40 0a 40 72 6d 64 69 72 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e .@rmdir($vendorDir);.}.}..return
ee60 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c .0;.}..protected.function.instal
ee80 6c 52 6f 6f 74 50 61 63 6b 61 67 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 lRootPackage(IOInterface.$io,.$c
eea0 6f 6e 66 69 67 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 69 72 65 63 74 6f 72 79 20 onfig,.$packageName,.$directory.
eec0 3d 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 2c 20 =.null,.$packageVersion.=.null,.
eee0 24 73 74 61 62 69 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 2c 20 24 70 72 65 66 65 72 53 6f $stability.=.'stable',.$preferSo
ef00 75 72 63 65 20 3d 20 66 61 6c 73 65 2c 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 urce.=.false,.$preferDist.=.fals
ef20 65 2c 20 24 69 6e 73 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 e,.$installDevPackages.=.false,.
ef40 24 72 65 70 6f 73 69 74 6f 72 79 55 72 6c 20 3d 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 $repositoryUrl.=.null,.$disableP
ef60 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 2c 20 24 6e 6f 53 63 72 69 70 74 73 20 3d 20 66 61 6c lugins.=.false,.$noScripts.=.fal
ef80 73 65 2c 20 24 6b 65 65 70 56 63 73 20 3d 20 66 61 6c 73 65 2c 20 24 6e 6f 50 72 6f 67 72 65 73 se,.$keepVcs.=.false,.$noProgres
efa0 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 70 6f 73 s.=.false).{.if.(null.===.$repos
efc0 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 65 77 20 43 6f itoryUrl).{.$sourceRepo.=.new.Co
efe0 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 63 72 65 61 74 mpositeRepository(Factory::creat
f000 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 63 6f 6e 66 69 eDefaultRepositories($io,.$confi
f020 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 61 74 68 69 6e g));.}.elseif.("json".===.pathin
f040 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 5f 45 58 54 45 fo($repositoryUrl,.PATHINFO_EXTE
f060 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 20 46 69 6c 65 NSION)).{.$sourceRepo.=.new.File
f080 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 6c 65 28 24 72 systemRepository(new.JsonFile($r
f0a0 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 65 73 79 73 74 epositoryUrl,.new.RemoteFilesyst
f0c0 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 73 74 72 70 6f em($io)));.}.elseif.(0.===.strpo
f0e0 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 7b 0a 24 73 6f s($repositoryUrl,.'http')).{.$so
f100 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 73 69 74 6f 72 urceRepo.=.new.ComposerRepositor
f120 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 79 55 72 6c 29 y(array('url'.=>.$repositoryUrl)
f140 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 68 72 6f 77 20 ,.$io,.$config);.}.else.{.throw.
f160 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 22 49 new.\InvalidArgumentException("I
f180 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 2e 20 48 61 73 nvalid.repository.url.given..Has
f1a0 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 74 74 70 20 75 .to.be.a..json.file.or.an.http.u
f1c0 72 6c 2e 22 29 3b 0a 7d 0a 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 rl.");.}..$parser.=.new.VersionP
f1e0 61 72 73 65 72 28 29 3b 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a arser();.$candidates.=.array();.
f200 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 70 61 72 73 65 72 2d 3e 70 61 72 73 65 4e 61 $requirements.=.$parser->parseNa
f220 6d 65 56 65 72 73 69 6f 6e 50 61 69 72 73 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 4e 61 6d meVersionPairs(array($packageNam
f240 65 29 29 3b 0a 24 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 75 69 72 65 e));.$name.=.strtolower($require
f260 6d 65 6e 74 73 5b 30 5d 5b 27 6e 61 6d 65 27 5d 29 3b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 ments[0]['name']);.if.(!$package
f280 56 65 72 73 69 6f 6e 20 26 26 20 69 73 73 65 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 5b 30 Version.&&.isset($requirements[0
f2a0 5d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e ]['version'])).{.$packageVersion
f2c0 20 3d 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 5b 30 5d 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a .=.$requirements[0]['version'];.
f2e0 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 73 74 61 62 69 6c 69 74 79 29 20 7b 0a 69 66 }..if.(null.===.$stability).{.if
f300 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 27 2e 69 6d 70 6c .(preg_match('{^[^,\s]*?@('.impl
f320 6f 64 65 28 27 7c 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 ode('|',.array_keys(BasePackage:
f340 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 27 2c 20 24 70 61 63 6b 61 67 65 :$stabilities)).')$}i',.$package
f360 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d Version,.$match)).{.$stability.=
f380 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 .$match[1];.}.else.{.$stability.
f3a0 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 =.VersionParser::parseStability(
f3c0 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 24 73 74 61 62 69 6c 69 74 $packageVersion);.}.}..$stabilit
f3e0 79 20 3d 20 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 y.=.VersionParser::normalizeStab
f400 69 6c 69 74 79 28 24 73 74 61 62 69 6c 69 74 79 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 42 ility($stability);..if.(!isset(B
f420 61 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 73 74 61 62 69 6c asePackage::$stabilities[$stabil
f440 69 74 79 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 ity])).{.throw.new.\InvalidArgum
f460 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 73 74 61 62 69 6c 69 74 79 20 entException('Invalid.stability.
f480 70 72 6f 76 69 64 65 64 20 28 27 2e 24 73 74 61 62 69 6c 69 74 79 2e 27 29 2c 20 6d 75 73 74 20 provided.('.$stability.'),.must.
f4a0 62 65 20 6f 6e 65 20 6f 66 3a 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 be.one.of:.'.implode(',.',.array
f4c0 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 _keys(BasePackage::$stabilities)
f4e0 29 29 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 24 73 74 61 62 69 6c 69 ));.}..$pool.=.new.Pool($stabili
f500 74 79 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 73 6f 75 72 63 ty);.$pool->addRepository($sourc
f520 65 52 65 70 6f 29 3b 0a 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 70 61 63 6b 61 67 65 56 eRepo);..$constraint.=.$packageV
f540 65 72 73 69 6f 6e 20 3f 20 24 70 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e ersion.?.$parser->parseConstrain
f560 74 73 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 29 20 3a 20 6e 75 6c 6c 3b 0a 24 63 61 6e ts($packageVersion).:.null;.$can
f580 64 69 64 61 74 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 6e didates.=.$pool->whatProvides($n
f5a0 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 61 6e ame,.$constraint);.foreach.($can
f5c0 64 69 64 61 74 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b didates.as.$key.=>.$candidate).{
f5e0 0a 69 66 20 28 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 3d 20 24 .if.($candidate->getName().!==.$
f600 6e 61 6d 65 29 20 7b 0a 75 6e 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 73 5b 24 6b 65 79 5d 29 name).{.unset($candidates[$key])
f620 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 63 61 6e 64 69 64 61 74 65 73 29 20 7b 0a 74 68 72 6f 77 ;.}.}..if.(!$candidates).{.throw
f640 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 22 .new.\InvalidArgumentException("
f660 43 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 61 63 6b 61 67 65 20 24 6e 61 6d 65 22 20 2e 20 Could.not.find.package.$name"...
f680 28 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3f 20 22 20 77 69 74 68 20 76 65 72 73 69 6f ($packageVersion.?.".with.versio
f6a0 6e 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 2e 22 20 3a 20 22 20 77 69 74 68 20 73 74 61 n.$packageVersion.".:.".with.sta
f6c0 62 69 6c 69 74 79 20 24 73 74 61 62 69 6c 69 74 79 2e 22 29 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 bility.$stability."));.}..if.(nu
f6e0 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 74 73 20 3d 20 65 78 ll.===.$directory).{.$parts.=.ex
f700 70 6c 6f 64 65 28 22 2f 22 2c 20 24 6e 61 6d 65 2c 20 32 29 3b 0a 24 64 69 72 65 63 74 6f 72 79 plode("/",.$name,.2);.$directory
f720 20 3d 20 67 65 74 63 77 64 28 29 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f .=.getcwd()...DIRECTORY_SEPARATO
f740 52 20 2e 20 61 72 72 61 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b 0a 7d 0a 0a 0a 20 24 70 61 63 R...array_pop($parts);.}....$pac
f760 6b 61 67 65 20 3d 20 72 65 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 73 29 3b 0a 66 6f 72 65 61 kage.=.reset($candidates);.forea
f780 63 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 29 20 7b ch.($candidates.as.$candidate).{
f7a0 0a 69 66 20 28 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 .if.(version_compare($package->g
f7c0 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 56 65 72 73 etVersion(),.$candidate->getVers
f7e0 69 6f 6e 28 29 2c 20 27 3c 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 63 61 6e 64 69 ion(),.'<')).{.$package.=.$candi
f800 64 61 74 65 3b 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 73 29 3b 0a 0a 24 date;.}.}.unset($candidates);..$
f820 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 27 20 2e 20 io->write('<info>Installing.'...
f840 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 27 20 28 27 20 2e 20 56 65 72 $package->getName()...'.('...Ver
f860 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 sionParser::formatVersion($packa
f880 67 65 2c 20 66 61 6c 73 65 29 20 2e 20 27 29 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 ge,.false)...')</info>');..if.($
f8a0 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 disablePlugins).{.$io->write('<i
f8c0 6e 66 6f 3e 50 6c 75 67 69 6e 73 20 68 61 76 65 20 62 65 65 6e 20 64 69 73 61 62 6c 65 64 2e 3c nfo>Plugins.have.been.disabled.<
f8e0 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 /info>');.}..if.(0.===.strpos($p
f900 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 2c 20 27 64 65 76 ackage->getPrettyVersion(),.'dev
f920 2d 27 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 -').&&.in_array($package->getSou
f940 72 63 65 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 67 27 29 29 29 20 rceType(),.array('git',.'hg'))).
f960 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 73 {.$package->setSourceReference(s
f980 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 56 65 72 73 69 6f 6e ubstr($package->getPrettyVersion
f9a0 28 29 2c 20 34 29 29 3b 0a 7d 0a 0a 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 (),.4));.}..$dm.=.$this->createD
f9c0 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 24 64 ownloadManager($io,.$config);.$d
f9e0 6d 2d 3e 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 m->setPreferSource($preferSource
fa00 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d ).->setPreferDist($preferDist).-
fa20 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 6e 6f 50 72 6f 67 72 65 73 73 29 >setOutputProgress(!$noProgress)
fa40 3b 0a 0a 24 70 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 20 3d 20 6e 65 77 20 50 72 6f 6a 65 ;..$projectInstaller.=.new.Proje
fa60 63 74 49 6e 73 74 61 6c 6c 65 72 28 24 64 69 72 65 63 74 6f 72 79 2c 20 24 64 6d 29 3b 0a 24 69 ctInstaller($directory,.$dm);.$i
fa80 6d 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 m.=.$this->createInstallationMan
faa0 61 67 65 72 28 29 3b 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 24 70 72 6f 6a 65 ager();.$im->addInstaller($proje
fac0 63 74 49 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 69 6d 2d 3e 69 6e 73 74 61 6c 6c 28 6e 65 77 20 49 ctInstaller);.$im->install(new.I
fae0 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 6e 65 77 nstalledFilesystemRepository(new
fb00 20 4a 73 6f 6e 46 69 6c 65 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 29 29 2c 20 6e 65 77 20 .JsonFile('php://memory')),.new.
fb20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 24 69 6d InstallOperation($package));.$im
fb40 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 65 64 46 ->notifyInstalls();..$installedF
fb60 72 6f 6d 56 63 73 20 3d 20 27 73 6f 75 72 63 65 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e romVcs.=.'source'.===.$package->
fb80 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 24 69 6f 2d 3e 77 getInstallationSource();..$io->w
fba0 72 69 74 65 28 27 3c 69 6e 66 6f 3e 43 72 65 61 74 65 64 20 70 72 6f 6a 65 63 74 20 69 6e 20 27 rite('<info>Created.project.in.'
fbc0 20 2e 20 24 64 69 72 65 63 74 6f 72 79 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 63 68 64 69 ...$directory...'</info>');.chdi
fbe0 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 0a 70 75 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 r($directory);..putenv('COMPOSER
fc00 5f 52 4f 4f 54 5f 56 45 52 53 49 4f 4e 3d 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 _ROOT_VERSION='.$package->getPre
fc20 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 65 ttyVersion());..return.$installe
fc40 64 46 72 6f 6d 56 63 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 dFromVcs;.}..protected.function.
fc60 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 63 createDownloadManager(IOInterfac
fc80 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 66 61 63 74 6f 72 e.$io,.Config.$config).{.$factor
fca0 79 20 3d 20 6e 65 77 20 46 61 63 74 6f 72 79 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 66 61 63 74 y.=.new.Factory();..return.$fact
fcc0 6f 72 79 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 ory->createDownloadManager($io,.
fce0 24 63 6f 6e 66 69 67 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 $config);.}..protected.function.
fd00 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 createInstallationManager().{.re
fd20 74 75 72 6e 20 6e 65 77 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a turn.new.InstallationManager();.
fd40 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
fd60 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 6e 79 5c 43 6f omposer\Command;..use.Symfony\Co
fd80 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 72 mponent\Console\Input\InputInter
fda0 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 73 face;.use.Symfony\Component\Cons
fdc0 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;.....
fde0 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 43 6f 6d 6d 61 class.AboutCommand.extends.Comma
fe00 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
fe20 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 74 27 29 0a 2d e().{.$this.->setName('about').-
fe40 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 72 6d 61 74 69 >setDescription('Short.informati
fe60 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 6c 70 28 3c 3c on.about.Composer').->setHelp(<<
fe80 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 72 20 61 62 6f <EOT.<info>php.composer.phar.abo
fea0 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 74 65 64 20 66 ut</info>.EOT.).;.}..protected.f
fec0 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.$
fee0 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).
ff00 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 69 6e 66 6f 3e {.$output->writeln(<<<EOT.<info>
ff20 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 6e 74 20 66 6f Composer.-.Package.Management.fo
ff40 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 73 65 72 20 69 r.PHP</info>.<comment>Composer.i
ff60 73 20 61 20 64 65 70 65 6e 64 65 6e 63 79 20 6d 61 6e 61 67 65 72 20 74 72 61 63 6b 69 6e 67 20 s.a.dependency.manager.tracking.
ff80 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 6a 65 local.dependencies.of.your.proje
ffa0 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 67 65 cts.and.libraries..See.http://ge
ffc0 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 61 74 tcomposer.org/.for.more.informat
ffe0 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 68 70 ion.</comment>.EOT.);..}.}.<?php
10000 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 43 ............namespace.Composer\C
10020 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 ommand;..use.Composer\Dependency
10040 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
10060 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 3b 0a 75 73 ndencyResolver\DefaultPolicy;.us
10080 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 e.Composer\Factory;.use.Composer
100a0 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 \Package\CompletePackageInterfac
100c0 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\
100e0 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 6c 75 67 VersionParser;.use.Composer\Plug
10100 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c in\CommandEvent;.use.Composer\Pl
10120 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 ugin\PluginEvents;.use.Symfony\C
10140 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
10160 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
10180 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 sole\Input\InputArgument;.use.Sy
101a0 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
101c0 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 putOption;.use.Symfony\Component
101e0 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;
10200 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 41 72 72 61 79 52 65 .use.Composer\Repository\ArrayRe
10220 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
10240 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f y\CompositeRepository;.use.Compo
10260 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 ser\Repository\ComposerRepositor
10280 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
102a0 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
102c0 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;.....
102e0 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
10300 6e 64 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 3b 0a 0a nd.{.protected.$versionParser;..
10320 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 0a 7b protected.function.configure().{
10340 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 73 65 74 44 65 .$this.->setName('show').->setDe
10360 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 20 61 62 6f 75 scription('Show.information.abou
10380 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 6e 28 61 72 72 t.packages').->setDefinition(arr
103a0 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 2c ay(.new.InputArgument('package',
103c0 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 50 61 63 6b 61 .InputArgument::OPTIONAL,.'Packa
103e0 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 72 67 75 6d 65 ge.to.inspect'),.new.InputArgume
10400 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 3a 3a 4f 50 54 nt('version',.InputArgument::OPT
10420 49 4f 4e 41 4c 2c 20 27 56 65 72 73 69 6f 6e 20 6f 72 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 IONAL,.'Version.or.version.const
10440 72 61 69 6e 74 20 74 6f 20 69 6e 73 70 65 63 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 raint.to.inspect'),.new.InputOpt
10460 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 2c 20 27 69 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f ion('installed',.'i',.InputOptio
10480 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 69 6e 73 74 61 6c 6c 65 64 20 70 n::VALUE_NONE,.'List.installed.p
104a0 61 63 6b 61 67 65 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 ackages.only'),.new.InputOption(
104c0 27 70 6c 61 74 66 6f 72 6d 27 2c 20 27 70 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 'platform',.'p',.InputOption::VA
104e0 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 70 6c 61 74 66 6f 72 6d 20 70 61 63 6b 61 67 65 LUE_NONE,.'List.platform.package
10500 73 20 6f 6e 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 61 76 61 69 6c s.only'),.new.InputOption('avail
10520 61 62 6c 65 27 2c 20 27 61 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e able',.'a',.InputOption::VALUE_N
10540 4f 4e 45 2c 20 27 4c 69 73 74 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 6f 6e ONE,.'List.available.packages.on
10560 6c 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 2c 20 27 73 ly'),.new.InputOption('self',.'s
10580 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 53 68 6f ',.InputOption::VALUE_NONE,.'Sho
105a0 77 20 74 68 65 20 72 6f 6f 74 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 w.the.root.package.information')
105c0 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c 79 27 2c 20 27 ,.new.InputOption('name-only',.'
105e0 4e 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 4c 69 N',.InputOption::VALUE_NONE,.'Li
10600 73 74 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 73 20 6f 6e 6c 79 27 29 2c 0a 29 29 0a 2d 3e 73 65 st.package.names.only'),.)).->se
10620 74 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 tHelp(<<<EOT.The.show.command.di
10640 73 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 splays.detailed.information.abou
10660 74 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 t.a.package,.or.lists.all.packag
10680 65 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 es.available...EOT.).;.}..protec
106a0 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
106c0 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
106e0 70 75 74 29 0a 7b 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 put).{.$this->versionParser.=.ne
10700 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 w.VersionParser;....$platformRep
10720 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 3b 0a 0a 24 63 6f o.=.new.PlatformRepository;..$co
10740 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 mposer.=.$this->getComposer(fals
10760 65 29 3b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 73 65 6c 66 27 e);.if.($input->getOption('self'
10780 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 )).{.$package.=.$this->getCompos
107a0 65 72 28 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e er()->getPackage();.$repos.=.$in
107c0 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 stalledRepo.=.new.ArrayRepositor
107e0 79 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 y(array($package));.}.elseif.($i
10800 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 29 29 20 7b 0a 24 nput->getOption('platform')).{.$
10820 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 24 70 6c 61 74 66 6f repos.=.$installedRepo.=.$platfo
10840 72 6d 52 65 70 6f 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 rmRepo;.}.elseif.($input->getOpt
10860 69 6f 6e 28 27 69 6e 73 74 61 6c 6c 65 64 27 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 69 6e ion('installed')).{.$repos.=.$in
10880 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 stalledRepo.=.$this->getComposer
108a0 28 29 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c ()->getRepositoryManager()->getL
108c0 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 ocalRepository();.}.elseif.($inp
108e0 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 61 76 61 69 6c 61 62 6c 65 27 29 29 20 7b 0a 24 69 ut->getOption('available')).{.$i
10900 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 69 66 nstalledRepo.=.$platformRepo;.if
10920 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 20 43 6f 6d 70 .($composer).{.$repos.=.new.Comp
10940 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 ositeRepository($composer->getRe
10960 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 72 69 positoryManager()->getRepositori
10980 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 65 66 61 75 6c 74 52 65 70 6f 73 20 3d 20 es());.}.else.{.$defaultRepos.=.
109a0 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 6f 72 69 Factory::createDefaultRepositori
109c0 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 72 65 70 6f 73 20 3d 20 6e 65 77 es($this->getIO());.$repos.=.new
109e0 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 64 65 66 61 75 6c 74 52 65 70 .CompositeRepository($defaultRep
10a00 6f 73 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 70 6f 73 os);.$output->writeln('No.compos
10a20 65 72 2e 6a 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 er.json.found.in.the.current.dir
10a40 65 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e 67 20 61 76 61 69 6c 61 62 6c 65 20 70 61 63 6b 61 67 ectory,.showing.available.packag
10a60 65 73 20 66 72 6f 6d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f es.from.'...implode(',.',.array_
10a80 6b 65 79 73 28 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 keys($defaultRepos)));.}.}.elsei
10aa0 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 63 6f f.($composer).{.$localRepo.=.$co
10ac0 6d 70 6f 73 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e mposer->getRepositoryManager()->
10ae0 67 65 74 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 getLocalRepository();.$installed
10b00 52 65 70 6f 20 3d 20 6e 65 77 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 Repo.=.new.CompositeRepository(a
10b20 72 72 61 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 rray($localRepo,.$platformRepo))
10b40 3b 0a 24 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 ;.$repos.=.new.CompositeReposito
10b60 72 79 28 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 ry(array_merge(array($installedR
10b80 65 70 6f 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 epo),.$composer->getRepositoryMa
10ba0 6e 61 67 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 nager()->getRepositories()));.}.
10bc0 65 6c 73 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 else.{.$defaultRepos.=.Factory::
10be0 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 69 73 2d createDefaultRepositories($this-
10c00 3e 67 65 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 >getIO());.$output->writeln('No.
10c20 63 6f 6d 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 composer.json.found.in.the.curre
10c40 6e 74 20 64 69 72 65 63 74 6f 72 79 2c 20 73 68 6f 77 69 6e 67 20 61 76 61 69 6c 61 62 6c 65 20 nt.directory,.showing.available.
10c60 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 2c 20 packages.from.'...implode(',.',.
10c80 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 69 6e array_keys($defaultRepos)));.$in
10ca0 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 72 65 stalledRepo.=.$platformRepo;.$re
10cc0 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 61 72 pos.=.new.CompositeRepository(ar
10ce0 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 29 2c ray_merge(array($installedRepo),
10d00 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 .$defaultRepos));.}..if.($compos
10d20 65 72 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e er).{.$commandEvent.=.new.Comman
10d40 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 73 dEvent(PluginEvents::COMMAND,.'s
10d60 68 6f 77 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 how',.$input,.$output);.$compose
10d80 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 r->getEventDispatcher()->dispatc
10da0 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d h($commandEvent->getName(),.$com
10dc0 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 mandEvent);.}....if.($input->get
10de0 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 70 Argument('package').||.!empty($p
10e00 61 63 6b 61 67 65 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ackage)).{.$versions.=.array();.
10e20 69 66 20 28 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 6c 69 73 74 28 24 70 61 63 if.(empty($package)).{.list($pac
10e40 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 29 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 kage,.$versions).=.$this->getPac
10e60 6b 61 67 65 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 2c 20 24 69 6e kage($installedRepo,.$repos,.$in
10e80 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2c 20 24 69 6e put->getArgument('package'),.$in
10ea0 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 73 69 6f 6e 27 29 29 3b 0a 0a 69 put->getArgument('version'));..i
10ec0 66 20 28 21 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c f.(!$package).{.throw.new.\Inval
10ee0 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 27 2e 24 idArgumentException('Package.'.$
10f00 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 27 29 2e 27 20 input->getArgument('package').'.
10f20 6e 6f 74 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e not.found');.}.}.else.{.$version
10f40 73 20 3d 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 s.=.array($package->getPrettyVer
10f60 73 69 6f 6e 28 29 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 sion().=>.$package->getVersion()
10f80 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 69 6e 74 4d 65 74 61 28 24 69 6e 70 75 74 2c 20 24 );.}..$this->printMeta($input,.$
10fa0 6f 75 74 70 75 74 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 2c 20 24 69 6e output,.$package,.$versions,.$in
10fc0 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 3e 70 72 69 stalledRepo,.$repos);.$this->pri
10fe0 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
11000 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 4c 69 6e 6b e,.'requires');.$this->printLink
11020 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 64 65 s($input,.$output,.$package,.'de
11040 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 29 3b 0a 69 vRequires',.'requires.(dev)');.i
11060 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 7b 0a 24 6f f.($package->getSuggests()).{.$o
11080 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 65 73 74 73 utput->writeln("\n<info>suggests
110a0 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 </info>");.foreach.($package->ge
110c0 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 20 24 72 65 tSuggests().as.$suggested.=>.$re
110e0 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 67 67 65 73 ason).{.$output->writeln($sugges
11100 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 20 2e 20 27 ted...'.<comment>'...$reason...'
11120 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 6e 74 4c 69 </comment>');.}.}.$this->printLi
11140 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 20 27 nks($input,.$output,.$package,.'
11160 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 73 28 24 69 provides');.$this->printLinks($i
11180 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 6e 66 6c 69 nput,.$output,.$package,.'confli
111a0 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 70 75 74 2c cts');.$this->printLinks($input,
111c0 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 73 27 29 3b .$output,.$package,.'replaces');
111e0 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 72 72 61 79 ..return;.}....$packages.=.array
11200 28 29 3b 0a 0a 69 66 20 28 24 72 65 70 6f 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f ();..if.($repos.instanceof.Compo
11220 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 72 65 70 6f siteRepository).{.$repos.=.$repo
11240 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 s->getRepositories();.}.elseif.(
11260 21 69 73 5f 61 72 72 61 79 28 24 72 65 70 6f 73 29 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 61 72 !is_array($repos)).{.$repos.=.ar
11280 72 61 79 28 24 72 65 70 6f 73 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 ray($repos);.}..foreach.($repos.
112a0 61 73 20 24 72 65 70 6f 29 20 7b 0a 69 66 20 28 24 72 65 70 6f 20 3d 3d 3d 20 24 70 6c 61 74 66 as.$repo).{.if.($repo.===.$platf
112c0 6f 72 6d 52 65 70 6f 29 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 69 6e 66 6f 3e 70 6c 61 74 66 6f ormRepo).{.$type.=.'<info>platfo
112e0 72 6d 3c 2f 69 6e 66 6f 3e 3a 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 0a 24 72 65 70 6f 20 3d 3d rm</info>:';.}.elseif.(.$repo.==
11300 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 0a 7c 7c 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 =.$installedRepo.||.($installedR
11320 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f epo.instanceof.CompositeReposito
11340 72 79 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 72 65 70 6f 2c 20 24 69 6e 73 74 61 6c 6c 65 64 ry.&&.in_array($repo,.$installed
11360 52 65 70 6f 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 2c 20 74 72 75 65 29 29 0a Repo->getRepositories(),.true)).
11380 29 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 69 6e 66 6f 3e 69 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e ).{.$type.=.'<info>installed</in
113a0 66 6f 3e 3a 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 79 70 65 20 3d 20 27 3c 63 6f 6d 6d 65 6e fo>:';.}.else.{.$type.=.'<commen
113c0 74 3e 61 76 61 69 6c 61 62 6c 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 3a 27 3b 0a 7d 0a 69 66 20 28 24 t>available</comment>:';.}.if.($
113e0 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f repo.instanceof.ComposerReposito
11400 72 79 20 26 26 20 24 72 65 70 6f 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 66 ry.&&.$repo->hasProviders()).{.f
11420 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 28 oreach.($repo->getProviderNames(
11440 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 ).as.$name).{.$packages[$type][$
11460 6e 61 6d 65 5d 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 name].=.$name;.}.}.else.{.foreac
11480 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b h.($repo->getPackages().as.$pack
114a0 61 67 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 age).{.if.(!isset($packages[$typ
114c0 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 7c 7c 20 21 69 73 5f e][$package->getName()]).||.!is_
114e0 6f 62 6a 65 63 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 object($packages[$type][$package
11500 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 0a 7c 7c 20 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 ->getName()]).||.version_compare
11520 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e ($packages[$type][$package->getN
11540 61 6d 65 28 29 5d 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e ame()]->getVersion(),.$package->
11560 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 20 27 3c 27 29 0a 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 getVersion(),.'<').).{.$packages
11580 5b 24 74 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 [$type][$package->getName()].=.$
115a0 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 74 72 65 65 20 3d 20 21 24 69 6e 70 75 package;.}.}.}.}..$tree.=.!$inpu
115c0 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 6c 61 74 66 6f 72 6d 27 29 20 26 26 20 21 24 69 6e t->getOption('platform').&&.!$in
115e0 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 29 20 26 26 20 21 put->getOption('installed').&&.!
11600 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 61 76 61 69 6c 61 62 6c 65 27 29 3b 0a $input->getOption('available');.
11620 24 69 6e 64 65 6e 74 20 3d 20 24 74 72 65 65 20 3f 20 27 20 20 27 20 3a 20 27 27 3b 0a 66 6f 72 $indent.=.$tree.?.'..'.:.'';.for
11640 65 61 63 68 20 28 61 72 72 61 79 28 27 3c 69 6e 66 6f 3e 70 6c 61 74 66 6f 72 6d 3c 2f 69 6e 66 each.(array('<info>platform</inf
11660 6f 3e 3a 27 20 3d 3e 20 74 72 75 65 2c 20 27 3c 63 6f 6d 6d 65 6e 74 3e 61 76 61 69 6c 61 62 6c o>:'.=>.true,.'<comment>availabl
11680 65 3c 2f 63 6f 6d 6d 65 6e 74 3e 3a 27 20 3d 3e 20 66 61 6c 73 65 2c 20 27 3c 69 6e 66 6f 3e 69 e</comment>:'.=>.false,.'<info>i
116a0 6e 73 74 61 6c 6c 65 64 3c 2f 69 6e 66 6f 3e 3a 27 20 3d 3e 20 74 72 75 65 29 20 61 73 20 24 74 nstalled</info>:'.=>.true).as.$t
116c0 79 70 65 20 3d 3e 20 24 73 68 6f 77 56 65 72 73 69 6f 6e 29 20 7b 0a 69 66 20 28 69 73 73 65 74 ype.=>.$showVersion).{.if.(isset
116e0 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 69 66 20 28 24 74 72 65 65 29 ($packages[$type])).{.if.($tree)
11700 20 7b 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 7d 0a 6b 73 .{.$output->writeln($type);.}.ks
11720 6f 72 74 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 29 3b 0a 0a 24 6e 61 6d 65 4c 65 6e ort($packages[$type]);..$nameLen
11740 67 74 68 20 3d 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 gth.=.$versionLength.=.0;.foreac
11760 68 20 28 24 70 61 63 6b 61 67 65 73 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 h.($packages[$type].as.$package)
11780 20 7b 0a 69 66 20 28 69 73 5f 6f 62 6a 65 63 74 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6e .{.if.(is_object($package)).{.$n
117a0 61 6d 65 4c 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 4c 65 6e 67 74 68 2c 20 73 74 72 ameLength.=.max($nameLength,.str
117c0 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 29 29 29 3b len($package->getPrettyName()));
117e0 0a 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 76 65 72 73 69 6f 6e 4c 65 .$versionLength.=.max($versionLe
11800 6e 67 74 68 2c 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 ngth,.strlen($this->versionParse
11820 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 29 29 3b 0a 7d 20 r->formatVersion($package)));.}.
11840 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 4c 65 else.{.$nameLength.=.max($nameLe
11860 6e 67 74 68 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 6c 69 73 74 28 24 77 69 64 74 68 ngth,.$package);.}.}.list($width
11880 29 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2d 3e 67 65 74 ).=.$this->getApplication()->get
118a0 54 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d TerminalDimensions();.if.(null.=
118c0 3d 3d 20 24 77 69 64 74 68 29 20 7b 0a 0a 20 0a 20 24 77 69 64 74 68 20 3d 20 50 48 50 5f 49 4e ==.$width).{.....$width.=.PHP_IN
118e0 54 5f 4d 41 58 3b 0a 7d 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 T_MAX;.}.if.(defined('PHP_WINDOW
11900 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 77 69 64 74 68 2d 2d 3b 0a 7d S_VERSION_BUILD')).{.$width--;.}
11920 0a 0a 24 77 72 69 74 65 56 65 72 73 69 6f 6e 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 ..$writeVersion.=.!$input->getOp
11940 74 69 6f 6e 28 27 6e 61 6d 65 2d 6f 6e 6c 79 27 29 20 26 26 20 24 73 68 6f 77 56 65 72 73 69 6f tion('name-only').&&.$showVersio
11960 6e 20 26 26 20 28 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 n.&&.($nameLength.+.$versionLeng
11980 74 68 20 2b 20 33 20 3c 3d 20 24 77 69 64 74 68 29 3b 0a 24 77 72 69 74 65 44 65 73 63 72 69 70 th.+.3.<=.$width);.$writeDescrip
119a0 74 69 6f 6e 20 3d 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 2d tion.=.!$input->getOption('name-
119c0 6f 6e 6c 79 27 29 20 26 26 20 28 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 20 28 24 73 68 6f 77 56 only').&&.($nameLength.+.($showV
119e0 65 72 73 69 6f 6e 20 3f 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 3a 20 30 29 20 2b 20 32 ersion.?.$versionLength.:.0).+.2
11a00 34 20 3c 3d 20 24 77 69 64 74 68 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 4.<=.$width);.foreach.($packages
11a20 5b 24 74 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 5f 6f 62 [$type].as.$package).{.if.(is_ob
11a40 6a 65 63 74 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 ject($package)).{.$output->write
11a60 28 24 69 6e 64 65 6e 74 20 2e 20 73 74 72 5f 70 61 64 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ($indent...str_pad($package->get
11a80 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 20 24 6e 61 6d 65 4c 65 6e 67 74 68 2c 20 27 20 27 29 2c PrettyName(),.$nameLength,.'.'),
11aa0 20 66 61 6c 73 65 29 3b 0a 0a 69 66 20 28 24 77 72 69 74 65 56 65 72 73 69 6f 6e 29 20 7b 0a 24 .false);..if.($writeVersion).{.$
11ac0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 73 74 72 5f 70 61 64 28 24 74 68 69 output->write('.'...str_pad($thi
11ae0 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 s->versionParser->formatVersion(
11b00 24 70 61 63 6b 61 67 65 29 2c 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 2c 20 27 20 27 29 2c $package),.$versionLength,.'.'),
11b20 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 72 69 74 65 44 65 73 63 72 69 70 74 69 6f .false);.}..if.($writeDescriptio
11b40 6e 29 20 7b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 73 74 72 74 6f 6b 28 24 70 61 63 6b n).{.$description.=.strtok($pack
11b60 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 20 22 5c 72 5c 6e 22 29 3b 0a age->getDescription(),."\r\n");.
11b80 24 72 65 6d 61 69 6e 69 6e 67 20 3d 20 24 77 69 64 74 68 20 2d 20 24 6e 61 6d 65 4c 65 6e 67 74 $remaining.=.$width.-.$nameLengt
11ba0 68 20 2d 20 24 76 65 72 73 69 6f 6e 4c 65 6e 67 74 68 20 2d 20 34 3b 0a 69 66 20 28 73 74 72 6c h.-.$versionLength.-.4;.if.(strl
11bc0 65 6e 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 20 3e 20 24 72 65 6d 61 69 6e 69 6e 67 29 20 7b en($description).>.$remaining).{
11be0 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 63 72 69 70 74 .$description.=.substr($descript
11c00 69 6f 6e 2c 20 30 2c 20 24 72 65 6d 61 69 6e 69 6e 67 20 2d 20 33 29 20 2e 20 27 2e 2e 2e 27 3b ion,.0,.$remaining.-.3)...'...';
11c20 0a 7d 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 20 27 20 2e 20 24 64 65 73 63 72 69 70 .}.$output->write('.'...$descrip
11c40 74 69 6f 6e 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 tion);.}.}.else.{.$output->write
11c60 28 24 69 6e 64 65 6e 74 20 2e 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 6f 75 74 70 75 74 2d ($indent...$package);.}.$output-
11c80 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 69 66 20 28 24 74 72 65 65 29 20 7b 0a 24 6f 75 >writeln('');.}.if.($tree).{.$ou
11ca0 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a tput->writeln('');.}.}.}.}......
11cc0 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b ......protected.function.getPack
11ce0 61 67 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c age(RepositoryInterface.$install
11d00 65 64 52 65 70 6f 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 edRepo,.RepositoryInterface.$rep
11d20 6f 73 2c 20 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 6e os,.$name,.$version.=.null).{.$n
11d40 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 24 63 6f 6e 73 74 72 ame.=.strtolower($name);.$constr
11d60 61 69 6e 74 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 63 6f aint.=.null;.if.($version).{.$co
11d80 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 61 72 73 65 72 2d nstraint.=.$this->versionParser-
11da0 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a >parseConstraints($version);.}..
11dc0 24 70 6f 6c 69 63 79 20 3d 20 6e 65 77 20 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 28 29 3b 0a 24 $policy.=.new.DefaultPolicy();.$
11de0 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 pool.=.new.Pool('dev');.$pool->a
11e00 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 73 29 3b 0a 0a 24 6d 61 74 63 68 65 64 50 ddRepository($repos);..$matchedP
11e20 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 ackage.=.null;.$versions.=.array
11e40 28 29 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 ();.$matches.=.$pool->whatProvid
11e60 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 66 6f 72 65 61 63 68 20 es($name,.$constraint);.foreach.
11e80 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 ($matches.as.$index.=>.$package)
11ea0 20 7b 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 3d .{...if.($package->getName().!==
11ec0 20 24 6e 61 6d 65 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d .$name).{.unset($matches[$index]
11ee0 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 );.continue;.}....if.(null.===.$
11f00 76 65 72 73 69 6f 6e 20 26 26 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 50 61 version.&&.$installedRepo->hasPa
11f20 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 6d 61 74 63 68 65 64 50 61 63 6b 61 ckage($package)).{.$matchedPacka
11f40 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 24 76 65 72 73 69 6f 6e 73 5b 24 70 61 63 ge.=.$package;.}..$versions[$pac
11f60 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 5d 20 3d 20 24 70 61 63 kage->getPrettyVersion()].=.$pac
11f80 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 24 6d 61 74 63 68 65 73 5b 24 69 6e kage->getVersion();.$matches[$in
11fa0 64 65 78 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 0a 20 69 dex].=.$package->getId();.}....i
11fc0 66 20 28 21 24 6d 61 74 63 68 65 64 50 61 63 6b 61 67 65 20 26 26 20 24 6d 61 74 63 68 65 73 20 f.(!$matchedPackage.&&.$matches.
11fe0 26 26 20 24 70 72 65 66 65 72 65 64 20 3d 20 24 70 6f 6c 69 63 79 2d 3e 73 65 6c 65 63 74 50 72 &&.$prefered.=.$policy->selectPr
12000 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 28 29 2c 20 24 eferedPackages($pool,.array(),.$
12020 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 6d 61 74 63 68 65 64 50 61 63 6b 61 67 65 20 3d 20 24 70 matches)).{.$matchedPackage.=.$p
12040 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 70 72 65 66 65 72 65 64 5b ool->literalToPackage($prefered[
12060 30 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 6d 61 74 63 68 65 64 50 61 63 0]);.}..return.array($matchedPac
12080 6b 61 67 65 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 kage,.$versions);.}.....protecte
120a0 64 20 66 75 6e 63 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 d.function.printMeta(InputInterf
120c0 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
120e0 70 75 74 2c 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 put,.CompletePackageInterface.$p
12100 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 52 65 70 6f 73 69 74 ackage,.array.$versions,.Reposit
12120 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 70 oryInterface.$installedRepo,.Rep
12140 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 70 ositoryInterface.$repos).{.$outp
12160 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 20 ut->writeln('<info>name</info>..
12180 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 65 ...:.'...$package->getPrettyName
121a0 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 73 ());.$output->writeln('<info>des
121c0 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 74 crip.</info>.:.'...$package->get
121e0 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 6e Description());.$output->writeln
12200 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 6f ('<info>keywords</info>.:.'...jo
12220 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 29 in(',.',.$package->getKeywords()
12240 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 69 .?:.array()));.$this->printVersi
12260 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 24 ons($input,.$output,.$package,.$
12280 76 65 72 73 69 6f 6e 73 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 72 65 70 6f 73 versions,.$installedRepo,.$repos
122a0 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 74 79 70 65 3c );.$output->writeln('<info>type<
122c0 2f 69 6e 66 6f 3e 20 20 20 20 20 3a 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 /info>.....:.'...$package->getTy
122e0 70 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 6c pe());.$output->writeln('<info>l
12300 69 63 65 6e 73 65 3c 2f 69 6e 66 6f 3e 20 20 3a 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 icense</info>..:.'...implode(',.
12320 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 29 29 3b 0a 24 6f 75 ',.$package->getLicense()));.$ou
12340 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 73 6f 75 72 63 65 3c 2f 69 6e 66 tput->writeln('<info>source</inf
12360 6f 3e 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 6d 6d 65 6e o>...:.'...sprintf('[%s].<commen
12380 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 2d 3e 67 65 t>%s</comment>.%s',.$package->ge
123a0 74 53 6f 75 72 63 65 54 79 70 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 tSourceType(),.$package->getSour
123c0 63 65 55 72 6c 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 ceUrl(),.$package->getSourceRefe
123e0 72 65 6e 63 65 28 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e rence()));.$output->writeln('<in
12400 66 6f 3e 64 69 73 74 3c 2f 69 6e 66 6f 3e 20 20 20 20 20 3a 20 27 20 2e 20 73 70 72 69 6e 74 66 fo>dist</info>.....:.'...sprintf
12420 28 27 5b 25 73 5d 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 25 73 27 ('[%s].<comment>%s</comment>.%s'
12440 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 2c 20 24 70 61 63 6b ,.$package->getDistType(),.$pack
12460 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 age->getDistUrl(),.$package->get
12480 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 DistReference()));.$output->writ
124a0 65 6c 6e 28 27 3c 69 6e 66 6f 3e 6e 61 6d 65 73 3c 2f 69 6e 66 6f 3e 20 20 20 20 3a 20 27 20 2e eln('<info>names</info>....:.'..
124c0 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 .implode(',.',.$package->getName
124e0 73 28 29 29 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 s()));..if.($package->getSupport
12500 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e ()).{.$output->writeln("\n<info>
12520 73 75 70 70 6f 72 74 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b support</info>");.foreach.($pack
12540 61 67 65 2d 3e 67 65 74 53 75 70 70 6f 72 74 28 29 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 76 age->getSupport().as.$type.=>.$v
12560 61 6c 75 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 alue).{.$output->writeln('<comme
12580 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 20 3a 20 27 2e 24 nt>'...$type...'</comment>.:.'.$
125a0 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 value);.}.}..if.($package->getAu
125c0 74 6f 6c 6f 61 64 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e toload()).{.$output->writeln("\n
125e0 3c 69 6e 66 6f 3e 61 75 74 6f 6c 6f 61 64 3c 2f 69 6e 66 6f 3e 22 29 3b 0a 66 6f 72 65 61 63 68 <info>autoload</info>");.foreach
12600 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 20 61 73 20 24 74 79 .($package->getAutoload().as.$ty
12620 70 65 20 3d 3e 20 24 61 75 74 6f 6c 6f 61 64 73 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 pe.=>.$autoloads).{.$output->wri
12640 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 74 79 70 65 20 2e 20 27 3c 2f 63 6f teln('<comment>'...$type...'</co
12660 6d 6d 65 6e 74 3e 27 29 3b 0a 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 30 27 mment>');..if.($type.===.'psr-0'
12680 29 20 7b 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 6e 61 6d 65 ).{.foreach.($autoloads.as.$name
126a0 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 28 24 .=>.$path).{.$output->writeln(($
126c0 6e 61 6d 65 20 3f 3a 20 27 2a 27 29 20 2e 20 27 20 3d 3e 20 27 20 2e 20 28 69 73 5f 61 72 72 61 name.?:.'*')...'.=>.'...(is_arra
126e0 79 28 24 70 61 74 68 29 20 3f 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 74 68 29 20 y($path).?.implode(',.',.$path).
12700 3a 20 28 24 70 61 74 68 20 3f 3a 20 27 2e 27 29 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 :.($path.?:.'.')));.}.}.elseif.(
12720 24 74 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 34 27 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 $type.===.'psr-4').{.foreach.($a
12740 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 20 7b 0a 24 6f utoloads.as.$name.=>.$path).{.$o
12760 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 27 29 20 2e 20 utput->writeln(($name.?:.'*')...
12780 27 20 3d 3e 20 27 20 2e 20 28 69 73 5f 61 72 72 61 79 28 24 70 61 74 68 29 20 3f 20 69 6d 70 6c '.=>.'...(is_array($path).?.impl
127a0 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 74 68 29 20 3a 20 28 24 70 61 74 68 20 3f 3a 20 27 2e 27 ode(',.',.$path).:.($path.?:.'.'
127c0 29 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 )));.}.}.elseif.($type.===.'clas
127e0 73 6d 61 70 27 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 69 6d 70 6c 6f 64 smap').{.$output->writeln(implod
12800 65 28 27 2c 20 27 2c 20 24 61 75 74 6f 6c 6f 61 64 73 29 29 3b 0a 7d 0a 7d 0a 69 66 20 28 24 70 e(',.',.$autoloads));.}.}.if.($p
12820 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 29 20 7b 0a 24 6f 75 ackage->getIncludePaths()).{.$ou
12840 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 63 6f 6d 6d 65 6e 74 3e 69 6e 63 6c 75 64 65 2d tput->writeln('<comment>include-
12860 70 61 74 68 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 path</comment>');.$output->write
12880 6c 6e 28 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 6e ln(implode(',.',.$package->getIn
128a0 63 6c 75 64 65 50 61 74 68 73 28 29 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 cludePaths()));.}.}.}.....protec
128c0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 56 65 72 73 69 6f 6e 73 28 49 6e 70 75 74 ted.function.printVersions(Input
128e0 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 Interface.$input,.OutputInterfac
12900 65 20 24 6f 75 74 70 75 74 2c 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 e.$output,.CompletePackageInterf
12920 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 76 65 72 73 69 6f 6e 73 2c 20 52 ace.$package,.array.$versions,.R
12940 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 70 epositoryInterface.$installedRep
12960 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 7b o,.RepositoryInterface.$repos).{
12980 0a 75 61 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 .uasort($versions,.'version_comp
129a0 61 72 65 27 29 3b 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 61 72 are');.$versions.=.array_keys(ar
129c0 72 61 79 5f 72 65 76 65 72 73 65 28 24 76 65 72 73 69 6f 6e 73 29 29 3b 0a 0a 0a 20 69 66 20 28 ray_reverse($versions));....if.(
129e0 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b $installedRepo->hasPackage($pack
12a00 61 67 65 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 age)).{.$installedVersion.=.$pac
12a20 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 24 6b 65 79 20 3d kage->getPrettyVersion();.$key.=
12a40 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 73 69 6f 6e 2c .array_search($installedVersion,
12a60 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 6b 65 79 29 .$versions);.if.(false.!==.$key)
12a80 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 24 6b 65 79 5d 20 3d 20 27 3c 69 6e 66 6f 3e 2a 20 27 20 .{.$versions[$key].=.'<info>*.'.
12aa0 2e 20 24 69 6e 73 74 61 6c 6c 65 64 56 65 72 73 69 6f 6e 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 3b ..$installedVersion...'</info>';
12ac0 0a 7d 0a 7d 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 .}.}..$versions.=.implode(',.',.
12ae0 24 76 65 72 73 69 6f 6e 73 29 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c $versions);..$output->writeln('<
12b00 69 6e 66 6f 3e 76 65 72 73 69 6f 6e 73 3c 2f 69 6e 66 6f 3e 20 3a 20 27 20 2e 20 24 76 65 72 73 info>versions</info>.:.'...$vers
12b20 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e ions);.}...........protected.fun
12b40 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.
12b60 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,
12b80 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 .CompletePackageInterface.$packa
12ba0 67 65 2c 20 24 6c 69 6e 6b 54 79 70 65 2c 20 24 74 69 74 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a ge,.$linkType,.$title.=.null).{.
12bc0 24 74 69 74 6c 65 20 3d 20 24 74 69 74 6c 65 20 3f 3a 20 24 6c 69 6e 6b 54 79 70 65 3b 0a 69 66 $title.=.$title.?:.$linkType;.if
12be0 20 28 24 6c 69 6e 6b 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 75 63 66 69 .($links.=.$package->{'get'.ucfi
12c00 72 73 74 28 24 6c 69 6e 6b 54 79 70 65 29 7d 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 rst($linkType)}()).{.$output->wr
12c20 69 74 65 6c 6e 28 22 5c 6e 3c 69 6e 66 6f 3e 22 20 2e 20 24 74 69 74 6c 65 20 2e 20 22 3c 2f 69 iteln("\n<info>"...$title..."</i
12c40 6e 66 6f 3e 22 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e nfo>");..foreach.($links.as.$lin
12c60 6b 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 6c 69 6e 6b 2d 3e 67 65 74 k).{.$output->writeln($link->get
12c80 54 61 72 67 65 74 28 29 20 2e 20 27 20 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6c 69 6e 6b 2d Target()...'.<comment>'...$link-
12ca0 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 20 2e 20 27 3c 2f 63 6f 6d 6d >getPrettyConstraint()...'</comm
12cc0 65 6e 74 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ent>');.}.}.}.}.<?php...........
12ce0 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 0a 75 73 .namespace.Composer\Command;..us
12d00 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 70 6f 73 e.Composer\Installer;.use.Compos
12d20 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 er\Plugin\CommandEvent;.use.Comp
12d40 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 oser\Plugin\PluginEvents;.use.Sy
12d60 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
12d80 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
12da0 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 75 ent\Console\Input\InputOption;.u
12dc0 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
12de0 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f ut\InputArgument;.use.Symfony\Co
12e00 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 49 6e 74 mponent\Console\Output\OutputInt
12e20 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 erface;......class.UpdateCommand
12e40 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e .extends.Command.{.protected.fun
12e60 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e ction.configure().{.$this.->setN
12e80 61 6d 65 28 27 75 70 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 ame('update').->setDescription('
12ea0 55 70 64 61 74 65 73 20 79 6f 75 72 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 6f 20 74 68 65 Updates.your.dependencies.to.the
12ec0 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 20 61 63 63 6f 72 64 69 6e 67 20 74 6f 20 63 6f 6d .latest.version.according.to.com
12ee0 70 6f 73 65 72 2e 6a 73 6f 6e 2c 20 61 6e 64 20 75 70 64 61 74 65 73 20 74 68 65 20 63 6f 6d 70 poser.json,.and.updates.the.comp
12f00 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f oser.lock.file.').->setDefinitio
12f20 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
12f40 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 52 41 59 20 7c ages',.InputArgument::IS_ARRAY.|
12f60 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 50 61 63 6b 61 .InputArgument::OPTIONAL,.'Packa
12f80 67 65 73 20 74 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 75 70 64 61 74 65 64 2c 20 69 66 20 6e ges.that.should.be.updated,.if.n
12fa0 6f 74 20 70 72 6f 76 69 64 65 64 20 61 6c 6c 20 70 61 63 6b 61 67 65 73 20 61 72 65 2e 27 29 2c ot.provided.all.packages.are.'),
12fc0 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 72 63 65 27 .new.InputOption('prefer-source'
12fe0 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,
13000 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 .'Forces.installation.from.packa
13020 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 63 6c 75 64 ge.sources.when.possible,.includ
13040 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 49 6e 70 75 ing.VCS.information.'),.new.Inpu
13060 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 tOption('prefer-dist',.null,.Inp
13080 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 20 69 6e utOption::VALUE_NONE,.'Forces.in
130a0 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 73 74 20 65 76 65 stallation.from.package.dist.eve
130c0 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 n.for.dev.versions.'),.new.Input
130e0 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 Option('dry-run',.null,.InputOpt
13100 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 75 74 70 75 74 73 20 74 68 65 20 6f 70 ion::VALUE_NONE,.'Outputs.the.op
13120 65 72 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e 6f 74 20 65 78 65 63 75 74 65 20 61 6e erations.but.will.not.execute.an
13140 79 74 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 6c 65 73 20 2d 2d 76 65 72 ything.(implicitly.enables.--ver
13160 62 6f 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 76 27 2c bose).'),.new.InputOption('dev',
13180 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,.
131a0 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 'Enables.installation.of.require
131c0 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e 61 62 6c 65 64 20 62 79 20 64 65 66 61 75 6c -dev.packages.(enabled.by.defaul
131e0 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 6f 72 20 42 43 29 2e 27 29 2c 0a 6e 65 77 20 t,.only.present.for.BC).'),.new.
13200 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 InputOption('no-dev',.null,.Inpu
13220 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 69 tOption::VALUE_NONE,.'Disables.i
13240 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 nstallation.of.require-dev.packa
13260 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 6c 6f 63 6b 27 2c 20 ges.'),.new.InputOption('lock',.
13280 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,.'
132a0 4f 6e 6c 79 20 75 70 64 61 74 65 73 20 74 68 65 20 6c 6f 63 6b 20 66 69 6c 65 20 68 61 73 68 20 Only.updates.the.lock.file.hash.
132c0 74 6f 20 73 75 70 70 72 65 73 73 20 77 61 72 6e 69 6e 67 20 61 62 6f 75 74 20 74 68 65 20 6c 6f to.suppress.warning.about.the.lo
132e0 63 6b 20 66 69 6c 65 20 62 65 69 6e 67 20 6f 75 74 20 6f 66 20 64 61 74 65 2e 27 29 2c 0a 6e 65 ck.file.being.out.of.date.'),.ne
13300 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 6e 75 6c 6c w.InputOption('no-plugins',.null
13320 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 44 69 73 61 ,.InputOption::VALUE_NONE,.'Disa
13340 62 6c 65 73 20 61 6c 6c 20 70 6c 75 67 69 6e 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 bles.all.plugins.'),.new.InputOp
13360 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c tion('no-custom-installers',.nul
13380 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 44 45 50 l,.InputOption::VALUE_NONE,.'DEP
133a0 52 45 43 41 54 45 44 3a 20 55 73 65 20 6e 6f 2d 70 6c 75 67 69 6e 73 20 69 6e 73 74 65 61 64 2e RECATED:.Use.no-plugins.instead.
133c0 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 '),.new.InputOption('no-scripts'
133e0 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,
13400 20 27 53 6b 69 70 73 20 74 68 65 20 65 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 73 63 72 .'Skips.the.execution.of.all.scr
13420 69 70 74 73 20 64 65 66 69 6e 65 64 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 ipts.defined.in.composer.json.fi
13440 6c 65 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 70 72 6f 67 72 le.'),.new.InputOption('no-progr
13460 65 73 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e ess',.null,.InputOption::VALUE_N
13480 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f ONE,.'Do.not.output.download.pro
134a0 67 72 65 73 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 77 69 74 68 2d gress.'),.new.InputOption('with-
134c0 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e dependencies',.null,.InputOption
134e0 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 41 64 64 20 61 6c 73 6f 20 61 6c 6c 20 64 65 70 65 ::VALUE_NONE,.'Add.also.all.depe
13500 6e 64 65 6e 63 69 65 73 20 6f 66 20 77 68 69 74 65 6c 69 73 74 65 64 20 70 61 63 6b 61 67 65 73 ndencies.of.whitelisted.packages
13520 20 74 6f 20 74 68 65 20 77 68 69 74 65 6c 69 73 74 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f .to.the.whitelist.'),.new.InputO
13540 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c 76 76 7c 76 76 76 27 2c 20 49 6e 70 ption('verbose',.'v|vv|vvv',.Inp
13560 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 73 20 6d 6f 72 utOption::VALUE_NONE,.'Shows.mor
13580 65 20 64 65 74 61 69 6c 73 20 69 6e 63 6c 75 64 69 6e 67 20 6e 65 77 20 63 6f 6d 6d 69 74 73 20 e.details.including.new.commits.
135a0 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 75 70 64 61 74 69 6e 67 20 70 61 63 6b 61 67 65 73 pulled.in.when.updating.packages
135c0 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a 65 2d 61 .'),.new.InputOption('optimize-a
135e0 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 utoloader',.'o',.InputOption::VA
13600 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 LUE_NONE,.'Optimize.autoloader.d
13620 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d 70 2e 27 29 0a 29 29 0a 2d 3e 73 65 uring.autoloader.dump.').)).->se
13640 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 75 70 64 61 74 65 3c 2f 69 tHelp(<<<EOT.The.<info>update</i
13660 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 72 65 61 64 73 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e nfo>.command.reads.the.composer.
13680 6a 73 6f 6e 20 66 69 6c 65 20 66 72 6f 6d 20 74 68 65 0a 63 75 72 72 65 6e 74 20 64 69 72 65 63 json.file.from.the.current.direc
136a0 74 6f 72 79 2c 20 70 72 6f 63 65 73 73 65 73 20 69 74 2c 20 61 6e 64 20 75 70 64 61 74 65 73 2c tory,.processes.it,.and.updates,
136c0 20 72 65 6d 6f 76 65 73 20 6f 72 20 69 6e 73 74 61 6c 6c 73 20 61 6c 6c 20 74 68 65 0a 64 65 70 .removes.or.installs.all.the.dep
136e0 65 6e 64 65 6e 63 69 65 73 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 endencies...<info>php.composer.p
13700 68 61 72 20 75 70 64 61 74 65 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 6c 69 6d 69 74 20 74 68 65 20 har.update</info>..To.limit.the.
13720 75 70 64 61 74 65 20 6f 70 65 72 61 74 69 6f 6e 20 74 6f 20 61 20 66 65 77 20 70 61 63 6b 61 67 update.operation.to.a.few.packag
13740 65 73 2c 20 79 6f 75 20 63 61 6e 20 6c 69 73 74 20 74 68 65 20 70 61 63 6b 61 67 65 28 73 29 0a es,.you.can.list.the.package(s).
13760 79 6f 75 20 77 61 6e 74 20 74 6f 20 75 70 64 61 74 65 20 61 73 20 73 75 63 68 3a 0a 0a 3c 69 6e you.want.to.update.as.such:..<in
13780 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 75 70 64 61 74 65 20 76 65 6e 64 fo>php.composer.phar.update.vend
137a0 6f 72 2f 70 61 63 6b 61 67 65 31 20 66 6f 6f 2f 6d 79 70 61 63 6b 61 67 65 20 5b 2e 2e 2e 5d 3c or/package1.foo/mypackage.[...]<
137c0 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 /info>.EOT.).;.}..protected.func
137e0 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 tion.execute(InputInterface.$inp
13800 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 ut,.OutputInterface.$output).{.i
13820 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d f.($input->getOption('no-custom-
13840 69 6e 73 74 61 6c 6c 65 72 73 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e installers')).{.$output->writeln
13860 28 27 3c 77 61 72 6e 69 6e 67 3e 59 6f 75 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 64 65 70 ('<warning>You.are.using.the.dep
13880 72 65 63 61 74 65 64 20 6f 70 74 69 6f 6e 20 22 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c recated.option."no-custom-instal
138a0 6c 65 72 73 22 2e 20 55 73 65 20 22 6e 6f 2d 70 6c 75 67 69 6e 73 22 20 69 6e 73 74 65 61 64 2e lers"..Use."no-plugins".instead.
138c0 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 </warning>');.$input->setOption(
138e0 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 'no-plugins',.true);.}..$compose
13900 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 74 72 75 65 2c 20 24 69 6e r.=.$this->getComposer(true,.$in
13920 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 29 3b 0a 24 put->getOption('no-plugins'));.$
13940 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 2d 3e composer->getDownloadManager()->
13960 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 setOutputProgress(!$input->getOp
13980 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 tion('no-progress'));.$io.=.$thi
139a0 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 s->getIO();..$commandEvent.=.new
139c0 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d .CommandEvent(PluginEvents::COMM
139e0 41 4e 44 2c 20 27 75 70 64 61 74 65 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b AND,.'update',.$input,.$output);
13a00 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 .$composer->getEventDispatcher()
13a20 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d ->dispatch($commandEvent->getNam
13a40 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 20 3d e(),.$commandEvent);..$install.=
13a60 20 49 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 .Installer::create($io,.$compose
13a80 72 29 3b 0a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 24 70 72 65 r);..$preferSource.=.false;.$pre
13aa0 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 73 77 69 74 63 68 20 28 24 63 6f 6d 70 6f 73 ferDist.=.false;.switch.($compos
13ac0 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d er->getConfig()->get('preferred-
13ae0 69 6e 73 74 61 6c 6c 27 29 29 20 7b 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 70 72 65 install')).{.case.'source':.$pre
13b00 66 65 72 53 6f 75 72 63 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 64 ferSource.=.true;.break;.case.'d
13b20 69 73 74 27 3a 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b ist':.$preferDist.=.true;.break;
13b40 0a 63 61 73 65 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a .case.'auto':.default:...break;.
13b60 7d 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d }.if.($input->getOption('prefer-
13b80 73 6f 75 72 63 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 source').||.$input->getOption('p
13ba0 72 65 66 65 72 2d 64 69 73 74 27 29 29 20 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 refer-dist')).{.$preferSource.=.
13bc0 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 $input->getOption('prefer-source
13be0 27 29 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 ');.$preferDist.=.$input->getOpt
13c00 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 0a ion('prefer-dist');.}..$install.
13c20 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 6e 28 27 64 ->setDryRun($input->getOption('d
13c40 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 74 2d 3e 67 ry-run')).->setVerbose($input->g
13c60 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 65 66 65 72 etOption('verbose')).->setPrefer
13c80 53 6f 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 66 65 Source($preferSource).->setPrefe
13ca0 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 rDist($preferDist).->setDevMode(
13cc0 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 29 0a 2d 3e !$input->getOption('no-dev')).->
13ce0 73 65 74 52 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 setRunScripts(!$input->getOption
13d00 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 29 29 0a 2d 3e 73 65 74 4f 70 74 69 6d 69 7a 65 41 75 74 ('no-scripts')).->setOptimizeAut
13d20 6f 6c 6f 61 64 65 72 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d oloader($input->getOption('optim
13d40 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 28 74 72 ize-autoloader')).->setUpdate(tr
13d60 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 28 24 69 6e 70 75 74 2d ue).->setUpdateWhitelist($input-
13d80 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 6f 63 6b 27 29 20 3f 20 61 72 72 61 79 28 27 6c 6f 63 6b >getOption('lock').?.array('lock
13da0 27 29 20 3a 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 ').:.$input->getArgument('packag
13dc0 65 73 27 29 29 0a 2d 3e 73 65 74 57 68 69 74 65 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 es')).->setWhitelistDependencies
13de0 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 77 69 74 68 2d 64 65 70 65 6e 64 65 ($input->getOption('with-depende
13e00 6e 63 69 65 73 27 29 29 0a 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f ncies')).;..if.($input->getOptio
13e20 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 2d 3e 64 69 73 n('no-plugins')).{.$install->dis
13e40 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c ablePlugins();.}..return.$instal
13e60 6c 2d 3e 72 75 6e 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 l->run();.}.}.<?php............n
13e80 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 20 amespace.Composer\Command;..use.
13ea0 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\
13ec0 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 70 InputInterface;.use.Symfony\Comp
13ee0 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
13f00 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
13f20 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 5c \Input\InputOption;.use.Symfony\
13f40 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 49 Component\Console\Output\OutputI
13f60 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 nterface;.use.Composer\Config;.u
13f80 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 se.Composer\Config\JsonConfigSou
13fa0 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 rce;.use.Composer\Factory;.use.C
13fc0 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 omposer\Json\JsonFile;......clas
13fe0 73 20 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a s.ConfigCommand.extends.Command.
14000 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 6f 74 {....protected.$config;.....prot
14020 65 63 74 65 64 20 24 63 6f 6e 66 69 67 46 69 6c 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 ected.$configFile;.....protected
14040 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 .$configSource;.....protected.fu
14060 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 nction.configure().{.$this.->set
14080 4e 61 6d 65 28 27 63 6f 6e 66 69 67 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 Name('config').->setDescription(
140a0 27 53 65 74 20 63 6f 6e 66 69 67 20 6f 70 74 69 6f 6e 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 'Set.config.options').->setDefin
140c0 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 67 6c ition(array(.new.InputOption('gl
140e0 6f 62 61 6c 27 2c 20 27 67 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e obal',.'g',.InputOption::VALUE_N
14100 4f 4e 45 2c 20 27 41 70 70 6c 79 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 68 65 20 67 6c 6f 62 61 ONE,.'Apply.command.to.the.globa
14120 6c 20 63 6f 6e 66 69 67 20 66 69 6c 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e l.config.file'),.new.InputOption
14140 28 27 65 64 69 74 6f 72 27 2c 20 27 65 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c ('editor',.'e',.InputOption::VAL
14160 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 65 6e 20 65 64 69 74 6f 72 27 29 2c 0a 6e 65 77 20 49 6e 70 UE_NONE,.'Open.editor'),.new.Inp
14180 75 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 utOption('unset',.null,.InputOpt
141a0 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 55 6e 73 65 74 20 74 68 65 20 67 69 76 65 ion::VALUE_NONE,.'Unset.the.give
141c0 6e 20 73 65 74 74 69 6e 67 2d 6b 65 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e n.setting-key'),.new.InputOption
141e0 28 27 6c 69 73 74 27 2c 20 27 6c 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 ('list',.'l',.InputOption::VALUE
14200 5f 4e 4f 4e 45 2c 20 27 4c 69 73 74 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 73 65 74 74 69 _NONE,.'List.configuration.setti
14220 6e 67 73 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 2c 20 27 ngs'),.new.InputOption('file',.'
14240 66 27 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 f',.InputOption::VALUE_REQUIRED,
14260 20 27 49 66 20 79 6f 75 20 77 61 6e 74 20 74 6f 20 63 68 6f 6f 73 65 20 61 20 64 69 66 66 65 72 .'If.you.want.to.choose.a.differ
14280 65 6e 74 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 72 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e ent.composer.json.or.config.json
142a0 27 2c 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 ',.'composer.json'),.new.InputAr
142c0 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 6b 65 79 27 2c 20 6e 75 6c 6c 2c 20 27 53 65 74 gument('setting-key',.null,.'Set
142e0 74 69 6e 67 20 6b 65 79 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 27 73 ting.key'),.new.InputArgument('s
14300 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 49 53 etting-value',.InputArgument::IS
14320 5f 41 52 52 41 59 2c 20 27 53 65 74 74 69 6e 67 20 76 61 6c 75 65 27 29 2c 0a 29 29 0a 2d 3e 73 _ARRAY,.'Setting.value'),.)).->s
14340 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 61 6c 6c 6f 77 etHelp(<<<EOT.This.command.allow
14360 73 20 79 6f 75 20 74 6f 20 65 64 69 74 20 73 6f 6d 65 20 62 61 73 69 63 20 63 6f 6d 70 6f 73 65 s.you.to.edit.some.basic.compose
14380 72 20 73 65 74 74 69 6e 67 73 20 69 6e 20 65 69 74 68 65 72 20 74 68 65 0a 6c 6f 63 61 6c 20 63 r.settings.in.either.the.local.c
143a0 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 6f 72 20 74 68 65 20 67 6c 6f 62 61 6c 20 omposer.json.file.or.the.global.
143c0 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 2e 0a 0a 54 6f 20 65 64 69 74 20 74 68 65 20 67 config.json.file...To.edit.the.g
143e0 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a 73 6f 6e 20 66 69 6c 65 3a 0a 0a 20 20 20 20 3c 63 6f lobal.config.json.file:......<co
14400 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 67 6c 6f 62 mment>%command.full_name%.--glob
14420 61 6c 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 54 6f 20 61 64 64 20 61 20 72 65 70 6f 73 69 74 6f 72 al</comment>..To.add.a.repositor
14440 79 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e y:......<comment>%command.full_n
14460 61 6d 65 25 20 72 65 70 6f 73 69 74 6f 72 69 65 73 2e 66 6f 6f 20 76 63 73 20 68 74 74 70 3a 2f ame%.repositories.foo.vcs.http:/
14480 2f 62 61 72 2e 63 6f 6d 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 64 64 20 /bar.com</comment>..You.can.add.
144a0 61 20 72 65 70 6f 73 69 74 6f 72 79 20 74 6f 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 a.repository.to.the.global.confi
144c0 67 2e 6a 73 6f 6e 20 66 69 6c 65 20 62 79 20 70 61 73 73 69 6e 67 20 69 6e 20 74 68 65 0a 3c 69 g.json.file.by.passing.in.the.<i
144e0 6e 66 6f 3e 2d 2d 67 6c 6f 62 61 6c 3c 2f 69 6e 66 6f 3e 20 6f 70 74 69 6f 6e 2e 0a 0a 54 6f 20 nfo>--global</info>.option...To.
14500 65 64 69 74 20 74 68 65 20 66 69 6c 65 20 69 6e 20 61 6e 20 65 78 74 65 72 6e 61 6c 20 65 64 69 edit.the.file.in.an.external.edi
14520 74 6f 72 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c tor:......<comment>%command.full
14540 5f 6e 61 6d 65 25 20 2d 2d 65 64 69 74 6f 72 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a 54 6f 20 63 68 _name%.--editor</comment>..To.ch
14560 6f 6f 73 65 20 79 6f 75 72 20 65 64 69 74 6f 72 20 79 6f 75 20 63 61 6e 20 73 65 74 20 74 68 65 oose.your.editor.you.can.set.the
14580 20 22 45 44 49 54 4f 52 22 20 65 6e 76 20 76 61 72 69 61 62 6c 65 2e 0a 0a 54 6f 20 67 65 74 20 ."EDITOR".env.variable...To.get.
145a0 61 20 6c 69 73 74 20 6f 66 20 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 20 76 61 6c 75 65 73 20 69 a.list.of.configuration.values.i
145c0 6e 20 74 68 65 20 66 69 6c 65 3a 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 n.the.file:......<comment>%comma
145e0 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 6c 69 73 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 0a 0a nd.full_name%.--list</comment>..
14600 59 6f 75 20 63 61 6e 20 61 6c 77 61 79 73 20 70 61 73 73 20 6d 6f 72 65 20 74 68 61 6e 20 6f 6e You.can.always.pass.more.than.on
14620 65 20 6f 70 74 69 6f 6e 2e 20 41 73 20 61 6e 20 65 78 61 6d 70 6c 65 2c 20 69 66 20 79 6f 75 20 e.option..As.an.example,.if.you.
14640 77 61 6e 74 20 74 6f 20 65 64 69 74 20 74 68 65 0a 67 6c 6f 62 61 6c 20 63 6f 6e 66 69 67 2e 6a want.to.edit.the.global.config.j
14660 73 6f 6e 20 66 69 6c 65 2e 0a 0a 20 20 20 20 3c 63 6f 6d 6d 65 6e 74 3e 25 63 6f 6d 6d 61 6e 64 son.file.......<comment>%command
14680 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 65 64 69 74 6f 72 20 2d 2d 67 6c 6f 62 61 6c 3c 2f 63 .full_name%.--editor.--global</c
146a0 6f 6d 6d 65 6e 74 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 omment>.EOT.).;.}.....protected.
146c0 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 function.initialize(InputInterfa
146e0 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
14700 75 74 29 0a 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f ut).{.if.($input->getOption('glo
14720 62 61 6c 27 29 20 26 26 20 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 20 21 3d 3d 20 24 69 6e bal').&&.'composer.json'.!==.$in
14740 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 69 6c 65 27 29 29 20 7b 0a 74 68 72 6f 77 20 put->getOption('file')).{.throw.
14760 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 2d 2d 66 69 6c 65 20 61 6e new.\RuntimeException('--file.an
14780 64 20 2d 2d 67 6c 6f 62 61 6c 20 63 61 6e 20 6e 6f 74 20 62 65 20 63 6f 6d 62 69 6e 65 64 27 29 d.--global.can.not.be.combined')
147a0 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 ;.}..$this->config.=.Factory::cr
147c0 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 0a 0a 20 0a 20 24 63 6f 6e 66 69 67 46 69 6c 65 20 3d eateConfig();......$configFile.=
147e0 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 0a 3f 20 28 .$input->getOption('global').?.(
14800 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 20 2e 20 27 2f 63 $this->config->get('home')...'/c
14820 6f 6e 66 69 67 2e 6a 73 6f 6e 27 29 0a 3a 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e onfig.json').:.$input->getOption
14840 28 27 66 69 6c 65 27 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 20 3d 20 6e ('file');..$this->configFile.=.n
14860 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 63 6f 6e 66 69 67 46 69 6c 65 29 3b 0a 24 74 68 69 73 2d ew.JsonFile($configFile);.$this-
14880 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f >configSource.=.new.JsonConfigSo
148a0 75 72 63 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 29 3b 0a 0a 0a 20 69 66 20 28 urce($this->configFile);....if.(
148c0 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 20 26 26 20 21 $input->getOption('global').&&.!
148e0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 $this->configFile->exists()).{.t
14900 6f 75 63 68 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 ouch($this->configFile->getPath(
14920 29 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 77 72 69 74 65 28 61 72 72 ));.$this->configFile->write(arr
14940 61 79 28 27 63 6f 6e 66 69 67 27 20 3d 3e 20 6e 65 77 20 5c 41 72 72 61 79 4f 62 6a 65 63 74 29 ay('config'.=>.new.\ArrayObject)
14960 29 3b 0a 40 63 68 6d 6f 64 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 );.@chmod($this->configFile->get
14980 50 61 74 68 28 29 2c 20 30 36 30 30 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 63 6f Path(),.0600);.}..if.(!$this->co
149a0 6e 66 69 67 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 nfigFile->exists()).{.throw.new.
149c0 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a \RuntimeException('No.composer.j
149e0 73 6f 6e 20 66 6f 75 6e 64 20 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 72 65 63 74 6f son.found.in.the.current.directo
14a00 72 79 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e ry');.}.}.....protected.function
14a20 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 20 .execute(InputInterface.$input,.
14a40 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 0a 20 69 66 20 OutputInterface.$output).{...if.
14a60 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 65 64 69 74 6f 72 27 29 29 20 7b 0a ($input->getOption('editor')).{.
14a80 24 65 64 69 74 6f 72 20 3d 20 67 65 74 65 6e 76 28 27 45 44 49 54 4f 52 27 29 3b 0a 69 66 20 28 $editor.=.getenv('EDITOR');.if.(
14aa0 21 24 65 64 69 74 6f 72 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e !$editor).{.if.(defined('PHP_WIN
14ac0 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 64 69 74 6f 72 20 DOWS_VERSION_BUILD')).{.$editor.
14ae0 3d 20 27 6e 6f 74 65 70 61 64 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 61 =.'notepad';.}.else.{.foreach.(a
14b00 72 72 61 79 28 27 76 69 6d 27 2c 20 27 76 69 27 2c 20 27 6e 61 6e 6f 27 2c 20 27 70 69 63 6f 27 rray('vim',.'vi',.'nano',.'pico'
14b20 2c 20 27 65 64 27 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 65 78 65 ,.'ed').as.$candidate).{.if.(exe
14b40 63 28 27 77 68 69 63 68 20 27 2e 24 63 61 6e 64 69 64 61 74 65 29 29 20 7b 0a 24 65 64 69 74 6f c('which.'.$candidate)).{.$edito
14b60 72 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a r.=.$candidate;.break;.}.}.}.}..
14b80 73 79 73 74 65 6d 28 24 65 64 69 74 6f 72 20 2e 20 27 20 27 20 2e 20 24 74 68 69 73 2d 3e 63 6f system($editor...'.'...$this->co
14ba0 6e 66 69 67 46 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 20 2e 20 28 64 65 66 69 6e 65 64 28 27 nfigFile->getPath()...(defined('
14bc0 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 3f 20 27 27 PHP_WINDOWS_VERSION_BUILD').?.''
14be0 3a 20 27 20 3e 20 60 74 74 79 60 27 29 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 69 66 :.'.>.`tty`'));..return.0;.}..if
14c00 20 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 67 6c 6f 62 61 6c 27 29 29 20 .(!$input->getOption('global')).
14c20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 63 6f {.$this->config->merge($this->co
14c40 6e 66 69 67 46 69 6c 65 2d 3e 72 65 61 64 28 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 nfigFile->read());.}....if.($inp
14c60 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 73 74 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e ut->getOption('list')).{.$this->
14c80 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d listConfiguration($this->config-
14ca0 3e 61 6c 6c 28 29 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 72 61 77 28 29 2c 20 24 6f >all(),.$this->config->raw(),.$o
14cc0 75 74 70 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 73 65 74 74 69 6e 67 4b 65 utput);..return.0;.}..$settingKe
14ce0 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 y.=.$input->getArgument('setting
14d00 2d 6b 65 79 27 29 3b 0a 69 66 20 28 21 24 73 65 74 74 69 6e 67 4b 65 79 29 20 7b 0a 72 65 74 75 -key');.if.(!$settingKey).{.retu
14d20 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 69 66 20 28 61 72 72 61 79 28 29 20 21 3d 3d 20 24 69 6e 70 75 rn.0;.}....if.(array().!==.$inpu
14d40 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c 75 65 27 29 20 t->getArgument('setting-value').
14d60 26 26 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b &&.$input->getOption('unset')).{
14d80 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f .throw.new.\RuntimeException('Yo
14da0 75 20 63 61 6e 20 6e 6f 74 20 63 6f 6d 62 69 6e 65 20 61 20 73 65 74 74 69 6e 67 20 76 61 6c 75 u.can.not.combine.a.setting.valu
14dc0 65 20 77 69 74 68 20 2d 2d 75 6e 73 65 74 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 61 72 72 61 79 e.with.--unset');.}....if.(array
14de0 28 29 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 ().===.$input->getArgument('sett
14e00 69 6e 67 2d 76 61 6c 75 65 27 29 20 26 26 20 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f ing-value').&&.!$input->getOptio
14e20 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e n('unset')).{.$data.=.$this->con
14e40 66 69 67 2d 3e 61 6c 6c 28 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 72 65 fig->all();.if.(preg_match('/^re
14e60 70 6f 73 3f 28 3f 3a 69 74 6f 72 69 65 73 29 3f 28 3f 3a 5c 2e 28 2e 2b 29 29 3f 2f 27 2c 20 24 pos?(?:itories)?(?:\.(.+))?/',.$
14e80 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 65 6d 70 settingKey,.$matches)).{.if.(emp
14ea0 74 79 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 69 73 73 65 ty($matches[1])).{.$value.=.isse
14ec0 74 28 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 29 20 3f 20 24 64 61 74 61 t($data['repositories']).?.$data
14ee0 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 20 65 6c ['repositories'].:.array();.}.el
14f00 73 65 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 72 65 70 6f 73 69 74 6f 72 se.{.if.(!isset($data['repositor
14f20 69 65 73 27 5d 5b 24 6d 61 74 63 68 65 73 5b 31 5d 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 ies'][$matches[1]])).{.throw.new
14f40 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 72 .\InvalidArgumentException('Ther
14f60 65 20 69 73 20 6e 6f 20 27 2e 24 6d 61 74 63 68 65 73 5b 31 5d 2e 27 20 72 65 70 6f 73 69 74 6f e.is.no.'.$matches[1].'.reposito
14f80 72 79 20 64 65 66 69 6e 65 64 27 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 24 64 61 74 61 5b ry.defined');.}..$value.=.$data[
14fa0 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 6d 61 74 63 68 65 73 5b 31 5d 5d 3b 0a 7d 0a 'repositories'][$matches[1]];.}.
14fc0 7d 20 65 6c 73 65 69 66 20 28 73 74 72 70 6f 73 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 27 2e }.elseif.(strpos($settingKey,.'.
14fe0 27 29 29 20 7b 0a 24 62 69 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 73 65 74 74 ')).{.$bits.=.explode('.',.$sett
15000 69 6e 67 4b 65 79 29 3b 0a 24 64 61 74 61 20 3d 20 24 64 61 74 61 5b 27 63 6f 6e 66 69 67 27 5d ingKey);.$data.=.$data['config']
15020 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 69 74 73 20 61 73 20 24 62 69 74 29 20 7b 0a 69 66 20 28 ;.foreach.($bits.as.$bit).{.if.(
15040 69 73 73 65 74 28 24 64 61 74 61 5b 24 62 69 74 5d 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 24 64 isset($data[$bit])).{.$data.=.$d
15060 61 74 61 5b 24 62 69 74 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 ata[$bit];.}.elseif.(isset($data
15080 5b 69 6d 70 6c 6f 64 65 28 27 2e 27 2c 20 24 62 69 74 73 29 5d 29 29 20 7b 0a 0a 20 24 64 61 74 [implode('.',.$bits)])).{...$dat
150a0 61 20 3d 20 24 64 61 74 61 5b 69 6d 70 6c 6f 64 65 28 27 2e 27 2c 20 24 62 69 74 73 29 5d 3b 0a a.=.$data[implode('.',.$bits)];.
150c0 62 72 65 61 6b 3b 0a 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 break;.}.else.{.throw.new.\Runti
150e0 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 73 65 74 74 69 6e 67 4b 65 79 2e 27 20 69 73 20 6e 6f 74 meException($settingKey.'.is.not
15100 20 64 65 66 69 6e 65 64 27 29 3b 0a 7d 0a 61 72 72 61 79 5f 73 68 69 66 74 28 24 62 69 74 73 29 .defined');.}.array_shift($bits)
15120 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 24 64 61 74 61 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 ;.}..$value.=.$data;.}.elseif.(i
15140 73 73 65 74 28 24 64 61 74 61 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 73 65 74 74 69 6e 67 4b 65 79 sset($data['config'][$settingKey
15160 5d 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 64 61 74 61 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 ])).{.$value.=.$data['config'][$
15180 73 65 74 74 69 6e 67 4b 65 79 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 settingKey];.}.else.{.throw.new.
151a0 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 73 65 74 74 69 6e 67 4b 65 79 2e 27 20 \RuntimeException($settingKey.'.
151c0 69 73 20 6e 6f 74 20 64 65 66 69 6e 65 64 27 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 is.not.defined');.}..if.(is_arra
151e0 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 6a 73 6f 6e 5f 65 6e 63 6f 64 y($value)).{.$value.=.json_encod
15200 65 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 e($value);.}..$output->writeln($
15220 76 61 6c 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 76 61 6c 75 65 73 20 3d 20 value);..return.0;.}..$values.=.
15240 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 73 65 74 74 69 6e 67 2d 76 61 6c $input->getArgument('setting-val
15260 75 65 27 29 3b 20 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 72 65 70 6f ue');.....if.(preg_match('/^repo
15280 73 3f 28 3f 3a 69 74 6f 72 69 65 73 29 3f 5c 2e 28 2e 2b 29 2f 27 2c 20 24 73 65 74 74 69 6e 67 s?(?:itories)?\.(.+)/',.$setting
152a0 4b 65 79 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 Key,.$matches)).{.if.($input->ge
152c0 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tOption('unset')).{.return.$this
152e0 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 ->configSource->removeRepository
15300 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 7d 0a 0a 69 66 20 28 32 20 21 3d 3d 20 63 6f 75 6e ($matches[1]);.}..if.(2.!==.coun
15320 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 t($values)).{.throw.new.\Runtime
15340 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 70 61 73 73 20 74 68 65 20 74 79 70 Exception('You.must.pass.the.typ
15360 65 20 61 6e 64 20 61 20 75 72 6c 2e 20 45 78 61 6d 70 6c 65 3a 20 70 68 70 20 63 6f 6d 70 6f 73 e.and.a.url..Example:.php.compos
15380 65 72 2e 70 68 61 72 20 63 6f 6e 66 69 67 20 72 65 70 6f 73 69 74 6f 72 69 65 73 2e 66 6f 6f 20 er.phar.config.repositories.foo.
153a0 76 63 73 20 68 74 74 70 3a 2f 2f 62 61 72 2e 63 6f 6d 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 vcs.http://bar.com');.}..return.
153c0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f $this->configSource->addReposito
153e0 72 79 28 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e ry($matches[1],.array(.'type'.=>
15400 20 24 76 61 6c 75 65 73 5b 30 5d 2c 0a 27 75 72 6c 27 20 3d 3e 20 24 76 61 6c 75 65 73 5b 31 5d .$values[0],.'url'.=>.$values[1]
15420 2c 0a 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 67 69 74 ,.));.}....if.(preg_match('/^git
15440 68 75 62 2d 6f 61 75 74 68 5c 2e 28 2e 2b 29 2f 27 2c 20 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 hub-oauth\.(.+)/',.$settingKey,.
15460 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 $matches)).{.if.($input->getOpti
15480 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e on('unset')).{.return.$this->con
154a0 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 27 figSource->removeConfigSetting('
154c0 67 69 74 68 75 62 2d 6f 61 75 74 68 2e 27 2e 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 7d 0a 0a github-oauth.'.$matches[1]);.}..
154e0 69 66 20 28 31 20 21 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f if.(1.!==.count($values)).{.thro
15500 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 54 6f 6f 20 6d 61 6e w.new.\RuntimeException('Too.man
15520 79 20 61 72 67 75 6d 65 6e 74 73 2c 20 65 78 70 65 63 74 65 64 20 6f 6e 6c 79 20 6f 6e 65 20 74 y.arguments,.expected.only.one.t
15540 6f 6b 65 6e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 oken');.}..return.$this->configS
15560 6f 75 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 27 67 69 74 68 75 62 2d ource->addConfigSetting('github-
15580 6f 61 75 74 68 2e 27 2e 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 24 76 61 6c 75 65 73 5b 30 5d 29 oauth.'.$matches[1],.$values[0])
155a0 3b 0a 7d 0a 0a 24 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 20 3d 20 66 75 6e 63 74 69 6f ;.}..$booleanValidator.=.functio
155c0 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 76 61 6c 2c n.($val).{.return.in_array($val,
155e0 20 61 72 72 61 79 28 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c 20 27 31 27 2c 20 27 30 27 .array('true',.'false',.'1',.'0'
15600 29 2c 20 74 72 75 65 29 3b 20 7d 3b 0a 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 20 ),.true);.};.$booleanNormalizer.
15620 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 20 =.function.($val).{.return.$val.
15640 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 76 61 6c 3b 20 7d 3b 0a 0a !==.'false'.&&.(bool).$val;.};..
15660 0a 20 24 75 6e 69 71 75 65 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 0a 27 ..$uniqueConfigValues.=.array(.'
15680 70 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 6e 75 process-timeout'.=>.array('is_nu
156a0 6d 65 72 69 63 27 2c 20 27 69 6e 74 76 61 6c 27 29 2c 0a 27 75 73 65 2d 69 6e 63 6c 75 64 65 2d meric',.'intval'),.'use-include-
156c0 70 61 74 68 27 20 3d 3e 20 61 72 72 61 79 28 24 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 path'.=>.array($booleanValidator
156e0 2c 20 24 62 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 29 2c 0a 27 70 72 65 66 65 72 72 65 ,.$booleanNormalizer),.'preferre
15700 64 2d 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 d-install'.=>.array(.function.($
15720 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 76 61 6c 2c 20 61 72 72 val).{.return.in_array($val,.arr
15740 61 79 28 27 61 75 74 6f 27 2c 20 27 73 6f 75 72 63 65 27 2c 20 27 64 69 73 74 27 29 2c 20 74 72 ay('auto',.'source',.'dist'),.tr
15760 75 65 29 3b 20 7d 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e ue);.},.function.($val).{.return
15780 20 24 76 61 6c 3b 20 7d 0a 29 2c 0a 27 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 27 20 .$val;.}.),.'notify-on-install'.
157a0 3d 3e 20 61 72 72 61 79 28 24 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 2c 20 24 62 6f 6f =>.array($booleanValidator,.$boo
157c0 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 29 2c 0a 27 76 65 6e 64 6f 72 2d 64 69 72 27 20 3d 3e leanNormalizer),.'vendor-dir'.=>
157e0 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 .array('is_string',.function.($v
15800 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 62 69 6e 2d 64 69 72 27 al).{.return.$val;.}),.'bin-dir'
15820 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 .=>.array('is_string',.function.
15840 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 68 65 ($val).{.return.$val;.}),.'cache
15860 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 -dir'.=>.array('is_string',.func
15880 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 tion.($val).{.return.$val;.}),.'
158a0 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 cache-files-dir'.=>.array('is_st
158c0 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 ring',.function.($val).{.return.
158e0 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 20 3d 3e 20 61 72 $val;.}),.'cache-repo-dir'.=>.ar
15900 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 ray('is_string',.function.($val)
15920 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d 64 .{.return.$val;.}),.'cache-vcs-d
15940 69 72 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 ir'.=>.array('is_string',.functi
15960 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 63 61 on.($val).{.return.$val;.}),.'ca
15980 63 68 65 2d 74 74 6c 27 20 3d 3e 20 61 72 72 61 79 28 27 69 73 5f 6e 75 6d 65 72 69 63 27 2c 20 che-ttl'.=>.array('is_numeric',.
159a0 27 69 6e 74 76 61 6c 27 29 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 20 3d 3e 20 'intval'),.'cache-files-ttl'.=>.
159c0 61 72 72 61 79 28 27 69 73 5f 6e 75 6d 65 72 69 63 27 2c 20 27 69 6e 74 76 61 6c 27 29 2c 0a 27 array('is_numeric',.'intval'),.'
159e0 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 cache-files-maxsize'.=>.array(.f
15a00 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 unction.($val).{.return.preg_mat
15a20 63 68 28 27 2f 5e 5c 73 2a 28 5b 30 2d 39 2e 5d 2b 29 5c 73 2a 28 3f 3a 28 5b 6b 6d 67 5d 29 28 ch('/^\s*([0-9.]+)\s*(?:([kmg])(
15a40 3f 3a 69 3f 62 29 3f 29 3f 5c 73 2a 24 2f 69 27 2c 20 24 76 61 6c 29 20 3e 20 30 3b 20 7d 2c 0a ?:i?b)?)?\s*$/i',.$val).>.0;.},.
15a60 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 3b 20 7d function.($val).{.return.$val;.}
15a80 0a 29 2c 0a 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 20 3d 3e 20 61 72 72 61 79 28 0a .),.'discard-changes'.=>.array(.
15aa0 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 20 72 65 74 75 72 6e 20 69 6e 5f 61 72 72 61 function.($val).{.return.in_arra
15ac0 79 28 24 76 61 6c 2c 20 61 72 72 61 79 28 27 73 74 61 73 68 27 2c 20 27 74 72 75 65 27 2c 20 27 y($val,.array('stash',.'true',.'
15ae0 66 61 6c 73 65 27 2c 20 27 31 27 2c 20 27 30 27 29 2c 20 74 72 75 65 29 3b 20 7d 2c 0a 66 75 6e false',.'1',.'0'),.true);.},.fun
15b00 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 0a 69 66 20 28 27 73 74 61 73 68 27 20 3d 3d 3d 20 24 ction.($val).{.if.('stash'.===.$
15b20 76 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 27 73 74 61 73 68 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e val).{.return.'stash';.}..return
15b40 20 24 76 61 6c 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 76 61 6c .$val.!==.'false'.&&.(bool).$val
15b60 3b 0a 7d 0a 29 2c 0a 27 61 75 74 6f 6c 6f 61 64 65 72 2d 73 75 66 66 69 78 27 20 3d 3e 20 61 72 ;.}.),.'autoloader-suffix'.=>.ar
15b80 72 61 79 28 27 69 73 5f 73 74 72 69 6e 67 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 ray('is_string',.function.($val)
15ba0 20 7b 20 72 65 74 75 72 6e 20 24 76 61 6c 20 3d 3d 3d 20 27 6e 75 6c 6c 27 20 3f 20 6e 75 6c 6c .{.return.$val.===.'null'.?.null
15bc0 20 3a 20 24 76 61 6c 3b 20 7d 29 2c 0a 27 70 72 65 70 65 6e 64 2d 61 75 74 6f 6c 6f 61 64 65 72 .:.$val;.}),.'prepend-autoloader
15be0 27 20 3d 3e 20 61 72 72 61 79 28 24 62 6f 6f 6c 65 61 6e 56 61 6c 69 64 61 74 6f 72 2c 20 24 62 '.=>.array($booleanValidator,.$b
15c00 6f 6f 6c 65 61 6e 4e 6f 72 6d 61 6c 69 7a 65 72 29 2c 0a 29 3b 0a 24 6d 75 6c 74 69 43 6f 6e 66 ooleanNormalizer),.);.$multiConf
15c20 69 67 56 61 6c 75 65 73 20 3d 20 61 72 72 61 79 28 0a 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 igValues.=.array(.'github-protoc
15c40 6f 6c 73 27 20 3d 3e 20 61 72 72 61 79 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 73 29 20 ols'.=>.array(.function.($vals).
15c60 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 73 29 29 20 7b 0a 72 65 74 75 72 6e {.if.(!is_array($vals)).{.return
15c80 20 27 61 72 72 61 79 20 65 78 70 65 63 74 65 64 27 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 .'array.expected';.}..foreach.($
15ca0 76 61 6c 73 20 61 73 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 76 vals.as.$val).{.if.(!in_array($v
15cc0 61 6c 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 74 74 70 73 27 29 29 29 20 7b 0a 72 65 al,.array('git',.'https'))).{.re
15ce0 74 75 72 6e 20 27 76 61 6c 69 64 20 70 72 6f 74 6f 63 6f 6c 73 20 69 6e 63 6c 75 64 65 3a 20 67 turn.'valid.protocols.include:.g
15d00 69 74 2c 20 68 74 74 70 73 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 2c it,.https';.}.}..return.true;.},
15d20 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 61 6c 73 .function.($vals).{.return.$vals
15d40 3b 0a 7d 0a 29 2c 0a 27 67 69 74 68 75 62 2d 64 6f 6d 61 69 6e 73 27 20 3d 3e 20 61 72 72 61 79 ;.}.),.'github-domains'.=>.array
15d60 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 73 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 (.function.($vals).{.if.(!is_arr
15d80 61 79 28 24 76 61 6c 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 61 72 72 61 79 20 65 78 70 65 63 ay($vals)).{.return.'array.expec
15da0 74 65 64 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 2c 0a 66 75 6e 63 74 69 6f ted';.}..return.true;.},.functio
15dc0 6e 20 28 24 76 61 6c 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 61 6c 73 3b 0a 7d 0a 29 2c 0a 29 n.($vals).{.return.$vals;.}.),.)
15de0 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 75 6e 69 71 75 65 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 ;..foreach.($uniqueConfigValues.
15e00 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 61 6c 6c 62 61 63 6b 73 29 20 7b 0a 69 66 20 28 24 73 as.$name.=>.$callbacks).{.if.($s
15e20 65 74 74 69 6e 67 4b 65 79 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 ettingKey.===.$name).{.if.($inpu
15e40 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 t->getOption('unset')).{.return.
15e60 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 $this->configSource->removeConfi
15e80 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a 7d 0a 0a 6c 69 73 74 28 24 gSetting($settingKey);.}..list($
15ea0 76 61 6c 69 64 61 74 6f 72 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 29 20 3d 20 24 63 61 6c 6c 62 validator,.$normalizer).=.$callb
15ec0 61 63 6b 73 3b 0a 69 66 20 28 31 20 21 3d 3d 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 acks;.if.(1.!==.count($values)).
15ee0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 {.throw.new.\RuntimeException('Y
15f00 6f 75 20 63 61 6e 20 6f 6e 6c 79 20 70 61 73 73 20 6f 6e 65 20 76 61 6c 75 65 2e 20 45 78 61 6d ou.can.only.pass.one.value..Exam
15f20 70 6c 65 3a 20 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 20 63 6f 6e 66 69 67 20 70 72 ple:.php.composer.phar.config.pr
15f40 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 20 33 30 30 27 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 ocess-timeout.300');.}..if.(true
15f60 20 21 3d 3d 20 24 76 61 6c 69 64 61 74 69 6f 6e 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 28 24 76 .!==.$validation.=.$validator($v
15f80 61 6c 75 65 73 5b 30 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 alues[0])).{.throw.new.\RuntimeE
15fa0 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 22 25 73 22 20 69 73 20 61 6e 20 69 6e xception(sprintf(.'"%s".is.an.in
15fc0 76 61 6c 69 64 20 76 61 6c 75 65 27 2e 28 24 76 61 6c 69 64 61 74 69 6f 6e 20 3f 20 27 20 28 27 valid.value'.($validation.?.'.('
15fe0 2e 24 76 61 6c 69 64 61 74 69 6f 6e 2e 27 29 27 20 3a 20 27 27 29 2c 0a 24 76 61 6c 75 65 73 5b .$validation.')'.:.''),.$values[
16000 30 5d 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 0].));.}..return.$this->configSo
16020 75 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b urce->addConfigSetting($settingK
16040 65 79 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 28 24 76 61 6c 75 65 73 5b 30 5d 29 29 3b 0a 7d 0a ey,.$normalizer($values[0]));.}.
16060 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6d 75 6c 74 69 43 6f 6e 66 69 67 56 61 6c 75 65 73 20 61 }..foreach.($multiConfigValues.a
16080 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 61 6c 6c 62 61 63 6b 73 29 20 7b 0a 69 66 20 28 24 73 65 s.$name.=>.$callbacks).{.if.($se
160a0 74 74 69 6e 67 4b 65 79 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 ttingKey.===.$name).{.if.($input
160c0 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 75 6e 73 65 74 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 ->getOption('unset')).{.return.$
160e0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 72 65 6d 6f 76 65 43 6f 6e 66 69 67 this->configSource->removeConfig
16100 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 29 3b 0a 7d 0a 0a 6c 69 73 74 28 24 76 Setting($settingKey);.}..list($v
16120 61 6c 69 64 61 74 6f 72 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 72 29 20 3d 20 24 63 61 6c 6c 62 61 alidator,.$normalizer).=.$callba
16140 63 6b 73 3b 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 24 76 61 6c 69 64 61 74 69 6f 6e 20 3d 20 cks;.if.(true.!==.$validation.=.
16160 24 76 61 6c 69 64 61 74 6f 72 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 $validator($values)).{.throw.new
16180 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 25 73 20 .\RuntimeException(sprintf(.'%s.
161a0 69 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 27 2e 28 24 76 61 6c 69 64 61 74 69 6f is.an.invalid.value'.($validatio
161c0 6e 20 3f 20 27 20 28 27 2e 24 76 61 6c 69 64 61 74 69 6f 6e 2e 27 29 27 20 3a 20 27 27 29 2c 0a n.?.'.('.$validation.')'.:.''),.
161e0 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 76 61 6c 75 65 73 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 json_encode($values).));.}..retu
16200 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 2d 3e 61 64 64 43 6f 6e 66 69 rn.$this->configSource->addConfi
16220 67 53 65 74 74 69 6e 67 28 24 73 65 74 74 69 6e 67 4b 65 79 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 gSetting($settingKey,.$normalize
16240 72 28 24 76 61 6c 75 65 73 29 29 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 r($values));.}.}..throw.new.\Inv
16260 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 53 65 74 74 69 6e 67 20 27 alidArgumentException('Setting.'
16280 2e 24 73 65 74 74 69 6e 67 4b 65 79 2e 27 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 20 6f 72 .$settingKey.'.does.not.exist.or
162a0 20 69 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 62 79 20 74 68 69 73 20 63 6f 6d 6d 61 6e .is.not.supported.by.this.comman
162c0 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 d');.}..........protected.functi
162e0 6f 6e 20 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 74 on.listConfiguration(array.$cont
16300 65 6e 74 73 2c 20 61 72 72 61 79 20 24 72 61 77 43 6f 6e 74 65 6e 74 73 2c 20 4f 75 74 70 75 74 ents,.array.$rawContents,.Output
16320 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a Interface.$output,.$k.=.null).{.
16340 24 6f 72 69 67 4b 20 3d 20 24 6b 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 65 6e 74 73 20 $origK.=.$k;.foreach.($contents.
16360 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 20 3d 3d 3d 20 as.$key.=>.$value).{.if.($k.===.
16380 6e 75 6c 6c 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 6b 65 79 2c 20 61 72 72 61 79 28 27 63 null.&&.!in_array($key,.array('c
163a0 6f 6e 66 69 67 27 2c 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 29 29 29 20 7b 0a 63 6f 6e 74 onfig',.'repositories'))).{.cont
163c0 69 6e 75 65 3b 0a 7d 0a 0a 24 72 61 77 56 61 6c 20 3d 20 69 73 73 65 74 28 24 72 61 77 43 6f 6e inue;.}..$rawVal.=.isset($rawCon
163e0 74 65 6e 74 73 5b 24 6b 65 79 5d 29 20 3f 20 24 72 61 77 43 6f 6e 74 65 6e 74 73 5b 24 6b 65 79 tents[$key]).?.$rawContents[$key
16400 5d 20 3a 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 20 ].:.null;..if.(is_array($value).
16420 26 26 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 76 61 6c 75 65 29 29 20 7c 7c 20 &&.(!is_numeric(key($value)).||.
16440 28 24 6b 65 79 20 3d 3d 3d 20 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 20 26 26 20 6e 75 6c 6c ($key.===.'repositories'.&&.null
16460 20 3d 3d 3d 20 24 6b 29 29 29 20 7b 0a 24 6b 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 .===.$k))).{.$k..=.preg_replace(
16480 27 7b 5e 63 6f 6e 66 69 67 5c 2e 7d 27 2c 20 27 27 2c 20 24 6b 65 79 20 2e 20 27 2e 27 29 3b 0a '{^config\.}',.'',.$key...'.');.
164a0 24 74 68 69 73 2d 3e 6c 69 73 74 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 76 61 6c 75 65 2c $this->listConfiguration($value,
164c0 20 24 72 61 77 56 61 6c 2c 20 24 6f 75 74 70 75 74 2c 20 24 6b 29 3b 0a 0a 69 66 20 28 73 75 62 .$rawVal,.$output,.$k);..if.(sub
164e0 73 74 72 5f 63 6f 75 6e 74 28 24 6b 2c 20 27 2e 27 29 20 3e 20 31 29 20 7b 0a 24 6b 20 3d 20 73 str_count($k,.'.').>.1).{.$k.=.s
16500 74 72 5f 73 70 6c 69 74 28 24 6b 2c 20 73 74 72 72 70 6f 73 28 24 6b 2c 20 27 2e 27 2c 20 2d 32 tr_split($k,.strrpos($k,.'.',.-2
16520 29 29 3b 0a 24 6b 20 3d 20 24 6b 5b 30 5d 20 2e 20 27 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 ));.$k.=.$k[0]...'.';.}.else.{.$
16540 6b 20 3d 20 24 6f 72 69 67 4b 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 k.=.$origK;.}..continue;.}..if.(
16560 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 61 72 72 is_array($value)).{.$value.=.arr
16580 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 ay_map(function.($val).{.return.
165a0 69 73 5f 61 72 72 61 79 28 24 76 61 6c 29 20 3f 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 76 61 is_array($val).?.json_encode($va
165c0 6c 29 20 3a 20 24 76 61 6c 3b 0a 7d 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 24 76 61 6c 75 65 20 3d l).:.$val;.},.$value);..$value.=
165e0 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 76 61 6c 75 65 29 2e 27 5d 27 3b 0a .'['.implode(',.',.$value).']';.
16600 7d 0a 0a 69 66 20 28 69 73 5f 62 6f 6f 6c 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 76 61 6c 75 65 }..if.(is_bool($value)).{.$value
16620 20 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 76 61 6c 75 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a .=.var_export($value,.true);.}..
16640 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 72 61 77 56 61 6c 29 20 26 26 20 24 72 61 77 56 61 if.(is_string($rawVal).&&.$rawVa
16660 6c 20 21 3d 20 24 76 61 6c 75 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 l.!=.$value).{.$output->writeln(
16680 27 5b 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 6b 20 2e 20 24 6b 65 79 20 2e 20 27 3c 2f 63 6f '[<comment>'...$k...$key...'</co
166a0 6d 6d 65 6e 74 3e 5d 20 3c 69 6e 66 6f 3e 27 20 2e 20 24 72 61 77 56 61 6c 20 2e 20 27 20 28 27 mment>].<info>'...$rawVal...'.('
166c0 20 2e 20 24 76 61 6c 75 65 20 2e 20 27 29 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 6c 73 65 20 ...$value...')</info>');.}.else.
166e0 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 5b 3c 63 6f 6d 6d 65 6e 74 3e 27 20 {.$output->writeln('[<comment>'.
16700 2e 20 24 6b 20 2e 20 24 6b 65 79 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d 20 3c 69 6e 66 6f ..$k...$key...'</comment>].<info
16720 3e 27 20 2e 20 24 76 61 6c 75 65 20 2e 20 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 7d 0a 7d 0a >'...$value...'</info>');.}.}.}.
16740 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
16760 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 49 6e 73 poser\Command;..use.Composer\Ins
16780 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d taller;.use.Composer\Plugin\Comm
167a0 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c andEvent;.use.Composer\Plugin\Pl
167c0 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e uginEvents;.use.Symfony\Componen
167e0 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 0a t\Console\Input\InputInterface;.
16800 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
16820 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d put\InputOption;.use.Symfony\Com
16840 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
16860 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 rface;........class.InstallComma
16880 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 nd.extends.Command.{.protected.f
168a0 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 unction.configure().{.$this.->se
168c0 74 4e 61 6d 65 28 27 69 6e 73 74 61 6c 6c 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f tName('install').->setDescriptio
168e0 6e 28 27 49 6e 73 74 61 6c 6c 73 20 74 68 65 20 70 72 6f 6a 65 63 74 20 64 65 70 65 6e 64 65 6e n('Installs.the.project.dependen
16900 63 69 65 73 20 66 72 6f 6d 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 cies.from.the.composer.lock.file
16920 20 69 66 20 70 72 65 73 65 6e 74 2c 20 6f 72 20 66 61 6c 6c 73 20 62 61 63 6b 20 6f 6e 20 74 68 .if.present,.or.falls.back.on.th
16940 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 e.composer.json.').->setDefiniti
16960 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 on(array(.new.InputOption('prefe
16980 72 2d 73 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 r-source',.null,.InputOption::VA
169a0 4c 55 45 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 LUE_NONE,.'Forces.installation.f
169c0 72 6f 6d 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c rom.package.sources.when.possibl
169e0 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c e,.including.VCS.information.'),
16a00 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 .new.InputOption('prefer-dist',.
16a20 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,.'
16a40 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 Forces.installation.from.package
16a60 20 64 69 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a .dist.even.for.dev.versions.'),.
16a80 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 72 79 2d 72 75 6e 27 2c 20 6e 75 6c 6c 2c new.InputOption('dry-run',.null,
16aa0 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 75 74 70 75 .InputOption::VALUE_NONE,.'Outpu
16ac0 74 73 20 74 68 65 20 6f 70 65 72 61 74 69 6f 6e 73 20 62 75 74 20 77 69 6c 6c 20 6e 6f 74 20 65 ts.the.operations.but.will.not.e
16ae0 78 65 63 75 74 65 20 61 6e 79 74 68 69 6e 67 20 28 69 6d 70 6c 69 63 69 74 6c 79 20 65 6e 61 62 xecute.anything.(implicitly.enab
16b00 6c 65 73 20 2d 2d 76 65 72 62 6f 73 65 29 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 les.--verbose).'),.new.InputOpti
16b20 6f 6e 28 27 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c on('dev',.null,.InputOption::VAL
16b40 55 45 5f 4e 4f 4e 45 2c 20 27 45 6e 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f UE_NONE,.'Enables.installation.o
16b60 66 20 72 65 71 75 69 72 65 2d 64 65 76 20 70 61 63 6b 61 67 65 73 20 28 65 6e 61 62 6c 65 64 20 f.require-dev.packages.(enabled.
16b80 62 79 20 64 65 66 61 75 6c 74 2c 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 66 6f 72 20 42 43 29 by.default,.only.present.for.BC)
16ba0 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 64 65 76 27 2c 20 6e .'),.new.InputOption('no-dev',.n
16bc0 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 44 ull,.InputOption::VALUE_NONE,.'D
16be0 69 73 61 62 6c 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 72 65 71 75 69 72 65 2d isables.installation.of.require-
16c00 64 65 76 20 70 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e dev.packages.'),.new.InputOption
16c20 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e ('no-plugins',.null,.InputOption
16c40 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 73 20 61 6c 6c 20 70 6c 75 67 ::VALUE_NONE,.'Disables.all.plug
16c60 69 6e 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 63 75 73 74 ins.'),.new.InputOption('no-cust
16c80 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f om-installers',.null,.InputOptio
16ca0 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 45 50 52 45 43 41 54 45 44 3a 20 55 73 65 20 n::VALUE_NONE,.'DEPRECATED:.Use.
16cc0 6e 6f 2d 70 6c 75 67 69 6e 73 20 69 6e 73 74 65 61 64 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 no-plugins.instead.'),.new.Input
16ce0 4f 70 74 69 6f 6e 28 27 6e 6f 2d 73 63 72 69 70 74 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 Option('no-scripts',.null,.Input
16d00 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 6b 69 70 73 20 74 68 65 20 65 Option::VALUE_NONE,.'Skips.the.e
16d20 78 65 63 75 74 69 6f 6e 20 6f 66 20 61 6c 6c 20 73 63 72 69 70 74 73 20 64 65 66 69 6e 65 64 20 xecution.of.all.scripts.defined.
16d40 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 2e 27 29 2c 0a 6e 65 77 20 49 6e in.composer.json.file.'),.new.In
16d60 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 6e 75 6c 6c 2c 20 49 putOption('no-progress',.null,.I
16d80 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 nputOption::VALUE_NONE,.'Do.not.
16da0 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e 27 29 2c 0a 6e 65 77 output.download.progress.'),.new
16dc0 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c 76 76 7c 76 76 .InputOption('verbose',.'v|vv|vv
16de0 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 20 27 53 68 v',.InputOption::VALUE_NONE,.'Sh
16e00 6f 77 73 20 6d 6f 72 65 20 64 65 74 61 69 6c 73 20 69 6e 63 6c 75 64 69 6e 67 20 6e 65 77 20 63 ows.more.details.including.new.c
16e20 6f 6d 6d 69 74 73 20 70 75 6c 6c 65 64 20 69 6e 20 77 68 65 6e 20 75 70 64 61 74 69 6e 67 20 70 ommits.pulled.in.when.updating.p
16e40 61 63 6b 61 67 65 73 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f 70 74 ackages.'),.new.InputOption('opt
16e60 69 6d 69 7a 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f 70 74 imize-autoloader',.'o',.InputOpt
16e80 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 4f 70 74 69 6d 69 7a 65 20 61 75 74 6f 6c ion::VALUE_NONE,.'Optimize.autol
16ea0 6f 61 64 65 72 20 64 75 72 69 6e 67 20 61 75 74 6f 6c 6f 61 64 65 72 20 64 75 6d 70 27 29 0a 29 oader.during.autoloader.dump').)
16ec0 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 69 6e 73 ).->setHelp(<<<EOT.The.<info>ins
16ee0 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 20 74 68 65 20 63 6f tall</info>.command.reads.the.co
16f00 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 66 69 6c 65 20 66 72 6f 6d 0a 74 68 65 20 63 75 72 72 65 6e mposer.lock.file.from.the.curren
16f20 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 2c 20 61 6e 64 20 64 t.directory,.processes.it,.and.d
16f40 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 20 74 68 65 0a 6c 69 ownloads.and.installs.all.the.li
16f60 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 6f 75 74 6c 69 6e 65 braries.and.dependencies.outline
16f80 64 20 69 6e 20 74 68 61 74 20 66 69 6c 65 2e 20 49 66 20 74 68 65 20 66 69 6c 65 20 64 6f 65 73 d.in.that.file..If.the.file.does
16fa0 20 6e 6f 74 0a 65 78 69 73 74 20 69 74 20 77 69 6c 6c 20 6c 6f 6f 6b 20 66 6f 72 20 63 6f 6d 70 .not.exist.it.will.look.for.comp
16fc0 6f 73 65 72 2e 6a 73 6f 6e 20 61 6e 64 20 64 6f 20 74 68 65 20 73 61 6d 65 2e 0a 0a 3c 69 6e 66 oser.json.and.do.the.same...<inf
16fe0 6f 3e 70 68 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 o>php.composer.phar.install</inf
17000 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
17020 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,
17040 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 .OutputInterface.$output).{.if.(
17060 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 $input->getOption('no-custom-ins
17080 74 61 6c 6c 65 72 73 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 tallers')).{.$output->writeln('<
170a0 77 61 72 6e 69 6e 67 3e 59 6f 75 20 61 72 65 20 75 73 69 6e 67 20 74 68 65 20 64 65 70 72 65 63 warning>You.are.using.the.deprec
170c0 61 74 65 64 20 6f 70 74 69 6f 6e 20 22 6e 6f 2d 63 75 73 74 6f 6d 2d 69 6e 73 74 61 6c 6c 65 72 ated.option."no-custom-installer
170e0 73 22 2e 20 55 73 65 20 22 6e 6f 2d 70 6c 75 67 69 6e 73 22 20 69 6e 73 74 65 61 64 2e 3c 2f 77 s"..Use."no-plugins".instead.</w
17100 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6e 6f arning>');.$input->setOption('no
17120 2d 70 6c 75 67 69 6e 73 27 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d -plugins',.true);.}..$composer.=
17140 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 74 72 75 65 2c 20 24 69 6e 70 75 74 .$this->getComposer(true,.$input
17160 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 29 3b 0a 24 63 6f 6d ->getOption('no-plugins'));.$com
17180 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 2d 3e 73 65 74 poser->getDownloadManager()->set
171a0 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f OutputProgress(!$input->getOptio
171c0 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e n('no-progress'));.$io.=.$this->
171e0 67 65 74 49 4f 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f getIO();..$commandEvent.=.new.Co
17200 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 mmandEvent(PluginEvents::COMMAND
17220 2c 20 27 69 6e 73 74 61 6c 6c 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 ,.'install',.$input,.$output);.$
17240 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e composer->getEventDispatcher()->
17260 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 dispatch($commandEvent->getName(
17280 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c 20 3d 20 49 ),.$commandEvent);..$install.=.I
172a0 6e 73 74 61 6c 6c 65 72 3a 3a 63 72 65 61 74 65 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 nstaller::create($io,.$composer)
172c0 3b 0a 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 3b 0a 24 70 72 65 66 65 ;..$preferSource.=.false;.$prefe
172e0 72 44 69 73 74 20 3d 20 66 61 6c 73 65 3b 0a 73 77 69 74 63 68 20 28 24 63 6f 6d 70 6f 73 65 72 rDist.=.false;.switch.($composer
17300 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d 69 6e ->getConfig()->get('preferred-in
17320 73 74 61 6c 6c 27 29 29 20 7b 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 70 72 65 66 65 stall')).{.case.'source':.$prefe
17340 72 53 6f 75 72 63 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 64 69 73 rSource.=.true;.break;.case.'dis
17360 74 27 3a 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 t':.$preferDist.=.true;.break;.c
17380 61 73 65 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a ase.'auto':.default:...break;.}.
173a0 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f if.($input->getOption('prefer-so
173c0 75 72 63 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 urce').||.$input->getOption('pre
173e0 66 65 72 2d 64 69 73 74 27 29 29 20 7b 0a 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 24 69 fer-dist')).{.$preferSource.=.$i
17400 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 nput->getOption('prefer-source')
17420 3b 0a 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f ;.$preferDist.=.$input->getOptio
17440 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 29 3b 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 0a 2d 3e n('prefer-dist');.}..$install.->
17460 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 6e 28 27 64 72 79 setDryRun($input->getOption('dry
17480 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 74 2d 3e 67 65 74 -run')).->setVerbose($input->get
174a0 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 65 66 65 72 53 6f Option('verbose')).->setPreferSo
174c0 75 72 63 65 28 24 70 72 65 66 65 72 53 6f 75 72 63 65 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 urce($preferSource).->setPreferD
174e0 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 21 24 ist($preferDist).->setDevMode(!$
17500 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 64 65 76 27 29 29 0a 2d 3e 73 65 input->getOption('no-dev')).->se
17520 74 52 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 tRunScripts(!$input->getOption('
17540 6e 6f 2d 73 63 72 69 70 74 73 27 29 29 0a 2d 3e 73 65 74 4f 70 74 69 6d 69 7a 65 41 75 74 6f 6c no-scripts')).->setOptimizeAutol
17560 6f 61 64 65 72 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a oader($input->getOption('optimiz
17580 65 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 29 0a 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 e-autoloader')).;..if.($input->g
175a0 65 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 6c 75 67 69 6e 73 27 29 29 20 7b 0a 24 69 6e 73 74 61 etOption('no-plugins')).{.$insta
175c0 6c 6c 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 ll->disablePlugins();.}..return.
175e0 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a $install->run();.}.}.<?php......
17600 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 6d 61 6e 64 ......namespace.Composer\Command
17620 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 43 6f 6e 66 69 67 56 61 6c 69 64 ;..use.Composer\Util\ConfigValid
17640 61 74 6f 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 6e 73 ator;.use.Symfony\Component\Cons
17660 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 ole\Input\InputInterface;.use.Sy
17680 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
176a0 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 6e 65 putArgument;.use.Symfony\Compone
176c0 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
176e0 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 20 e;........class.ValidateCommand.
17700 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 extends.Command.{....protected.f
17720 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 unction.configure().{.$this.->se
17740 74 4e 61 6d 65 28 27 76 61 6c 69 64 61 74 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 tName('validate').->setDescripti
17760 6f 6e 28 27 56 61 6c 69 64 61 74 65 73 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 0a on('Validates.a.composer.json').
17780 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 ->setDefinition(array(.new.Input
177a0 41 72 67 75 6d 65 6e 74 28 27 66 69 6c 65 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a Argument('file',.InputArgument::
177c0 4f 50 54 49 4f 4e 41 4c 2c 20 27 70 61 74 68 20 74 6f 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e OPTIONAL,.'path.to.composer.json
177e0 20 66 69 6c 65 27 2c 20 27 2e 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 0a 29 29 0a 2d 3e .file',.'./composer.json').)).->
17800 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 76 61 6c 69 64 61 74 65 20 63 6f 6d 6d setHelp(<<<EOT.The.validate.comm
17820 61 6e 64 20 76 61 6c 69 64 61 74 65 73 20 61 20 67 69 76 65 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a and.validates.a.given.composer.j
17840 73 6f 6e 0a 0a 45 4f 54 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 son..EOT.);.}........protected.f
17860 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.$
17880 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).
178a0 7b 0a 24 66 69 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 66 {.$file.=.$input->getArgument('f
178c0 69 6c 65 27 29 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 29 29 ile');..if.(!file_exists($file))
178e0 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 72 3e 27 20 2e 20 .{.$output->writeln('<error>'...
17900 24 66 69 6c 65 20 2e 20 27 20 6e 6f 74 20 66 6f 75 6e 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a $file...'.not.found.</error>');.
17920 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 .return.1;.}.if.(!is_readable($f
17940 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 ile)).{.$output->writeln('<error
17960 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 2e 3c >'...$file...'.is.not.readable.<
17980 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 76 61 6c 69 64 61 /error>');..return.1;.}..$valida
179a0 74 6f 72 20 3d 20 6e 65 77 20 43 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 28 24 74 68 69 73 2d tor.=.new.ConfigValidator($this-
179c0 3e 67 65 74 49 4f 28 29 29 3b 0a 6c 69 73 74 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 >getIO());.list($errors,.$publis
179e0 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 29 20 3d 20 24 76 61 6c 69 64 61 74 6f 72 hErrors,.$warnings).=.$validator
17a00 2d 3e 76 61 6c 69 64 61 74 65 28 24 66 69 6c 65 29 3b 0a 0a 0a 20 69 66 20 28 21 24 65 72 72 6f ->validate($file);....if.(!$erro
17a20 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 21 24 77 61 72 6e 69 rs.&&.!$publishErrors.&&.!$warni
17a40 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 3c 69 6e 66 6f 3e 27 ngs).{.$output->writeln('<info>'
17a60 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 66 6f 3e 27 29 3b 0a ...$file...'.is.valid</info>');.
17a80 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 75 62 6c 69 73 68 45 }.elseif.(!$errors.&&.!$publishE
17aa0 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 28 27 3c 69 6e 66 6f rrors).{.$output->writeln('<info
17ac0 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 62 75 74 20 77 69 74 >'...$file...'.is.valid,.but.wit
17ae0 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 3b 0a 24 6f 75 74 70 h.a.few.warnings</info>');.$outp
17b00 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 20 68 74 74 70 3a 2f ut->writeln('<warning>See.http:/
17b20 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 63 68 65 6d 61 2e 6d /getcomposer.org/doc/04-schema.m
17b40 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 6d 61 3c 2f 77 61 72 d.for.details.on.the.schema</war
17b60 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 72 73 29 20 7b 0a 24 ning>');.}.elseif.(!$errors).{.$
17b80 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 27 20 2e 20 24 66 69 6c 65 output->writeln('<info>'...$file
17ba0 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 75 73 61 67 65 20 77 ...'.is.valid.for.simple.usage.w
17bc0 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 6f 3e 27 29 3b 0a 24 ith.composer.but.has</info>');.$
17be0 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 72 69 63 74 20 65 72 output->writeln('<info>strict.er
17c00 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 74 6f 20 62 65 20 70 rors.that.make.it.unable.to.be.p
17c20 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 6e 66 6f 3e 27 29 3b ublished.as.a.package:</info>');
17c40 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 20 .$output->writeln('<warning>See.
17c60 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 63 http://getcomposer.org/doc/04-sc
17c80 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 6d hema.md.for.details.on.the.schem
17ca0 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 6f 75 74 70 75 74 2d a</warning>');.}.else.{.$output-
17cc0 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 20 2e 20 24 66 69 6c 65 20 2e 20 27 20 69 >writeln('<error>'...$file...'.i
17ce0 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 65 72 72 6f 72 73 2f s.invalid,.the.following.errors/
17d00 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 6f 72 3e 27 29 3b 0a warnings.were.found:</error>');.
17d20 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 72 6f 72 27 20 3d 3e }..$messages.=.array(.'error'.=>
17d40 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 62 6c 69 73 68 45 72 .array_merge($errors,.$publishEr
17d60 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 69 6e 67 73 2c 0a 29 rors),.'warning'.=>.$warnings,.)
17d80 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 24 73 74 79 6c 65 20 ;..foreach.($messages.as.$style.
17da0 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 73 20 61 73 20 24 6d =>.$msgs).{.foreach.($msgs.as.$m
17dc0 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 27 20 2e 20 24 73 74 sg).{.$output->writeln('<'...$st
17de0 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 20 24 73 74 79 6c 65 yle...'>'...$msg...'</'...$style
17e00 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 6f 72 73 20 7c 7c 20 ...'>');.}.}..return.$errors.||.
17e20 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 0a 7d 0a 3c 3f 70 68 $publishErrors.?.1.:.0;.}.}.<?ph
17e40 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\
17e60 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 Command;..use.Composer\Dependenc
17e80 79 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 50 6c 75 yResolver\Pool;.use.Composer\Plu
17ea0 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 gin\CommandEvent;.use.Composer\P
17ec0 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c lugin\PluginEvents;.use.Symfony\
17ee0 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 49 6e 74 Component\Console\Input\InputInt
17f00 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 5c 43 6f erface;.use.Symfony\Component\Co
17f20 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 nsole\Input\InputArgument;.use.S
17f40 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 ymfony\Component\Console\Input\I
17f60 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e nputOption;.use.Symfony\Componen
17f80 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 t\Console\Output\OutputInterface
17fa0 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e 64 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 ;......class.DependsCommand.exte
17fc0 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 69 6e 6b 54 79 70 nds.Command.{.protected.$linkTyp
17fe0 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 72 61 79 28 27 es.=.array(.'require'.=>.array('
18000 72 65 71 75 69 72 65 73 27 2c 20 27 72 65 71 75 69 72 65 73 27 29 2c 0a 27 72 65 71 75 69 72 65 requires',.'requires'),.'require
18020 2d 64 65 76 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 76 52 65 71 75 69 72 65 73 27 2c 20 27 72 -dev'.=>.array('devRequires',.'r
18040 65 71 75 69 72 65 73 20 28 64 65 76 29 27 29 2c 0a 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 equires.(dev)'),.);..protected.f
18060 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 unction.configure().{.$this.->se
18080 74 4e 61 6d 65 28 27 64 65 70 65 6e 64 73 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f tName('depends').->setDescriptio
180a0 6e 28 27 53 68 6f 77 73 20 77 68 69 63 68 20 70 61 63 6b 61 67 65 73 20 64 65 70 65 6e 64 20 6f n('Shows.which.packages.depend.o
180c0 6e 20 74 68 65 20 67 69 76 65 6e 20 70 61 63 6b 61 67 65 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e n.the.given.package').->setDefin
180e0 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 27 ition(array(.new.InputArgument('
18100 70 61 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 package',.InputArgument::REQUIRE
18120 44 2c 20 27 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 D,.'Package.to.inspect'),.new.In
18140 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 2c 20 27 27 2c 20 49 6e 70 75 74 putOption('link-type',.'',.Input
18160 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 7c 20 49 6e 70 75 74 4f 70 Option::VALUE_REQUIRED.|.InputOp
18180 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 2c 20 27 4c 69 6e 6b 20 74 79 70 65 tion::VALUE_IS_ARRAY,.'Link.type
181a0 73 20 74 6f 20 73 68 6f 77 20 28 72 65 71 75 69 72 65 2c 20 72 65 71 75 69 72 65 2d 64 65 76 29 s.to.show.(require,.require-dev)
181c0 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 73 29 29 ',.array_keys($this->linkTypes))
181e0 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 44 69 73 70 6c 61 79 73 20 64 ,.)).->setHelp(<<<EOT.Displays.d
18200 65 74 61 69 6c 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 77 68 65 72 65 20 etailed.information.about.where.
18220 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 0a 3c 69 6e 66 6f 3e a.package.is.referenced...<info>
18240 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 20 63 6f 6d 70 6f 73 php.composer.phar.depends.compos
18260 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 0a 3b 0a 7d 0a 0a 70 er/composer</info>..EOT.).;.}..p
18280 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 rotected.function.execute(InputI
182a0 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
182c0 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 74 68 69 73 2d 3e 67 .$output).{.$composer.=.$this->g
182e0 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e etComposer();..$commandEvent.=.n
18300 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f ew.CommandEvent(PluginEvents::CO
18320 4d 4d 41 4e 44 2c 20 27 64 65 70 65 6e 64 73 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 MMAND,.'depends',.$input,.$outpu
18340 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 t);.$composer->getEventDispatche
18360 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 r()->dispatch($commandEvent->get
18380 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 72 65 70 6f 20 3d Name(),.$commandEvent);..$repo.=
183a0 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
183c0 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 24 6e 65 65 64 6c ()->getLocalRepository();.$needl
183e0 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 61 63 6b 61 67 65 e.=.$input->getArgument('package
18400 27 29 3b 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 28 29 3b 0a 24 70 6f 6f 6c 2d 3e ');..$pool.=.new.Pool();.$pool->
18420 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 0a 24 70 61 63 6b 61 67 65 73 addRepository($repo);..$packages
18440 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 65 65 64 6c 65 29 3b .=.$pool->whatProvides($needle);
18460 0a 69 66 20 28 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e .if.(empty($packages)).{.throw.n
18480 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 43 6f ew.\InvalidArgumentException('Co
184a0 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 70 61 63 6b 61 67 65 20 22 27 2e 24 6e 65 65 64 6c 65 2e uld.not.find.package."'.$needle.
184c0 27 22 20 69 6e 20 79 6f 75 72 20 70 72 6f 6a 65 63 74 2e 27 29 3b 0a 7d 0a 0a 24 6c 69 6e 6b 54 '".in.your.project.');.}..$linkT
184e0 79 70 65 73 20 3d 20 24 74 68 69 73 2d 3e 6c 69 6e 6b 54 79 70 65 73 3b 0a 0a 24 74 79 70 65 73 ypes.=.$this->linkTypes;..$types
18500 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 74 79 70 65 29 20 75 73 .=.array_map(function.($type).us
18520 65 20 28 24 6c 69 6e 6b 54 79 70 65 73 29 20 7b 0a 24 74 79 70 65 20 3d 20 72 74 72 69 6d 28 24 e.($linkTypes).{.$type.=.rtrim($
18540 74 79 70 65 2c 20 27 73 27 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6c 69 6e 6b 54 79 70 65 type,.'s');.if.(!isset($linkType
18560 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 64 41 s[$type])).{.throw.new.\InvalidA
18580 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 69 6e rgumentException('Unexpected.lin
185a0 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 3a 20 k.type:.'.$type.',.valid.types:.
185c0 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 6c 69 6e 6b '.implode(',.',.array_keys($link
185e0 54 79 70 65 73 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 79 70 65 3b 0a 7d 2c 20 24 69 Types)));.}..return.$type;.},.$i
18600 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 6e 6b 2d 74 79 70 65 27 29 29 3b 0a 0a nput->getOption('link-type'));..
18620 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 75 74 70 75 74 50 61 63 6b $messages.=.array();.$outputPack
18640 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 72 65 70 6f 2d 3e ages.=.array();.foreach.($repo->
18660 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 66 6f 72 getPackages().as.$package).{.for
18680 65 61 63 68 20 28 24 74 79 70 65 73 20 61 73 20 24 74 79 70 65 29 20 7b 0a 66 6f 72 65 61 63 68 each.($types.as.$type).{.foreach
186a0 20 28 24 70 61 63 6b 61 67 65 2d 3e 7b 27 67 65 74 27 2e 24 6c 69 6e 6b 54 79 70 65 73 5b 24 74 .($package->{'get'.$linkTypes[$t
186c0 79 70 65 5d 5b 30 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 ype][0]}().as.$link).{.if.($link
186e0 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 6e 65 65 64 6c 65 29 20 7b 0a 69 66 20 ->getTarget().===.$needle).{.if.
18700 28 21 69 73 73 65 74 28 24 6f 75 74 70 75 74 50 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 (!isset($outputPackages[$package
18720 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 ->getName()])).{.$messages[].=.'
18740 3c 69 6e 66 6f 3e 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 <info>'.$package->getPrettyName(
18760 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 27 20 2e 20 24 6c 69 6e 6b 54 79 70 65 73 5b 24 74 79 70 )...'</info>.'...$linkTypes[$typ
18780 65 5d 5b 31 5d 20 2e 20 27 20 27 20 2e 20 24 6e 65 65 64 6c 65 20 2e 27 20 28 3c 69 6e 66 6f 3e e][1]...'.'...$needle..'.(<info>
187a0 27 20 2e 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 '...$link->getPrettyConstraint()
187c0 20 2e 20 27 3c 2f 69 6e 66 6f 3e 29 27 3b 0a 24 6f 75 74 70 75 74 50 61 63 6b 61 67 65 73 5b 24 ...'</info>)';.$outputPackages[$
187e0 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a package->getName()].=.true;.}.}.
18800 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6d 65 73 73 61 67 65 73 29 20 7b 0a 73 6f 72 74 28 24 6d 65 }.}.}..if.($messages).{.sort($me
18820 73 73 61 67 65 73 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 6d 65 73 73 61 ssages);.$output->writeln($messa
18840 67 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 ges);.}.else.{.$output->writeln(
18860 27 3c 69 6e 66 6f 3e 54 68 65 72 65 20 69 73 20 6e 6f 20 69 6e 73 74 61 6c 6c 65 64 20 70 61 63 '<info>There.is.no.installed.pac
18880 6b 61 67 65 20 64 65 70 65 6e 64 69 6e 67 20 6f 6e 20 22 27 2e 24 6e 65 65 64 6c 65 2e 27 22 2e kage.depending.on."'.$needle.'".
188a0 3c 2f 69 6e 66 6f 3e 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 </info>');.}.}.}.<?php..........
188c0 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 0a 75 ..namespace.Composer\Command;..u
188e0 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
18900 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
18920 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
18940 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
18960 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
18980 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
189a0 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
189c0 74 6f 72 79 5c 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f tory\CompositeRepository;.use.Co
189e0 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 69 mposer\Repository\PlatformReposi
18a00 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 52 65 tory;.use.Composer\Repository\Re
18a20 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\
18a40 46 61 63 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d Factory;.use.Composer\Plugin\Com
18a60 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 mandEvent;.use.Composer\Plugin\P
18a80 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 65 61 72 63 68 43 6f 6d luginEvents;.....class.SearchCom
18aa0 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 mand.extends.Command.{.protected
18ac0 20 24 6d 61 74 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 77 4d 61 74 63 68 65 73 .$matches;.protected.$lowMatches
18ae0 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 6f 6b 65 6e 73 3b 0a 70 .=.array();.protected.$tokens;.p
18b00 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 6e 6c rotected.$output;.protected.$onl
18b20 79 4e 61 6d 65 3b 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 yName;..protected.function.confi
18b40 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 63 68 gure().{.$this.->setName('search
18b60 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 72 20 ').->setDescription('Search.for.
18b80 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 packages').->setDefinition(array
18ba0 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f 6e 6c 79 2d 6e 61 6d 65 27 2c 20 27 (.new.InputOption('only-name',.'
18bc0 4e 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 53 65 N',.InputOption::VALUE_NONE,.'Se
18be0 61 72 63 68 20 6f 6e 6c 79 20 69 6e 20 6e 61 6d 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 41 72 arch.only.in.name'),.new.InputAr
18c00 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a gument('tokens',.InputArgument::
18c20 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 IS_ARRAY.|.InputArgument::REQUIR
18c40 45 44 2c 20 27 74 6f 6b 65 6e 73 20 74 6f 20 73 65 61 72 63 68 20 66 6f 72 27 29 2c 0a 29 29 0a ED,.'tokens.to.search.for'),.)).
18c60 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 73 65 61 72 63 68 20 63 6f 6d 6d ->setHelp(<<<EOT.The.search.comm
18c80 61 6e 64 20 73 65 61 72 63 68 65 73 20 66 6f 72 20 70 61 63 6b 61 67 65 73 20 62 79 20 69 74 73 and.searches.for.packages.by.its
18ca0 20 6e 61 6d 65 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 73 65 .name.<info>php.composer.phar.se
18cc0 61 72 63 68 20 73 79 6d 66 6f 6e 79 20 63 6f 6d 70 6f 73 65 72 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f arch.symfony.composer</info>..EO
18ce0 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 63 T.).;.}..protected.function.exec
18d00 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 75 ute(InputInterface.$input,.Outpu
18d20 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 70 6c 61 74 66 6f 72 tInterface.$output).{...$platfor
18d40 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 3b 0a mRepo.=.new.PlatformRepository;.
18d60 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
18d80 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
18da0 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
18dc0 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
18de0 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
18e00 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));.$
18e20 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(
18e40 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
18e60 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
18e80 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
18ea0 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
18ec0 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
18ee0 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
18f00 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.
18f20 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
18f40 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
18f60 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.=
18f80 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
18fa0 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
18fc0 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
18fe0 73 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 7b 0a 24 63 6f 6d 6d 61 6e s));.}..if.($composer).{.$comman
19000 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e dEvent.=.new.CommandEvent(Plugin
19020 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 73 65 61 72 63 68 27 2c 20 24 69 6e 70 75 Events::COMMAND,.'search',.$inpu
19040 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 t,.$output);.$composer->getEvent
19060 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 Dispatcher()->dispatch($commandE
19080 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b vent->getName(),.$commandEvent);
190a0 0a 7d 0a 0a 24 6f 6e 6c 79 4e 61 6d 65 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f .}..$onlyName.=.$input->getOptio
190c0 6e 28 27 6f 6e 6c 79 2d 6e 61 6d 65 27 29 3b 0a 0a 24 66 6c 61 67 73 20 3d 20 24 6f 6e 6c 79 4e n('only-name');..$flags.=.$onlyN
190e0 61 6d 65 20 3f 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3a 3a 53 45 41 52 43 ame.?.RepositoryInterface::SEARC
19100 48 5f 4e 41 4d 45 20 3a 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3a 3a 53 45 H_NAME.:.RepositoryInterface::SE
19120 41 52 43 48 5f 46 55 4c 4c 54 45 58 54 3b 0a 24 72 65 73 75 6c 74 73 20 3d 20 24 72 65 70 6f 73 ARCH_FULLTEXT;.$results.=.$repos
19140 2d 3e 73 65 61 72 63 68 28 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 69 6e 70 75 74 2d 3e 67 65 ->search(implode('.',.$input->ge
19160 74 41 72 67 75 6d 65 6e 74 28 27 74 6f 6b 65 6e 73 27 29 29 2c 20 24 66 6c 61 67 73 29 3b 0a 0a tArgument('tokens')),.$flags);..
19180 66 6f 72 65 61 63 68 20 28 24 72 65 73 75 6c 74 73 20 61 73 20 24 72 65 73 75 6c 74 29 20 7b 0a foreach.($results.as.$result).{.
191a0 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 72 65 73 75 6c 74 5b 27 6e 61 6d 65 27 5d $output->writeln($result['name']
191c0 20 2e 20 28 69 73 73 65 74 28 24 72 65 73 75 6c 74 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d ...(isset($result['description']
191e0 29 20 3f 20 27 20 27 2e 20 24 72 65 73 75 6c 74 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 20 ).?.'.'..$result['description'].
19200 3a 20 27 27 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e :.''));.}.}.}.<?php............n
19220 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 20 amespace.Composer\Command;..use.
19240 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 65 72 5c Composer\Composer;.use.Composer\
19260 46 61 63 74 6f 72 79 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 Factory;.use.Composer\Util\Files
19280 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 52 65 6d 6f 74 65 46 ystem;.use.Composer\Util\RemoteF
192a0 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 ilesystem;.use.Composer\Download
192c0 65 72 5c 46 69 6c 65 73 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 er\FilesystemException;.use.Symf
192e0 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
19300 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e tInterface;.use.Symfony\Componen
19320 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 t\Console\Input\InputOption;.use
19340 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
19360 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 70 \InputArgument;.use.Symfony\Comp
19380 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
193a0 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d face;.......class.SelfUpdateComm
193c0 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 63 6f 6e 73 74 20 48 4f 4d 45 and.extends.Command.{.const.HOME
193e0 50 41 47 45 20 3d 20 27 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 27 3b 0a 63 6f 6e 73 74 20 PAGE.=.'getcomposer.org';.const.
19400 4f 4c 44 5f 49 4e 53 54 41 4c 4c 5f 45 58 54 20 3d 20 27 2d 6f 6c 64 2e 70 68 61 72 27 3b 0a 0a OLD_INSTALL_EXT.=.'-old.phar';..
19420 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 0a 7b protected.function.configure().{
19440 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 65 6c 66 2d 75 70 64 61 74 65 27 29 0a .$this.->setName('self-update').
19460 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 73 65 6c 66 75 70 64 61 74 65 27 29 ->setAliases(array('selfupdate')
19480 29 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 63 6f 6d 70 ).->setDescription('Updates.comp
194a0 6f 73 65 72 2e 70 68 61 72 20 74 6f 20 74 68 65 20 6c 61 74 65 73 74 20 76 65 72 73 69 6f 6e 2e oser.phar.to.the.latest.version.
194c0 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e ').->setDefinition(array(.new.In
194e0 70 75 74 4f 70 74 69 6f 6e 28 27 72 6f 6c 6c 62 61 63 6b 27 2c 20 27 72 27 2c 20 49 6e 70 75 74 putOption('rollback',.'r',.Input
19500 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 52 65 76 65 72 74 20 74 6f 20 61 Option::VALUE_NONE,.'Revert.to.a
19520 6e 20 6f 6c 64 65 72 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 63 6f 6d 70 6f 73 65 72 n.older.installation.of.composer
19540 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 63 6c 65 61 6e 2d 62 61 63 6b 75 '),.new.InputOption('clean-backu
19560 70 73 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f ps',.null,.InputOption::VALUE_NO
19580 4e 45 2c 20 27 44 65 6c 65 74 65 20 6f 6c 64 20 62 61 63 6b 75 70 73 20 64 75 72 69 6e 67 20 61 NE,.'Delete.old.backups.during.a
195a0 6e 20 75 70 64 61 74 65 2e 20 54 68 69 73 20 6d 61 6b 65 73 20 74 68 65 20 63 75 72 72 65 6e 74 n.update..This.makes.the.current
195c0 20 76 65 72 73 69 6f 6e 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 74 68 65 20 6f 6e 6c 79 20 62 61 .version.of.composer.the.only.ba
195e0 63 6b 75 70 20 61 76 61 69 6c 61 62 6c 65 20 61 66 74 65 72 20 74 68 65 20 75 70 64 61 74 65 27 ckup.available.after.the.update'
19600 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 73 69 6f 6e 27 2c 20 ),.new.InputArgument('version',.
19620 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 54 68 65 20 76 65 InputArgument::OPTIONAL,.'The.ve
19640 72 73 69 6f 6e 20 74 6f 20 75 70 64 61 74 65 20 74 6f 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 rsion.to.update.to'),.)).->setHe
19660 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 65 3c lp(<<<EOT.The.<info>self-update<
19680 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 73 65 /info>.command.checks.getcompose
196a0 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 6d 70 r.org.for.newer.versions.of.comp
196c0 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 65 20 oser.and.if.found,.installs.the.
196e0 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 61 72 latest...<info>php.composer.phar
19700 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 0a 0a .self-update</info>..EOT.).;.}..
19720 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 protected.function.execute(Input
19740 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 Interface.$input,.OutputInterfac
19760 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 62 61 73 65 55 72 6c 20 3d 20 28 65 78 74 65 6e 73 69 e.$output).{.$baseUrl.=.(extensi
19780 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a on_loaded('openssl').?.'https'.:
197a0 20 27 68 74 74 70 27 29 20 2e 20 27 3a 2f 2f 27 20 2e 20 73 65 6c 66 3a 3a 48 4f 4d 45 50 41 47 .'http')...'://'...self::HOMEPAG
197c0 45 3b 0a 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 52 65 6d 6f 74 E;.$remoteFilesystem.=.new.Remot
197e0 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 3b 0a 24 63 6f eFilesystem($this->getIO());.$co
19800 6e 66 69 67 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a nfig.=.Factory::createConfig();.
19820 24 63 61 63 68 65 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d $cacheDir.=.$config->get('cache-
19840 64 69 72 27 29 3b 0a 24 72 6f 6c 6c 62 61 63 6b 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 dir');.$rollbackDir.=.$config->g
19860 65 74 28 27 68 6f 6d 65 27 29 3b 0a 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 20 3d 20 72 65 61 et('home');.$localFilename.=.rea
19880 6c 70 61 74 68 28 24 5f 53 45 52 56 45 52 5b 27 61 72 67 76 27 5d 5b 30 5d 29 20 3f 3a 20 24 5f lpath($_SERVER['argv'][0]).?:.$_
198a0 53 45 52 56 45 52 5b 27 61 72 67 76 27 5d 5b 30 5d 3b 0a 0a 0a 20 24 74 6d 70 44 69 72 20 3d 20 SERVER['argv'][0];....$tmpDir.=.
198c0 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 is_writable(dirname($localFilena
198e0 6d 65 29 29 20 3f 20 64 69 72 6e 61 6d 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 20 3a me)).?.dirname($localFilename).:
19900 20 24 63 61 63 68 65 44 69 72 3b 0a 0a 0a 20 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 .$cacheDir;....if.(!is_writable(
19920 24 74 6d 70 44 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d $tmpDir)).{.throw.new.Filesystem
19940 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f 73 65 72 20 75 70 64 61 74 65 20 66 61 69 6c 65 Exception('Composer.update.faile
19960 64 3a 20 74 68 65 20 22 27 2e 24 74 6d 70 44 69 72 2e 27 22 20 64 69 72 65 63 74 6f 72 79 20 75 d:.the."'.$tmpDir.'".directory.u
19980 73 65 64 20 74 6f 20 64 6f 77 6e 6c 6f 61 64 20 74 68 65 20 74 65 6d 70 20 66 69 6c 65 20 63 6f sed.to.download.the.temp.file.co
199a0 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 74 74 65 6e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f uld.not.be.written');.}.if.(!is_
199c0 77 72 69 74 61 62 6c 65 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f writable($localFilename)).{.thro
199e0 77 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f w.new.FilesystemException('Compo
19a00 73 65 72 20 75 70 64 61 74 65 20 66 61 69 6c 65 64 3a 20 74 68 65 20 22 27 2e 24 6c 6f 63 61 6c ser.update.failed:.the."'.$local
19a20 46 69 6c 65 6e 61 6d 65 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 Filename.'".file.could.not.be.wr
19a40 69 74 74 65 6e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f itten');.}..if.($input->getOptio
19a60 6e 28 27 72 6f 6c 6c 62 61 63 6b 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 n('rollback')).{.return.$this->r
19a80 6f 6c 6c 62 61 63 6b 28 24 6f 75 74 70 75 74 2c 20 24 72 6f 6c 6c 62 61 63 6b 44 69 72 2c 20 24 ollback($output,.$rollbackDir,.$
19aa0 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 3b 0a 7d 0a 0a 24 6c 61 74 65 73 74 56 65 72 73 69 6f localFilename);.}..$latestVersio
19ac0 6e 20 3d 20 74 72 69 6d 28 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 43 n.=.trim($remoteFilesystem->getC
19ae0 6f 6e 74 65 6e 74 73 28 73 65 6c 66 3a 3a 48 4f 4d 45 50 41 47 45 2c 20 24 62 61 73 65 55 72 6c ontents(self::HOMEPAGE,.$baseUrl
19b00 2e 20 27 2f 76 65 72 73 69 6f 6e 27 2c 20 66 61 6c 73 65 29 29 3b 0a 24 75 70 64 61 74 65 56 65 ..'/version',.false));.$updateVe
19b20 72 73 69 6f 6e 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 76 65 72 rsion.=.$input->getArgument('ver
19b40 73 69 6f 6e 27 29 20 3f 3a 20 24 6c 61 74 65 73 74 56 65 72 73 69 6f 6e 3b 0a 0a 69 66 20 28 70 sion').?:.$latestVersion;..if.(p
19b60 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 30 2d 39 61 2d 66 5d 7b 34 30 7d 24 7d 27 2c 20 24 75 reg_match('{^[0-9a-f]{40}$}',.$u
19b80 70 64 61 74 65 56 65 72 73 69 6f 6e 29 20 26 26 20 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e 20 pdateVersion).&&.$updateVersion.
19ba0 21 3d 3d 20 24 6c 61 74 65 73 74 56 65 72 73 69 6f 6e 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 !==.$latestVersion).{.$output->w
19bc0 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 59 6f 75 20 63 61 6e 20 6e 6f 74 20 75 70 64 61 74 riteln('<error>You.can.not.updat
19be0 65 20 74 6f 20 61 20 73 70 65 63 69 66 69 63 20 53 48 41 2d 31 20 61 73 20 74 68 6f 73 65 20 70 e.to.a.specific.SHA-1.as.those.p
19c00 68 61 72 73 20 61 72 65 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 66 6f 72 20 64 6f 77 6e 6c hars.are.not.available.for.downl
19c20 6f 61 64 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 69 66 20 oad</error>');..return.1;.}..if.
19c40 28 43 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 3d 3d 3d 20 24 75 70 64 61 74 65 56 65 (Composer::VERSION.===.$updateVe
19c60 72 73 69 6f 6e 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 rsion).{.$output->writeln('<info
19c80 3e 59 6f 75 20 61 72 65 20 61 6c 72 65 61 64 79 20 75 73 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 >You.are.already.using.composer.
19ca0 76 65 72 73 69 6f 6e 20 27 2e 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e 2e 27 2e 3c 2f 69 6e 66 version.'.$updateVersion.'.</inf
19cc0 6f 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 74 65 6d 70 46 69 6c 65 6e 61 6d o>');..return.0;.}..$tempFilenam
19ce0 65 20 3d 20 24 74 6d 70 44 69 72 20 2e 20 27 2f 27 20 2e 20 62 61 73 65 6e 61 6d 65 28 24 6c 6f e.=.$tmpDir...'/'...basename($lo
19d00 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 27 2e 70 68 61 72 27 29 2e 27 2d 74 65 6d 70 2e 70 68 61 calFilename,.'.phar').'-temp.pha
19d20 72 27 3b 0a 24 62 61 63 6b 75 70 46 69 6c 65 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 25 73 2f 25 r';.$backupFile.=.sprintf(.'%s/%
19d40 73 2d 25 73 25 73 27 2c 0a 24 72 6f 6c 6c 62 61 63 6b 44 69 72 2c 0a 73 74 72 74 72 28 43 6f 6d s-%s%s',.$rollbackDir,.strtr(Com
19d60 70 6f 73 65 72 3a 3a 52 45 4c 45 41 53 45 5f 44 41 54 45 2c 20 27 20 3a 27 2c 20 27 5f 2d 27 29 poser::RELEASE_DATE,.'.:',.'_-')
19d80 2c 0a 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5b 30 2d 39 61 2d 66 5d 7b 37 7d 29 5b ,.preg_replace('{^([0-9a-f]{7})[
19da0 30 2d 39 61 2d 66 5d 7b 33 33 7d 24 7d 27 2c 20 27 24 31 27 2c 20 43 6f 6d 70 6f 73 65 72 3a 3a 0-9a-f]{33}$}',.'$1',.Composer::
19dc0 56 45 52 53 49 4f 4e 29 2c 0a 73 65 6c 66 3a 3a 4f 4c 44 5f 49 4e 53 54 41 4c 4c 5f 45 58 54 0a VERSION),.self::OLD_INSTALL_EXT.
19de0 29 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 22 55 70 );..$output->writeln(sprintf("Up
19e00 64 61 74 69 6e 67 20 74 6f 20 76 65 72 73 69 6f 6e 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f dating.to.version.<info>%s</info
19e20 3e 2e 22 2c 20 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e 29 29 3b 0a 24 72 65 6d 6f 74 65 46 69 >.",.$updateVersion));.$remoteFi
19e40 6c 65 6e 61 6d 65 20 3d 20 24 62 61 73 65 55 72 6c 20 2e 20 28 70 72 65 67 5f 6d 61 74 63 68 28 lename.=.$baseUrl...(preg_match(
19e60 27 7b 5e 5b 30 2d 39 61 2d 66 5d 7b 34 30 7d 24 7d 27 2c 20 24 75 70 64 61 74 65 56 65 72 73 69 '{^[0-9a-f]{40}$}',.$updateVersi
19e80 6f 6e 29 20 3f 20 27 2f 63 6f 6d 70 6f 73 65 72 2e 70 68 61 72 27 20 3a 20 22 2f 64 6f 77 6e 6c on).?.'/composer.phar'.:."/downl
19ea0 6f 61 64 2f 7b 24 75 70 64 61 74 65 56 65 72 73 69 6f 6e 7d 2f 63 6f 6d 70 6f 73 65 72 2e 70 68 oad/{$updateVersion}/composer.ph
19ec0 61 72 22 29 3b 0a 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 63 6f 70 79 28 73 65 ar");.$remoteFilesystem->copy(se
19ee0 6c 66 3a 3a 48 4f 4d 45 50 41 47 45 2c 20 24 72 65 6d 6f 74 65 46 69 6c 65 6e 61 6d 65 2c 20 24 lf::HOMEPAGE,.$remoteFilename,.$
19f00 74 65 6d 70 46 69 6c 65 6e 61 6d 65 29 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 tempFilename);.if.(!file_exists(
19f20 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 $tempFilename)).{.$output->write
19f40 6c 6e 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 64 6f 77 6e 6c 6f 61 64 20 6f 66 20 74 68 65 20 6e ln('<error>The.download.of.the.n
19f60 65 77 20 63 6f 6d 70 6f 73 65 72 20 76 65 72 73 69 6f 6e 20 66 61 69 6c 65 64 20 66 6f 72 20 61 ew.composer.version.failed.for.a
19f80 6e 20 75 6e 65 78 70 65 63 74 65 64 20 72 65 61 73 6f 6e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 n.unexpected.reason');..return.1
19fa0 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 63 6c ;.}....if.($input->getOption('cl
19fc0 65 61 6e 2d 62 61 63 6b 75 70 73 27 29 29 20 7b 0a 24 66 69 6c 65 73 20 3d 20 24 74 68 69 73 2d ean-backups')).{.$files.=.$this-
19fe0 3e 67 65 74 4f 6c 64 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 46 69 6c 65 73 28 24 72 6f 6c 6c 62 61 >getOldInstallationFiles($rollba
1a000 63 6b 44 69 72 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 66 69 6c 65 73 29 29 20 7b 0a 24 ckDir);..if.(!empty($files)).{.$
1a020 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 fs.=.new.Filesystem;..foreach.($
1a040 66 69 6c 65 73 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 files.as.$file).{.$output->write
1a060 6c 6e 28 27 3c 69 6e 66 6f 3e 52 65 6d 6f 76 69 6e 67 3a 20 27 2e 24 66 69 6c 65 29 3b 0a 24 66 ln('<info>Removing:.'.$file);.$f
1a080 73 2d 3e 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 65 72 s->remove($file);.}.}.}..if.($er
1a0a0 72 20 3d 20 24 74 68 69 73 2d 3e 73 65 74 4c 6f 63 61 6c 50 68 61 72 28 24 6c 6f 63 61 6c 46 69 r.=.$this->setLocalPhar($localFi
1a0c0 6c 65 6e 61 6d 65 2c 20 24 74 65 6d 70 46 69 6c 65 6e 61 6d 65 2c 20 24 62 61 63 6b 75 70 46 69 lename,.$tempFilename,.$backupFi
1a0e0 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e le)).{.$output->writeln('<error>
1a100 54 68 65 20 66 69 6c 65 20 69 73 20 63 6f 72 72 75 70 74 65 64 20 28 27 2e 24 65 72 72 2d 3e 67 The.file.is.corrupted.('.$err->g
1a120 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 6f 75 74 70 etMessage().').</error>');.$outp
1a140 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 50 6c 65 61 73 65 20 72 65 2d 72 75 ut->writeln('<error>Please.re-ru
1a160 6e 20 74 68 65 20 73 65 6c 66 2d 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 74 72 79 n.the.self-update.command.to.try
1a180 20 61 67 61 69 6e 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 .again.</error>');..return.1;.}.
1a1a0 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 62 61 63 6b 75 70 46 69 6c 65 29 29 20 7b .if.(file_exists($backupFile)).{
1a1c0 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 55 73 65 20 3c 69 6e 66 6f 3e 63 6f 6d .$output->writeln('Use.<info>com
1a1e0 70 6f 73 65 72 20 73 65 6c 66 2d 75 70 64 61 74 65 20 2d 2d 72 6f 6c 6c 62 61 63 6b 3c 2f 69 6e poser.self-update.--rollback</in
1a200 66 6f 3e 20 74 6f 20 72 65 74 75 72 6e 20 74 6f 20 76 65 72 73 69 6f 6e 20 27 2e 43 6f 6d 70 6f fo>.to.return.to.version.'.Compo
1a220 73 65 72 3a 3a 56 45 52 53 49 4f 4e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d ser::VERSION);.}.else.{.$output-
1a240 3e 77 72 69 74 65 6c 6e 28 27 3c 77 61 72 6e 69 6e 67 3e 41 20 62 61 63 6b 75 70 20 6f 66 20 74 >writeln('<warning>A.backup.of.t
1a260 68 65 20 63 75 72 72 65 6e 74 20 76 65 72 73 69 6f 6e 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 he.current.version.could.not.be.
1a280 77 72 69 74 74 65 6e 20 74 6f 20 27 2e 24 62 61 63 6b 75 70 46 69 6c 65 2e 27 2c 20 6e 6f 20 72 written.to.'.$backupFile.',.no.r
1a2a0 6f 6c 6c 62 61 63 6b 20 70 6f 73 73 69 62 6c 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a ollback.possible</warning>');.}.
1a2c0 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 6f 6c 6c 62 61 63 6b 28 4f }..protected.function.rollback(O
1a2e0 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 6f 6c 6c 62 61 63 utputInterface.$output,.$rollbac
1a300 6b 44 69 72 2c 20 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 0a 7b 0a 24 72 6f 6c 6c 62 61 63 kDir,.$localFilename).{.$rollbac
1a320 6b 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 61 73 74 42 61 63 6b 75 70 56 kVersion.=.$this->getLastBackupV
1a340 65 72 73 69 6f 6e 28 24 72 6f 6c 6c 62 61 63 6b 44 69 72 29 3b 0a 69 66 20 28 21 24 72 6f 6c 6c ersion($rollbackDir);.if.(!$roll
1a360 62 61 63 6b 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 70 65 backVersion).{.throw.new.\Unexpe
1a380 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f 73 65 72 20 72 6f 6c ctedValueException('Composer.rol
1a3a0 6c 62 61 63 6b 20 66 61 69 6c 65 64 3a 20 6e 6f 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 74 6f lback.failed:.no.installation.to
1a3c0 20 72 6f 6c 6c 20 62 61 63 6b 20 74 6f 20 69 6e 20 22 27 2e 24 72 6f 6c 6c 62 61 63 6b 44 69 72 .roll.back.to.in."'.$rollbackDir
1a3e0 2e 27 22 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 24 72 6f 6c 6c .'"');.}..if.(!is_writable($roll
1a400 62 61 63 6b 44 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d backDir)).{.throw.new.Filesystem
1a420 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f 73 65 72 20 72 6f 6c 6c 62 61 63 6b 20 66 61 69 Exception('Composer.rollback.fai
1a440 6c 65 64 3a 20 74 68 65 20 22 27 2e 24 72 6f 6c 6c 62 61 63 6b 44 69 72 2e 27 22 20 64 69 72 20 led:.the."'.$rollbackDir.'".dir.
1a460 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f 27 29 3b 0a 7d 0a 0a 24 6f could.not.be.written.to');.}..$o
1a480 6c 64 20 3d 20 24 72 6f 6c 6c 62 61 63 6b 44 69 72 20 2e 20 27 2f 27 20 2e 20 24 72 6f 6c 6c 62 ld.=.$rollbackDir...'/'...$rollb
1a4a0 61 63 6b 56 65 72 73 69 6f 6e 20 2e 20 73 65 6c 66 3a 3a 4f 4c 44 5f 49 4e 53 54 41 4c 4c 5f 45 ackVersion...self::OLD_INSTALL_E
1a4c0 58 54 3b 0a 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 6f 6c 64 29 29 20 7b 0a 74 68 72 6f 77 XT;..if.(!is_file($old)).{.throw
1a4e0 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f 73 .new.FilesystemException('Compos
1a500 65 72 20 72 6f 6c 6c 62 61 63 6b 20 66 61 69 6c 65 64 3a 20 22 27 2e 24 6f 6c 64 2e 27 22 20 63 er.rollback.failed:."'.$old.'".c
1a520 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 72 ould.not.be.found');.}.if.(!is_r
1a540 65 61 64 61 62 6c 65 28 24 6f 6c 64 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 46 69 6c 65 73 eadable($old)).{.throw.new.Files
1a560 79 73 74 65 6d 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6d 70 6f 73 65 72 20 72 6f 6c 6c 62 61 63 ystemException('Composer.rollbac
1a580 6b 20 66 61 69 6c 65 64 3a 20 22 27 2e 24 6f 6c 64 2e 27 22 20 63 6f 75 6c 64 20 6e 6f 74 20 62 k.failed:."'.$old.'".could.not.b
1a5a0 65 20 72 65 61 64 27 29 3b 0a 7d 0a 0a 24 6f 6c 64 46 69 6c 65 20 3d 20 24 72 6f 6c 6c 62 61 63 e.read');.}..$oldFile.=.$rollbac
1a5c0 6b 44 69 72 20 2e 20 22 2f 7b 24 72 6f 6c 6c 62 61 63 6b 56 65 72 73 69 6f 6e 7d 22 20 2e 20 73 kDir..."/{$rollbackVersion}"...s
1a5e0 65 6c 66 3a 3a 4f 4c 44 5f 49 4e 53 54 41 4c 4c 5f 45 58 54 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 elf::OLD_INSTALL_EXT;.$output->w
1a600 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 22 52 6f 6c 6c 69 6e 67 20 62 61 63 6b 20 74 6f 20 riteln(sprintf("Rolling.back.to.
1a620 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 2c 20 24 72 6f 6c 6c version.<info>%s</info>.",.$roll
1a640 62 61 63 6b 56 65 72 73 69 6f 6e 29 29 3b 0a 69 66 20 28 24 65 72 72 20 3d 20 24 74 68 69 73 2d backVersion));.if.($err.=.$this-
1a660 3e 73 65 74 4c 6f 63 61 6c 50 68 61 72 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 24 6f >setLocalPhar($localFilename,.$o
1a680 6c 64 46 69 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 ldFile)).{.$output->writeln('<er
1a6a0 72 6f 72 3e 54 68 65 20 62 61 63 6b 75 70 20 66 69 6c 65 20 77 61 73 20 63 6f 72 72 75 70 74 65 ror>The.backup.file.was.corrupte
1a6c0 64 20 28 27 2e 24 65 72 72 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 20 61 6e 64 20 68 d.('.$err->getMessage().').and.h
1a6e0 61 73 20 62 65 65 6e 20 72 65 6d 6f 76 65 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 as.been.removed.</error>');..ret
1a700 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 urn.1;.}..return.0;.}..protected
1a720 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 63 61 6c 50 68 61 72 28 24 6c 6f 63 61 6c 46 69 6c .function.setLocalPhar($localFil
1a740 65 6e 61 6d 65 2c 20 24 6e 65 77 46 69 6c 65 6e 61 6d 65 2c 20 24 62 61 63 6b 75 70 54 61 72 67 ename,.$newFilename,.$backupTarg
1a760 65 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 74 72 79 20 7b 0a 40 63 68 6d 6f 64 28 24 6e 65 77 46 69 et.=.null).{.try.{.@chmod($newFi
1a780 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 68 61 lename,.0777.&.~umask());...$pha
1a7a0 72 20 3d 20 6e 65 77 20 5c 50 68 61 72 28 24 6e 65 77 46 69 6c 65 6e 61 6d 65 29 3b 0a 0a 20 75 r.=.new.\Phar($newFilename);...u
1a7c0 6e 73 65 74 28 24 70 68 61 72 29 3b 0a 0a 0a 20 69 66 20 28 24 62 61 63 6b 75 70 54 61 72 67 65 nset($phar);....if.($backupTarge
1a7e0 74 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 t.&&.file_exists($localFilename)
1a800 29 20 7b 0a 40 63 6f 70 79 28 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 2c 20 24 62 61 63 6b 75 ).{.@copy($localFilename,.$backu
1a820 70 54 61 72 67 65 74 29 3b 0a 7d 0a 0a 75 6e 73 65 74 28 24 70 68 61 72 29 3b 0a 72 65 6e 61 6d pTarget);.}..unset($phar);.renam
1a840 65 28 24 6e 65 77 46 69 6c 65 6e 61 6d 65 2c 20 24 6c 6f 63 61 6c 46 69 6c 65 6e 61 6d 65 29 3b e($newFilename,.$localFilename);
1a860 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 69 66 20 28 24 .}.catch.(\Exception.$e).{.if.($
1a880 62 61 63 6b 75 70 54 61 72 67 65 74 29 20 7b 0a 40 75 6e 6c 69 6e 6b 28 24 6e 65 77 46 69 6c 65 backupTarget).{.@unlink($newFile
1a8a0 6e 61 6d 65 29 3b 0a 7d 0a 69 66 20 28 21 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 55 6e 65 name);.}.if.(!$e.instanceof.\Une
1a8c0 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 26 26 20 21 24 65 20 69 6e 73 xpectedValueException.&&.!$e.ins
1a8e0 74 61 6e 63 65 6f 66 20 5c 50 68 61 72 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 tanceof.\PharException).{.throw.
1a900 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 $e;.}..return.$e;.}.}..protected
1a920 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 61 73 74 42 61 63 6b 75 70 56 65 72 73 69 6f 6e 28 24 .function.getLastBackupVersion($
1a940 72 6f 6c 6c 62 61 63 6b 44 69 72 29 0a 7b 0a 24 66 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 rollbackDir).{.$files.=.$this->g
1a960 65 74 4f 6c 64 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 46 69 6c 65 73 28 24 72 6f 6c 6c 62 61 63 6b etOldInstallationFiles($rollback
1a980 44 69 72 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 66 69 6c 65 73 29 29 20 7b 0a 72 65 74 75 72 Dir);.if.(empty($files)).{.retur
1a9a0 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 73 6f 72 74 28 24 66 69 6c 65 73 29 3b 0a 0a 72 65 74 75 72 n.false;.}..sort($files);..retur
1a9c0 6e 20 62 61 73 65 6e 61 6d 65 28 65 6e 64 28 24 66 69 6c 65 73 29 2c 20 73 65 6c 66 3a 3a 4f 4c n.basename(end($files),.self::OL
1a9e0 44 5f 49 4e 53 54 41 4c 4c 5f 45 58 54 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e D_INSTALL_EXT);.}..protected.fun
1aa00 63 74 69 6f 6e 20 67 65 74 4f 6c 64 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 46 69 6c 65 73 28 24 72 ction.getOldInstallationFiles($r
1aa20 6f 6c 6c 62 61 63 6b 44 69 72 29 0a 7b 0a 72 65 74 75 72 6e 20 67 6c 6f 62 28 24 72 6f 6c 6c 62 ollbackDir).{.return.glob($rollb
1aa40 61 63 6b 44 69 72 20 2e 20 27 2f 2a 27 20 2e 20 73 65 6c 66 3a 3a 4f 4c 44 5f 49 4e 53 54 41 4c ackDir...'/*'...self::OLD_INSTAL
1aa60 4c 5f 45 58 54 29 20 3f 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a L_EXT).?:.array();.}.}.<?php....
1aa80 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
1aaa0 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 6c 65 3b nd;..use.Composer\Json\JsonFile;
1aac0 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
1aae0 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 6c 75 67 69 6e rsionParser;.use.Composer\Plugin
1ab00 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 \CommandEvent;.use.Composer\Plug
1ab20 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d in\PluginEvents;.use.Symfony\Com
1ab40 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 54 61 62 6c 65 48 65 6c 70 65 ponent\Console\Helper\TableHelpe
1ab60 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 6e 73 6f 6c 65 r;.use.Symfony\Component\Console
1ab80 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f \Input\InputInterface;.use.Symfo
1aba0 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
1abc0 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f Option;.use.Symfony\Component\Co
1abe0 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 0a 0a nsole\Output\OutputInterface;...
1ac00 0a 0a 63 6c 61 73 73 20 4c 69 63 65 6e 73 65 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 ..class.LicensesCommand.extends.
1ac20 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
1ac40 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 6c 69 63 65 figure().{.$this.->setName('lice
1ac60 6e 73 65 73 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 69 6e nses').->setDescription('Show.in
1ac80 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 6c 69 63 65 6e 73 65 73 20 6f 66 20 64 65 70 65 formation.about.licenses.of.depe
1aca0 6e 64 65 6e 63 69 65 73 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 ndencies').->setDefinition(array
1acc0 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 27 66 27 2c (.new.InputOption('format',.'f',
1ace0 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 20 27 46 .InputOption::VALUE_REQUIRED,.'F
1ad00 6f 72 6d 61 74 20 6f 66 20 74 68 65 20 6f 75 74 70 75 74 3a 20 74 65 78 74 20 6f 72 20 6a 73 6f ormat.of.the.output:.text.or.jso
1ad20 6e 27 2c 20 27 74 65 78 74 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 n',.'text'),.)).->setHelp(<<<EOT
1ad40 0a 54 68 65 20 6c 69 63 65 6e 73 65 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70 6c 61 79 73 20 64 65 .The.license.command.displays.de
1ad60 74 61 69 6c 65 64 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 61 62 6f 75 74 20 74 68 65 20 6c 69 63 tailed.information.about.the.lic
1ad80 65 6e 73 65 73 20 6f 66 0a 74 68 65 20 69 6e 73 74 61 6c 6c 65 64 20 64 65 70 65 6e 64 65 6e 63 enses.of.the.installed.dependenc
1ada0 69 65 73 2e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ies...EOT.).;.}..protected.funct
1adc0 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 ion.execute(InputInterface.$inpu
1ade0 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 63 t,.OutputInterface.$output).{.$c
1ae00 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a omposer.=.$this->getComposer();.
1ae20 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e .$commandEvent.=.new.CommandEven
1ae40 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 6c 69 63 65 6e 73 t(PluginEvents::COMMAND,.'licens
1ae60 65 73 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 es',.$input,.$output);.$composer
1ae80 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 ->getEventDispatcher()->dispatch
1aea0 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d ($commandEvent->getName(),.$comm
1aec0 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 72 6f 6f 74 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 andEvent);..$root.=.$composer->g
1aee0 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 72 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e etPackage();.$repo.=.$composer->
1af00 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c getRepositoryManager()->getLocal
1af20 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 Repository();..$versionParser.=.
1af40 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 new.VersionParser;..$packages.=.
1af60 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b array();.foreach.($repo->getPack
1af80 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b ages().as.$package).{.$packages[
1afa0 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 61 67 65 3b $package->getName()].=.$package;
1afc0 0a 7d 0a 0a 6b 73 6f 72 74 28 24 70 61 63 6b 61 67 65 73 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 .}..ksort($packages);..switch.($
1afe0 66 6f 72 6d 61 74 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d format.=.$input->getOption('form
1b000 61 74 27 29 29 20 7b 0a 63 61 73 65 20 27 74 65 78 74 27 3a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 at')).{.case.'text':.$output->wr
1b020 69 74 65 6c 6e 28 27 4e 61 6d 65 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 24 72 6f 6f 74 2d 3e 67 iteln('Name:.<comment>'.$root->g
1b040 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 6f etPrettyName().'</comment>');.$o
1b060 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 56 65 72 73 69 6f 6e 3a 20 3c 63 6f 6d 6d 65 6e utput->writeln('Version:.<commen
1b080 74 3e 27 2e 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f t>'.$versionParser->formatVersio
1b0a0 6e 28 24 72 6f 6f 74 29 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 6f 75 74 70 75 74 2d n($root).'</comment>');.$output-
1b0c0 3e 77 72 69 74 65 6c 6e 28 27 4c 69 63 65 6e 73 65 73 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 27 2e 28 >writeln('Licenses:.<comment>'.(
1b0e0 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 72 6f 6f 74 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 implode(',.',.$root->getLicense(
1b100 29 29 20 3f 3a 20 27 6e 6f 6e 65 27 29 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 29 3b 0a 24 6f 75 )).?:.'none').'</comment>');.$ou
1b120 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 44 65 70 65 6e 64 65 6e 63 69 65 73 3a 27 29 3b 0a tput->writeln('Dependencies:');.
1b140 0a 24 74 61 62 6c 65 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 .$table.=.$this->getHelperSet()-
1b160 3e 67 65 74 28 27 74 61 62 6c 65 27 29 3b 0a 24 74 61 62 6c 65 2d 3e 73 65 74 4c 61 79 6f 75 74 >get('table');.$table->setLayout
1b180 28 54 61 62 6c 65 48 65 6c 70 65 72 3a 3a 4c 41 59 4f 55 54 5f 42 4f 52 44 45 52 4c 45 53 53 29 (TableHelper::LAYOUT_BORDERLESS)
1b1a0 3b 0a 24 74 61 62 6c 65 2d 3e 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 ;.$table->setHorizontalBorderCha
1b1c0 72 28 27 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 r('');.foreach.($packages.as.$pa
1b1e0 63 6b 61 67 65 29 20 7b 0a 24 74 61 62 6c 65 2d 3e 61 64 64 52 6f 77 28 61 72 72 61 79 28 0a 24 ckage).{.$table->addRow(array(.$
1b200 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 0a 24 76 65 72 73 69 package->getPrettyName(),.$versi
1b220 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 onParser->formatVersion($package
1b240 29 2c 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4c 69 ),.implode(',.',.$package->getLi
1b260 63 65 6e 73 65 28 29 29 20 3f 3a 20 27 6e 6f 6e 65 27 2c 0a 29 29 3b 0a 7d 0a 24 74 61 62 6c 65 cense()).?:.'none',.));.}.$table
1b280 2d 3e 72 65 6e 64 65 72 28 24 6f 75 74 70 75 74 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 ->render($output);.break;..case.
1b2a0 27 6a 73 6f 6e 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 'json':.foreach.($packages.as.$p
1b2c0 61 63 6b 61 67 65 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 70 61 63 6b 61 67 65 ackage).{.$dependencies[$package
1b2e0 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 76 65 72 ->getPrettyName()].=.array(.'ver
1b300 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 66 6f 72 6d 61 74 56 sion'.=>.$versionParser->formatV
1b320 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 2c 0a 27 6c 69 63 65 6e 73 65 27 20 3d 3e 20 24 ersion($package),.'license'.=>.$
1b340 70 61 63 6b 61 67 65 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 2c 0a 29 3b 0a 7d 0a 0a 24 6f 75 package->getLicense(),.);.}..$ou
1b360 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 61 tput->writeln(JsonFile::encode(a
1b380 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 72 6f 6f 74 2d 3e 67 65 74 50 72 65 74 74 79 rray(.'name'.=>.$root->getPretty
1b3a0 4e 61 6d 65 28 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 50 61 72 Name(),.'version'.=>.$versionPar
1b3c0 73 65 72 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 72 6f 6f 74 29 2c 0a 27 6c 69 63 65 ser->formatVersion($root),.'lice
1b3e0 6e 73 65 27 20 3d 3e 20 24 72 6f 6f 74 2d 3e 67 65 74 4c 69 63 65 6e 73 65 28 29 2c 0a 27 64 65 nse'.=>.$root->getLicense(),.'de
1b400 70 65 6e 64 65 6e 63 69 65 73 27 20 3d 3e 20 24 64 65 70 65 6e 64 65 6e 63 69 65 73 2c 0a 29 29 pendencies'.=>.$dependencies,.))
1b420 29 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 );.break;..default:.throw.new.\R
1b440 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 55 6e 73 75 70 70 6f untimeException(sprintf('Unsuppo
1b460 72 74 65 64 20 66 6f 72 6d 61 74 20 22 25 73 22 2e 20 20 53 65 65 20 68 65 6c 70 20 66 6f 72 20 rted.format."%s"...See.help.for.
1b480 73 75 70 70 6f 72 74 65 64 20 66 6f 72 6d 61 74 73 2e 27 2c 20 24 66 6f 72 6d 61 74 29 29 3b 0a supported.formats.',.$format));.
1b4a0 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
1b4c0 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 6e 79 5c .Composer\Command;..use.Symfony\
1b4e0 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 49 6e 74 Component\Console\Input\InputInt
1b500 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 5c 43 6f erface;.use.Symfony\Component\Co
1b520 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 nsole\Input\InputArgument;.use.S
1b540 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 ymfony\Component\Console\Input\I
1b560 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e nputOption;.use.Symfony\Componen
1b580 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 t\Console\Output\OutputInterface
1b5a0 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
1b5c0 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f oser\Installer;.use.Composer\Jso
1b5e0 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 4a 73 6f 6e 5c 4a 73 n\JsonFile;.use.Composer\Json\Js
1b600 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b onManipulator;.use.Composer\Pack
1b620 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 20 43 age\Version\VersionParser;.use.C
1b640 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 omposer\Plugin\CommandEvent;.use
1b660 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 0a .Composer\Plugin\PluginEvents;..
1b680 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 71 75 69 72 65 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 ....class.RequireCommand.extends
1b6a0 20 49 6e 69 74 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f .InitCommand.{.protected.functio
1b6c0 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 n.configure().{.$this.->setName(
1b6e0 27 72 65 71 75 69 72 65 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 41 64 64 'require').->setDescription('Add
1b700 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 6d 70 s.required.packages.to.your.comp
1b720 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 27 29 0a 2d 3e oser.json.and.installs.them').->
1b740 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
1b760 67 75 6d 65 6e 74 28 27 70 61 63 6b 61 67 65 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 gument('packages',.InputArgument
1b780 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 ::IS_ARRAY.|.InputArgument::OPTI
1b7a0 4f 4e 41 4c 2c 20 27 52 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 20 77 69 74 68 20 61 20 76 ONAL,.'Required.package.with.a.v
1b7c0 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 72 3a ersion.constraint,.e.g..foo/bar:
1b7e0 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 2f 62 1.0.0.or.foo/bar=1.0.0.or."foo/b
1b800 61 72 20 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 64 65 ar.1.0.0"'),.new.InputOption('de
1b820 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e v',.null,.InputOption::VALUE_NON
1b840 45 2c 20 27 41 64 64 20 72 65 71 75 69 72 65 6d 65 6e 74 20 74 6f 20 72 65 71 75 69 72 65 2d 64 E,.'Add.requirement.to.require-d
1b860 65 76 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 73 ev.'),.new.InputOption('prefer-s
1b880 6f 75 72 63 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 ource',.null,.InputOption::VALUE
1b8a0 5f 4e 4f 4e 45 2c 20 27 46 6f 72 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d _NONE,.'Forces.installation.from
1b8c0 20 70 61 63 6b 61 67 65 20 73 6f 75 72 63 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 .package.sources.when.possible,.
1b8e0 69 6e 63 6c 75 64 69 6e 67 20 56 43 53 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 27 29 2c 0a 6e 65 including.VCS.information.'),.ne
1b900 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 2c 20 6e 75 6c w.InputOption('prefer-dist',.nul
1b920 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 46 6f 72 l,.InputOption::VALUE_NONE,.'For
1b940 63 65 73 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 72 6f 6d 20 70 61 63 6b 61 67 65 20 64 69 ces.installation.from.package.di
1b960 73 74 20 65 76 65 6e 20 66 6f 72 20 64 65 76 20 76 65 72 73 69 6f 6e 73 2e 27 29 2c 0a 6e 65 77 st.even.for.dev.versions.'),.new
1b980 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 2c 20 6e 75 6c 6c .InputOption('no-progress',.null
1b9a0 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 44 6f 20 6e ,.InputOption::VALUE_NONE,.'Do.n
1b9c0 6f 74 20 6f 75 74 70 75 74 20 64 6f 77 6e 6c 6f 61 64 20 70 72 6f 67 72 65 73 73 2e 27 29 2c 0a ot.output.download.progress.'),.
1b9e0 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6e 6f 2d 75 70 64 61 74 65 27 2c 20 6e 75 6c new.InputOption('no-update',.nul
1ba00 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 44 69 73 l,.InputOption::VALUE_NONE,.'Dis
1ba20 61 62 6c 65 73 20 74 68 65 20 61 75 74 6f 6d 61 74 69 63 20 75 70 64 61 74 65 20 6f 66 20 74 68 ables.the.automatic.update.of.th
1ba40 65 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 e.dependencies.'),.)).->setHelp(
1ba60 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 64 64 73 20 <<<EOT.The.require.command.adds.
1ba80 72 65 71 75 69 72 65 64 20 70 61 63 6b 61 67 65 73 20 74 6f 20 79 6f 75 72 20 63 6f 6d 70 6f 73 required.packages.to.your.compos
1baa0 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 49 66 20 79 6f er.json.and.installs.them..If.yo
1bac0 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 69 6e 73 74 61 6c 6c 20 74 68 65 20 6e 65 77 u.do.not.want.to.install.the.new
1bae0 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 69 6d 6d 65 64 69 61 74 65 6c 79 20 79 6f 75 20 63 61 .dependencies.immediately.you.ca
1bb00 6e 20 63 61 6c 6c 20 69 74 20 77 69 74 68 20 2d 2d 6e 6f 2d 75 70 64 61 74 65 0a 0a 45 4f 54 0a n.call.it.with.--no-update..EOT.
1bb20 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
1bb40 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
1bb60 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 46 61 63 74 nterface.$output).{.$file.=.Fact
1bb80 6f 72 79 3a 3a 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 ory::getComposerFile();..if.(!fi
1bba0 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 29 20 26 26 20 21 66 69 6c 65 5f 70 75 74 5f 63 6f le_exists($file).&&.!file_put_co
1bbc0 6e 74 65 6e 74 73 28 24 66 69 6c 65 2c 20 22 7b 5c 6e 7d 5c 6e 22 29 29 20 7b 0a 24 6f 75 74 70 ntents($file,."{\n}\n")).{.$outp
1bbe0 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 63 6f ut->writeln('<error>'.$file.'.co
1bc00 75 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 65 64 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 0a uld.not.be.created.</error>');..
1bc20 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 66 69 return.1;.}.if.(!is_readable($fi
1bc40 6c 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e le)).{.$output->writeln('<error>
1bc60 27 2e 24 66 69 6c 65 2e 27 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 2e 3c 2f 65 72 72 6f '.$file.'.is.not.readable.</erro
1bc80 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 77 72 69 74 61 r>');..return.1;.}.if.(!is_writa
1bca0 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 6e 28 27 ble($file)).{.$output->writeln('
1bcc0 3c 65 72 72 6f 72 3e 27 2e 24 66 69 6c 65 2e 27 20 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c 65 <error>'.$file.'.is.not.writable
1bce0 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 6a 73 6f 6e .</error>');..return.1;.}..$json
1bd00 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 66 69 6c 65 29 3b 0a 24 63 6f 6d 70 6f 73 65 .=.new.JsonFile($file);.$compose
1bd20 72 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 42 61 63 6b r.=.$json->read();.$composerBack
1bd40 75 70 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 up.=.file_get_contents($json->ge
1bd60 74 50 61 74 68 28 29 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 tPath());..$requirements.=.$this
1bd80 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 2c 20 ->determineRequirements($input,.
1bda0 24 6f 75 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 $output,.$input->getArgument('pa
1bdc0 63 6b 61 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 ckages'));..$requireKey.=.$input
1bde0 2d 3e 67 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 ->getOption('dev').?.'require-de
1be00 76 27 20 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 v'.:.'require';.$baseRequirement
1be20 73 20 3d 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 s.=.array_key_exists($requireKey
1be40 2c 20 24 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 ,.$composer).?.$composer[$requir
1be60 65 4b 65 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 eKey].:.array();.$requirements.=
1be80 20 24 74 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 .$this->formatRequirements($requ
1bea0 69 72 65 6d 65 6e 74 73 29 3b 0a 0a 0a 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e irements);....$versionParser.=.n
1bec0 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 ew.VersionParser();.foreach.($re
1bee0 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 76 65 quirements.as.$constraint).{.$ve
1bf00 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 rsionParser->parseConstraints($c
1bf20 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 onstraint);.}..if.(!$this->updat
1bf40 65 46 69 6c 65 43 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 eFileCleanly($json,.$baseRequire
1bf60 6d 65 6e 74 73 2c 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 ments,.$requirements,.$requireKe
1bf80 79 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 20 61 73 20 y)).{.foreach.($requirements.as.
1bfa0 24 70 61 63 6b 61 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 $package.=>.$version).{.$baseReq
1bfc0 75 69 72 65 6d 65 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 uirements[$package].=.$version;.
1bfe0 7d 0a 0a 24 63 6f 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 }..$composer[$requireKey].=.$bas
1c000 65 52 65 71 75 69 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 eRequirements;.$json->write($com
1c020 70 6f 73 65 72 29 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 poser);.}..$output->writeln('<in
1c040 66 6f 3e 27 2e 24 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 fo>'.$file.'.has.been.updated</i
1c060 6e 66 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 nfo>');..if.($input->getOption('
1c080 6e 6f 2d 75 70 64 61 74 65 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 20 24 63 no-update')).{.return.0;.}....$c
1c0a0 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 28 29 3b 0a omposer.=.$this->getComposer();.
1c0c0 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 2d $composer->getDownloadManager()-
1c0e0 3e 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 21 24 69 6e 70 75 74 2d 3e 67 65 74 4f >setOutputProgress(!$input->getO
1c100 70 74 69 6f 6e 28 27 6e 6f 2d 70 72 6f 67 72 65 73 73 27 29 29 3b 0a 24 69 6f 20 3d 20 24 74 68 ption('no-progress'));.$io.=.$th
1c120 69 73 2d 3e 67 65 74 49 4f 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 is->getIO();..$commandEvent.=.ne
1c140 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d w.CommandEvent(PluginEvents::COM
1c160 4d 41 4e 44 2c 20 27 72 65 71 75 69 72 65 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 MAND,.'require',.$input,.$output
1c180 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 );.$composer->getEventDispatcher
1c1a0 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d 3e 67 65 74 4e ()->dispatch($commandEvent->getN
1c1c0 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e 73 74 61 6c 6c ame(),.$commandEvent);..$install
1c1e0 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
1c200 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 65 28 24 69 6e ser);..$install.->setVerbose($in
1c220 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 65 74 put->getOption('verbose')).->set
1c240 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 28 27 PreferSource($input->getOption('
1c260 70 72 65 66 65 72 2d 73 6f 75 72 63 65 27 29 29 0a 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 prefer-source')).->setPreferDist
1c280 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 70 72 65 66 65 72 2d 64 69 73 74 27 ($input->getOption('prefer-dist'
1c2a0 29 29 0a 2d 3e 73 65 74 44 65 76 4d 6f 64 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 )).->setDevMode(true).->setUpdat
1c2c0 65 28 74 72 75 65 29 0a 2d 3e 73 65 74 55 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 28 61 72 72 e(true).->setUpdateWhitelist(arr
1c2e0 61 79 5f 6b 65 79 73 28 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 29 3b 0a 3b 0a 0a 24 73 74 61 ay_keys($requirements));.;..$sta
1c300 74 75 73 20 3d 20 24 69 6e 73 74 61 6c 6c 2d 3e 72 75 6e 28 29 3b 0a 69 66 20 28 24 73 74 61 74 tus.=.$install->run();.if.($stat
1c320 75 73 20 21 3d 3d 20 30 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 22 5c 6e us.!==.0).{.$output->writeln("\n
1c340 22 2e 27 3c 65 72 72 6f 72 3e 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 66 61 69 6c 65 64 2c 20 72 ".'<error>Installation.failed,.r
1c360 65 76 65 72 74 69 6e 67 20 27 2e 24 66 69 6c 65 2e 27 20 74 6f 20 69 74 73 20 6f 72 69 67 69 6e everting.'.$file.'.to.its.origin
1c380 61 6c 20 63 6f 6e 74 65 6e 74 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 66 69 6c 65 5f 70 75 74 5f al.content.</error>');.file_put_
1c3a0 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 2c 20 24 63 6f 6d 70 contents($json->getPath(),.$comp
1c3c0 6f 73 65 72 42 61 63 6b 75 70 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 74 75 73 3b 0a oserBackup);.}..return.$status;.
1c3e0 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 46 69 6c 65 43 6c }..private.function.updateFileCl
1c400 65 61 6e 6c 79 28 24 6a 73 6f 6e 2c 20 61 72 72 61 79 20 24 62 61 73 65 2c 20 61 72 72 61 79 20 eanly($json,.array.$base,.array.
1c420 24 6e 65 77 2c 20 24 72 65 71 75 69 72 65 4b 65 79 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d $new,.$requireKey).{.$contents.=
1c440 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 6a 73 6f 6e 2d 3e 67 65 74 50 61 74 .file_get_contents($json->getPat
1c460 68 28 29 29 3b 0a 0a 24 6d 61 6e 69 70 75 6c 61 74 6f 72 20 3d 20 6e 65 77 20 4a 73 6f 6e 4d 61 h());..$manipulator.=.new.JsonMa
1c480 6e 69 70 75 6c 61 74 6f 72 28 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 nipulator($contents);..foreach.(
1c4a0 24 6e 65 77 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 $new.as.$package.=>.$constraint)
1c4c0 20 7b 0a 69 66 20 28 21 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2d 3e 61 64 64 4c 69 6e 6b 28 24 72 .{.if.(!$manipulator->addLink($r
1c4e0 65 71 75 69 72 65 4b 65 79 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 equireKey,.$package,.$constraint
1c500 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 66 69 6c 65 5f 70 75 74 )).{.return.false;.}.}..file_put
1c520 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 2c 20 24 6d 61 6e _contents($json->getPath(),.$man
1c540 69 70 75 6c 61 74 6f 72 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 29 3b 0a 0a 72 65 74 75 72 ipulator->getContents());..retur
1c560 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 69 6e n.true;.}..protected.function.in
1c580 74 65 72 61 63 74 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 teract(InputInterface.$input,.Ou
1c5a0 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 72 65 74 75 72 6e 3b tputInterface.$output).{.return;
1c5c0 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.
1c5e0 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 65 72 5c Composer\Command;..use.Composer\
1c600 50 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 Plugin\CommandEvent;.use.Compose
1c620 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 53 79 6d 66 6f r\Plugin\PluginEvents;.use.Symfo
1c640 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
1c660 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
1c680 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 \Console\Input\InputOption;.use.
1c6a0 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
1c6c0 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 75 6d 70 \OutputInterface;.....class.Dump
1c6e0 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a AutoloadCommand.extends.Command.
1c700 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 65 28 29 {.protected.function.configure()
1c720 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 .{.$this.->setName('dump-autoloa
1c740 64 27 29 0a 2d 3e 73 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 28 27 64 75 6d 70 61 75 74 6f d').->setAliases(array('dumpauto
1c760 6c 6f 61 64 27 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 44 75 6d 70 73 20 load')).->setDescription('Dumps.
1c780 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e the.autoloader').->setDefinition
1c7a0 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6f 70 74 69 6d 69 7a (array(.new.InputOption('optimiz
1c7c0 65 27 2c 20 27 6f 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 e',.'o',.InputOption::VALUE_NONE
1c7e0 2c 20 27 4f 70 74 69 6d 69 7a 65 73 20 50 53 52 30 20 70 61 63 6b 61 67 65 73 20 74 6f 20 62 65 ,.'Optimizes.PSR0.packages.to.be
1c800 20 6c 6f 61 64 65 64 20 77 69 74 68 20 63 6c 61 73 73 6d 61 70 73 20 74 6f 6f 2c 20 67 6f 6f 64 .loaded.with.classmaps.too,.good
1c820 20 66 6f 72 20 70 72 6f 64 75 63 74 69 6f 6e 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 .for.production.'),.)).->setHelp
1c840 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 72 20 (<<<EOT.<info>php.composer.phar.
1c860 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 3c 2f 69 6e 66 6f 3e 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a dump-autoload</info>.EOT.).;.}..
1c880 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 protected.function.execute(Input
1c8a0 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 Interface.$input,.OutputInterfac
1c8c0 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c e.$output).{.$output->writeln('<
1c8e0 69 6e 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 20 61 75 74 6f 6c 6f 61 64 20 66 69 6c 65 73 3c 2f info>Generating.autoload.files</
1c900 69 6e 66 6f 3e 27 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 info>');..$composer.=.$this->get
1c920 43 6f 6d 70 6f 73 65 72 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 Composer();..$commandEvent.=.new
1c940 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d .CommandEvent(PluginEvents::COMM
1c960 41 4e 44 2c 20 27 64 75 6d 70 2d 61 75 74 6f 6c 6f 61 64 27 2c 20 24 69 6e 70 75 74 2c 20 24 6f AND,.'dump-autoload',.$input,.$o
1c980 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 utput);.$composer->getEventDispa
1c9a0 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 2d tcher()->dispatch($commandEvent-
1c9c0 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 3b 0a 0a 24 69 6e >getName(),.$commandEvent);..$in
1c9e0 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 stallationManager.=.$composer->g
1ca00 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 24 6c 6f 63 61 6c 52 etInstallationManager();.$localR
1ca20 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 79 4d 61 epo.=.$composer->getRepositoryMa
1ca40 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 3b 0a 24 nager()->getLocalRepository();.$
1ca60 70 61 63 6b 61 67 65 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 package.=.$composer->getPackage(
1ca80 29 3b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 );.$config.=.$composer->getConfi
1caa0 67 28 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 g();..$composer->getAutoloadGene
1cac0 72 61 74 6f 72 28 29 2d 3e 64 75 6d 70 28 24 63 6f 6e 66 69 67 2c 20 24 6c 6f 63 61 6c 52 65 70 rator()->dump($config,.$localRep
1cae0 6f 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 o,.$package,.$installationManage
1cb00 72 2c 20 27 63 6f 6d 70 6f 73 65 72 27 2c 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e r,.'composer',.$input->getOption
1cb20 28 27 6f 70 74 69 6d 69 7a 65 27 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ('optimize'));.}.}.<?php........
1cb40 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;.
1cb60 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 53 79 6d 66 6f .use.Composer\Factory;.use.Symfo
1cb80 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
1cba0 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
1cbc0 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 \Console\Input\InputArgument;.us
1cbe0 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
1cc00 74 5c 53 74 72 69 6e 67 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f t\StringInput;.use.Symfony\Compo
1cc20 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 66 nent\Console\Output\OutputInterf
1cc40 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 61 6c 43 6f 6d 6d 61 6e 64 20 65 78 74 ace;.....class.GlobalCommand.ext
1cc60 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f ends.Command.{.protected.functio
1cc80 6e 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 n.configure().{.$this.->setName(
1cca0 27 67 6c 6f 62 61 6c 27 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 41 6c 6c 6f 'global').->setDescription('Allo
1ccc0 77 73 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 6d 61 6e 64 73 20 69 6e 20 74 68 65 20 67 6c 6f 62 61 ws.running.commands.in.the.globa
1cce0 6c 20 63 6f 6d 70 6f 73 65 72 20 64 69 72 20 28 24 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 29 2e l.composer.dir.($COMPOSER_HOME).
1cd00 27 29 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e ').->setDefinition(array(.new.In
1cd20 70 75 74 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 2d 6e 61 6d 65 27 2c 20 49 6e 70 75 putArgument('command-name',.Inpu
1cd40 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 52 45 44 2c 20 27 27 29 2c 0a 6e 65 77 20 49 6e tArgument::REQUIRED,.''),.new.In
1cd60 70 75 74 41 72 67 75 6d 65 6e 74 28 27 61 72 67 73 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e putArgument('args',.InputArgumen
1cd80 74 3a 3a 49 53 5f 41 52 52 41 59 20 7c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 t::IS_ARRAY.|.InputArgument::OPT
1cda0 49 4f 4e 41 4c 2c 20 27 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a IONAL,.''),.)).->setHelp(<<<EOT.
1cdc0 55 73 65 20 74 68 69 73 20 63 6f 6d 6d 61 6e 64 20 61 73 20 61 20 77 72 61 70 70 65 72 20 74 6f Use.this.command.as.a.wrapper.to
1cde0 20 72 75 6e 20 6f 74 68 65 72 20 43 6f 6d 70 6f 73 65 72 20 63 6f 6d 6d 61 6e 64 73 0a 77 69 74 .run.other.Composer.commands.wit
1ce00 68 69 6e 20 74 68 65 20 67 6c 6f 62 61 6c 20 63 6f 6e 74 65 78 74 20 6f 66 20 43 4f 4d 50 4f 53 hin.the.global.context.of.COMPOS
1ce20 45 52 5f 48 4f 4d 45 2e 0a 0a 59 6f 75 20 63 61 6e 20 75 73 65 20 74 68 69 73 20 74 6f 20 69 6e ER_HOME...You.can.use.this.to.in
1ce40 73 74 61 6c 6c 20 43 4c 49 20 75 74 69 6c 69 74 69 65 73 20 67 6c 6f 62 61 6c 6c 79 2c 20 61 6c stall.CLI.utilities.globally,.al
1ce60 6c 20 79 6f 75 20 6e 65 65 64 0a 69 73 20 74 6f 20 61 64 64 20 74 68 65 20 43 4f 4d 50 4f 53 45 l.you.need.is.to.add.the.COMPOSE
1ce80 52 5f 48 4f 4d 45 2f 76 65 6e 64 6f 72 2f 62 69 6e 20 64 69 72 20 74 6f 20 79 6f 75 72 20 50 41 R_HOME/vendor/bin.dir.to.your.PA
1cea0 54 48 20 65 6e 76 20 76 61 72 2e 0a 0a 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 20 69 73 20 63 3a TH.env.var...COMPOSER_HOME.is.c:
1cec0 5c 55 73 65 72 73 5c 3c 75 73 65 72 3e 5c 41 70 70 44 61 74 61 5c 52 6f 61 6d 69 6e 67 5c 43 6f \Users\<user>\AppData\Roaming\Co
1cee0 6d 70 6f 73 65 72 20 6f 6e 20 57 69 6e 64 6f 77 73 0a 61 6e 64 20 2f 68 6f 6d 65 2f 3c 75 73 65 mposer.on.Windows.and./home/<use
1cf00 72 3e 2f 2e 63 6f 6d 70 6f 73 65 72 20 6f 6e 20 75 6e 69 78 20 73 79 73 74 65 6d 73 2e 0a 0a 4e r>/.composer.on.unix.systems...N
1cf20 6f 74 65 3a 20 54 68 69 73 20 70 61 74 68 20 6d 61 79 20 76 61 72 79 20 64 65 70 65 6e 64 69 6e ote:.This.path.may.vary.dependin
1cf40 67 20 6f 6e 20 63 75 73 74 6f 6d 69 7a 61 74 69 6f 6e 73 20 74 6f 20 62 69 6e 2d 64 69 72 20 69 g.on.customizations.to.bin-dir.i
1cf60 6e 0a 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 72 20 74 68 65 20 65 6e 76 69 72 6f 6e 6d 65 n.composer.json.or.the.environme
1cf80 6e 74 61 6c 20 76 61 72 69 61 62 6c 65 20 43 4f 4d 50 4f 53 45 52 5f 42 49 4e 5f 44 49 52 2e 0a ntal.variable.COMPOSER_BIN_DIR..
1cfa0 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 .EOT.).;.}..public.function.run(
1cfc0 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 InputInterface.$input,.OutputInt
1cfe0 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 74 6f 6b 65 6e 73 20 3d 20 70 72 erface.$output).{...$tokens.=.pr
1d000 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2b 7d 27 2c 20 24 69 6e 70 75 74 2d 3e 5f 5f 74 6f 53 74 eg_split('{\s+}',.$input->__toSt
1d020 72 69 6e 67 28 29 29 3b 0a 24 61 72 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 ring());.$args.=.array();.foreac
1d040 68 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 24 74 6f 6b h.($tokens.as.$token).{.if.($tok
1d060 65 6e 20 26 26 20 24 74 6f 6b 65 6e 5b 30 5d 20 21 3d 3d 20 27 2d 27 29 20 7b 0a 24 61 72 67 73 en.&&.$token[0].!==.'-').{.$args
1d080 5b 5d 20 3d 20 24 74 6f 6b 65 6e 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 61 72 67 73 29 20 3e 3d [].=.$token;.if.(count($args).>=
1d0a0 20 32 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 .2).{.break;.}.}.}....if.(count(
1d0c0 24 61 72 67 73 29 20 3c 20 32 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 72 75 6e $args).<.2).{.return.parent::run
1d0e0 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 66 69 67 20 ($input,.$output);.}....$config.
1d100 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 63 68 64 69 72 =.Factory::createConfig();.chdir
1d120 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 29 3b 0a 24 6f 75 74 70 75 74 2d ($config->get('home'));.$output-
1d140 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 43 68 61 6e 67 65 64 20 63 75 72 72 65 6e 74 20 >writeln('<info>Changed.current.
1d160 64 69 72 65 63 74 6f 72 79 20 74 6f 20 27 2e 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d directory.to.'.$config->get('hom
1d180 65 27 29 2e 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 0a 20 24 69 6e 70 75 74 20 3d 20 6e 65 77 20 e').'</info>');....$input.=.new.
1d1a0 53 74 72 69 6e 67 49 6e 70 75 74 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5c 62 67 28 3f StringInput(preg_replace('{\bg(?
1d1c0 3a 6c 28 3f 3a 6f 28 3f 3a 62 28 3f 3a 61 28 3f 3a 6c 29 3f 29 3f 29 3f 29 3f 29 3f 5c 62 7d 27 :l(?:o(?:b(?:a(?:l)?)?)?)?)?\b}'
1d1e0 2c 20 27 27 2c 20 24 69 6e 70 75 74 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 2c 20 31 29 29 3b ,.'',.$input->__toString(),.1));
1d200 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 ..return.$this->getApplication()
1d220 2d 3e 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 ->run($input,.$output);.}.}.<?ph
1d240 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\
1d260 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
1d280 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
1d2a0 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
1d2c0 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
1d2e0 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
1d300 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
1d320 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.$
1d340 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
1d360 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
1d380 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
1d3a0 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
1d3c0 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.
1d3e0 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
1d400 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f mmand;..use.Symfony\Component\Co
1d420 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.
1d440 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\
1d460 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 InputOption;.use.Symfony\Compone
1d480 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
1d4a0 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 43 68 61 6e 67 e;.use.Composer\Downloader\Chang
1d4c0 65 52 65 70 6f 72 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 eReportInterface;.use.Composer\P
1d4e0 6c 75 67 69 6e 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 lugin\CommandEvent;.use.Composer
1d500 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 \Plugin\PluginEvents;.use.Compos
1d520 65 72 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 63 6c 61 er\Script\ScriptEvents;......cla
1d540 73 73 20 53 74 61 74 75 73 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 ss.StatusCommand.extends.Command
1d560 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 65 28 .{.protected.function.configure(
1d580 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 73 74 61 74 75 73 27 29 0a 2d 3e ).{.$this.->setName('status').->
1d5a0 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 53 68 6f 77 20 61 20 6c 69 73 74 20 6f 66 20 6c setDescription('Show.a.list.of.l
1d5c0 6f 63 61 6c 6c 79 20 6d 6f 64 69 66 69 65 64 20 70 61 63 6b 61 67 65 73 27 29 0a 2d 3e 73 65 74 ocally.modified.packages').->set
1d5e0 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f Definition(array(.new.InputOptio
1d600 6e 28 27 76 65 72 62 6f 73 65 27 2c 20 27 76 7c 76 76 7c 76 76 76 27 2c 20 49 6e 70 75 74 4f 70 n('verbose',.'v|vv|vvv',.InputOp
1d620 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 53 68 6f 77 20 6d 6f 64 69 66 69 65 64 tion::VALUE_NONE,.'Show.modified
1d640 20 66 69 6c 65 73 20 66 6f 72 20 65 61 63 68 20 64 69 72 65 63 74 6f 72 79 20 74 68 61 74 20 63 .files.for.each.directory.that.c
1d660 6f 6e 74 61 69 6e 73 20 63 68 61 6e 67 65 73 2e 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 48 65 6c 70 ontains.changes.'),.)).->setHelp
1d680 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70 6c (<<<EOT.The.status.command.displ
1d6a0 61 79 73 20 61 20 6c 69 73 74 20 6f 66 20 64 65 70 65 6e 64 65 6e 63 69 65 73 20 74 68 61 74 20 ays.a.list.of.dependencies.that.
1d6c0 68 61 76 65 0a 62 65 65 6e 20 6d 6f 64 69 66 69 65 64 20 6c 6f 63 61 6c 6c 79 2e 0a 0a 45 4f 54 have.been.modified.locally...EOT
1d6e0 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 63 75 .).;.}..protected.function.execu
1d700 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
1d720 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 Interface.$output).{...$composer
1d740 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 0a 24 63 6f 6d 6d 61 .=.$this->getComposer();..$comma
1d760 6e 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 50 6c 75 67 69 ndEvent.=.new.CommandEvent(Plugi
1d780 6e 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d 41 4e 44 2c 20 27 73 74 61 74 75 73 27 2c 20 24 69 6e 70 nEvents::COMMAND,.'status',.$inp
1d7a0 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e ut,.$output);.$composer->getEven
1d7c0 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 28 24 63 6f 6d 6d 61 6e 64 tDispatcher()->dispatch($command
1d7e0 45 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 45 76 65 6e 74 29 Event->getName(),.$commandEvent)
1d800 3b 0a 0a 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 ;..$installedRepo.=.$composer->g
1d820 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 4c 6f 63 61 6c 52 etRepositoryManager()->getLocalR
1d840 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 24 64 6d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 epository();..$dm.=.$composer->g
1d860 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 24 69 6d 20 3d 20 24 63 6f 6d 70 etDownloadManager();.$im.=.$comp
1d880 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 72 28 29 3b 0a oser->getInstallationManager();.
1d8a0 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 ...$composer->getEventDispatcher
1d8c0 28 29 2d 3e 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 53 63 72 69 70 74 45 ()->dispatchCommandEvent(ScriptE
1d8e0 76 65 6e 74 73 3a 3a 50 52 45 5f 53 54 41 54 55 53 5f 43 4d 44 2c 20 74 72 75 65 29 3b 0a 0a 24 vents::PRE_STATUS_CMD,.true);..$
1d900 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 69 errors.=.array();....foreach.($i
1d920 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.$
1d940 70 61 63 6b 61 67 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 64 6d 2d 3e 67 65 package).{.$downloader.=.$dm->ge
1d960 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 67 65 28 24 tDownloaderForInstalledPackage($
1d980 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 24 64 6f 77 6e 6c 6f 61 64 65 72 20 69 6e 73 74 61 package);..if.($downloader.insta
1d9a0 6e 63 65 6f 66 20 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 nceof.ChangeReportInterface).{.$
1d9c0 74 61 72 67 65 74 44 69 72 20 3d 20 24 69 6d 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 targetDir.=.$im->getInstallPath(
1d9e0 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 24 63 68 61 6e 67 65 73 20 3d 20 24 64 6f 77 6e $package);..if.($changes.=.$down
1da00 6c 6f 61 64 65 72 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 loader->getLocalChanges($package
1da20 2c 20 24 74 61 72 67 65 74 44 69 72 29 29 20 7b 0a 24 65 72 72 6f 72 73 5b 24 74 61 72 67 65 74 ,.$targetDir)).{.$errors[$target
1da40 44 69 72 5d 20 3d 20 24 63 68 61 6e 67 65 73 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 Dir].=.$changes;.}.}.}....if.(!$
1da60 65 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 28 27 3c 69 6e 66 errors).{.$output->writeln('<inf
1da80 6f 3e 4e 6f 20 6c 6f 63 61 6c 20 63 68 61 6e 67 65 73 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 20 65 o>No.local.changes</info>');.}.e
1daa0 6c 73 65 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 72 3e 59 lse.{.$output->writeln('<error>Y
1dac0 6f 75 20 68 61 76 65 20 63 68 61 6e 67 65 73 20 69 6e 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 ou.have.changes.in.the.following
1dae0 20 64 65 70 65 6e 64 65 6e 63 69 65 73 3a 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 0a 66 6f 72 .dependencies:</error>');.}..for
1db00 65 61 63 68 20 28 24 65 72 72 6f 72 73 20 61 73 20 24 70 61 74 68 20 3d 3e 20 24 63 68 61 6e 67 each.($errors.as.$path.=>.$chang
1db20 65 73 29 20 7b 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 76 65 72 es).{.if.($input->getOption('ver
1db40 62 6f 73 65 27 29 29 20 7b 0a 24 69 6e 64 65 6e 74 65 64 43 68 61 6e 67 65 73 20 3d 20 69 6d 70 bose')).{.$indentedChanges.=.imp
1db60 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 lode("\n",.array_map(function.($
1db80 6c 69 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 27 20 2e 20 24 6c 69 6e 65 3b 0a 7d line).{.return.'....'...$line;.}
1dba0 2c 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 63 68 61 6e 67 65 73 29 29 29 3b 0a 24 6f 75 ,.explode("\n",.$changes)));.$ou
1dbc0 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 3c 69 6e 66 6f 3e 27 2e 24 70 61 74 68 2e 27 3c 2f tput->writeln('<info>'.$path.'</
1dbe0 69 6e 66 6f 3e 3a 27 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 69 6e 64 65 info>:');.$output->writeln($inde
1dc00 6e 74 65 64 43 68 61 6e 67 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e ntedChanges);.}.else.{.$output->
1dc20 77 72 69 74 65 6c 6e 28 24 70 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 65 72 72 6f 72 73 writeln($path);.}.}..if.($errors
1dc40 20 26 26 20 21 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 .&&.!$input->getOption('verbose'
1dc60 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 55 73 65 20 2d 2d 76 65 72 )).{.$output->writeln('Use.--ver
1dc80 62 6f 73 65 20 28 2d 76 29 20 74 6f 20 73 65 65 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 bose.(-v).to.see.modified.files'
1dca0 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 );.}....$composer->getEventDispa
1dcc0 74 63 68 65 72 28 29 2d 3e 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 53 63 tcher()->dispatchCommandEvent(Sc
1dce0 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 4f 53 54 5f 53 54 41 54 55 53 5f 43 4d 44 2c 20 74 72 75 riptEvents::POST_STATUS_CMD,.tru
1dd00 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 72 72 6f 72 73 20 3f 20 31 20 3a 20 30 3b 0a 7d 0a 7d e);..return.$errors.?.1.:.0;.}.}
1dd20 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
1dd40 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 4a 73 6f 6e oser\Command;..use.Composer\Json
1dd60 5c 4a 73 6f 6e 46 69 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 \JsonFile;.use.Composer\Factory;
1dd80 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 6b 61 67 .use.Composer\Package\BasePackag
1dda0 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
1ddc0 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 siteRepository;.use.Composer\Rep
1dde0 6f 73 69 74 6f 72 79 5c 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 ository\PlatformRepository;.use.
1de00 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 6e Composer\Package\Version\Version
1de20 50 61 72 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 Parser;.use.Symfony\Component\Co
1de40 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.
1de60 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\
1de80 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 InputOption;.use.Symfony\Compone
1dea0 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
1dec0 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 50 72 6f 63 65 73 73 e;.use.Symfony\Component\Process
1dee0 5c 50 72 6f 63 65 73 73 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c \Process;.use.Symfony\Component\
1df00 50 72 6f 63 65 73 73 5c 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 63 Process\ExecutableFinder;......c
1df20 6c 61 73 73 20 49 6e 69 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 6e 64 lass.InitCommand.extends.Command
1df40 0a 7b 0a 70 72 69 76 61 74 65 20 24 67 69 74 43 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 .{.private.$gitConfig;.private.$
1df60 72 65 70 6f 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 repos;..public.function.parseAut
1df80 68 6f 72 53 74 72 69 6e 67 28 24 61 75 74 68 6f 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 horString($author).{.if.(preg_ma
1dfa0 74 63 68 28 27 2f 5e 28 3f 50 3c 6e 61 6d 65 3e 5b 2d 20 5c 2e 2c 5c 70 7b 4c 7d 5c 27 e2 80 99 tch('/^(?P<name>[-.\.,\p{L}\'...
1dfc0 5d 2b 29 20 3c 28 3f 50 3c 65 6d 61 69 6c 3e 2e 2b 3f 29 3e 24 2f 75 27 2c 20 24 61 75 74 68 6f ]+).<(?P<email>.+?)>$/u',.$autho
1dfe0 72 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 56 61 6c 69 64 r,.$match)).{.if.($this->isValid
1e000 45 6d 61 69 6c 28 24 6d 61 74 63 68 5b 27 65 6d 61 69 6c 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e Email($match['email'])).{.return
1e020 20 61 72 72 61 79 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 .array(.'name'.=>.trim($match['n
1e040 61 6d 65 27 5d 29 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 ame']),.'email'.=>.$match['email
1e060 27 5d 0a 29 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 67 '].);.}.}..throw.new.\InvalidArg
1e080 75 6d 65 6e 74 45 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 umentException(.'Invalid.author.
1e0a0 73 74 72 69 6e 67 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 string...Must.be.in.the.format:.
1e0c0 27 2e 0a 27 4a 6f 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 '..'John.Smith.<john@example.com
1e0e0 3e 27 0a 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 6f 6e 66 >'.);.}..protected.function.conf
1e100 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 69 6e 69 74 27 igure().{.$this.->setName('init'
1e120 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 73 20 61 20 62 61 ).->setDescription('Creates.a.ba
1e140 73 69 63 20 63 6f 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 sic.composer.json.file.in.curren
1e160 74 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 69 6f 6e 28 61 t.directory.').->setDefinition(a
1e180 72 72 61 79 28 0a 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 rray(.new.InputOption('name',.nu
1e1a0 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,
1e1c0 20 27 4e 61 6d 65 20 6f 66 20 74 68 65 20 70 61 63 6b 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 .'Name.of.the.package'),.new.Inp
1e1e0 75 74 4f 70 74 69 6f 6e 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 20 6e 75 6c 6c 2c 20 49 6e utOption('description',.null,.In
1e200 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 44 65 73 63 putOption::VALUE_REQUIRED,.'Desc
1e220 72 69 70 74 69 6f 6e 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 ription.of.package'),.new.InputO
1e240 70 74 69 6f 6e 28 27 61 75 74 68 6f 72 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f ption('author',.null,.InputOptio
1e260 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 41 75 74 68 6f 72 20 6e 61 6d 65 20 n::VALUE_REQUIRED,.'Author.name.
1e280 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 0a 20 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 of.package'),...new.InputOption(
1e2a0 27 68 6f 6d 65 70 61 67 65 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 'homepage',.null,.InputOption::V
1e2c0 41 4c 55 45 5f 52 45 51 55 49 52 45 44 2c 20 27 48 6f 6d 65 70 61 67 65 20 6f 66 20 70 61 63 6b ALUE_REQUIRED,.'Homepage.of.pack
1e2e0 61 67 65 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 27 age'),.new.InputOption('require'
1e300 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 49 53 5f 41 52 ,.null,.InputOption::VALUE_IS_AR
1e320 52 41 59 20 7c 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 RAY.|.InputOption::VALUE_REQUIRE
1e340 44 2c 20 27 50 61 63 6b 61 67 65 20 74 6f 20 72 65 71 75 69 72 65 20 77 69 74 68 20 61 20 76 65 D,.'Package.to.require.with.a.ve
1e360 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 2c 20 65 2e 67 2e 20 66 6f 6f 2f 62 61 72 3a 31 rsion.constraint,.e.g..foo/bar:1
1e380 2e 30 2e 30 20 6f 72 20 66 6f 6f 2f 62 61 72 3d 31 2e 30 2e 30 20 6f 72 20 22 66 6f 6f 2f 62 61 .0.0.or.foo/bar=1.0.0.or."foo/ba
1e3a0 72 20 31 2e 30 2e 30 22 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 72 65 71 r.1.0.0"'),.new.InputOption('req
1e3c0 75 69 72 65 2d 64 65 76 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 uire-dev',.null,.InputOption::VA
1e3e0 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 55 LUE_IS_ARRAY.|.InputOption::VALU
1e400 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 20 E_REQUIRED,.'Package.to.require.
1e420 66 6f 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 20 77 69 74 68 20 61 20 76 65 72 73 69 6f 6e 20 63 for.development.with.a.version.c
1e440 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 72 onstraint,.e.g..foo/bar:1.0.0.or
1e460 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 30 .foo/bar=1.0.0.or."foo/bar.1.0.0
1e480 22 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 "'),.new.InputOption('stability'
1e4a0 2c 20 27 73 27 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 ,.'s',.InputOption::VALUE_REQUIR
1e4c0 45 44 2c 20 27 4d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 79 20 28 65 6d 70 74 79 20 6f 72 ED,.'Minimum.stability.(empty.or
1e4e0 20 6f 6e 65 20 6f 66 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 .one.of:.'.implode(',.',.array_k
1e500 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e eys(BasePackage::$stabilities)).
1e520 27 29 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 6c 69 63 65 6e 73 65 27 2c ')'),.new.InputOption('license',
1e540 20 27 6c 27 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 .'l',.InputOption::VALUE_REQUIRE
1e560 44 2c 20 27 4c 69 63 65 6e 73 65 20 6f 66 20 70 61 63 6b 61 67 65 27 29 2c 0a 29 29 0a 2d 3e 73 D,.'License.of.package'),.)).->s
1e580 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 54 0a 54 68 65 20 3c 69 6e 66 6f 3e 69 6e 69 74 3c 2f 69 6e etHelp(<<<EOT.The.<info>init</in
1e5a0 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 63 72 65 61 74 65 73 20 61 20 62 61 73 69 63 20 63 6f 6d 70 fo>.command.creates.a.basic.comp
1e5c0 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 0a 69 6e 20 74 68 65 20 63 75 72 72 65 6e 74 20 64 69 oser.json.file.in.the.current.di
1e5e0 72 65 63 74 6f 72 79 2e 0a 0a 3c 69 6e 66 6f 3e 70 68 70 20 63 6f 6d 70 6f 73 65 72 2e 70 68 61 rectory...<info>php.composer.pha
1e600 72 20 69 6e 69 74 3c 2f 69 6e 66 6f 3e 0a 0a 45 4f 54 0a 29 0a 3b 0a 7d 0a 0a 70 72 6f 74 65 63 r.init</info>..EOT.).;.}..protec
1e620 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
1e640 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
1e660 70 75 74 29 0a 7b 0a 24 64 69 61 6c 6f 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 48 65 6c 70 65 put).{.$dialog.=.$this->getHelpe
1e680 72 53 65 74 28 29 2d 3e 67 65 74 28 27 64 69 61 6c 6f 67 27 29 3b 0a 0a 24 77 68 69 74 65 6c 69 rSet()->get('dialog');..$whiteli
1e6a0 73 74 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 2c 20 27 64 65 73 63 72 69 70 74 69 6f 6e 27 st.=.array('name',.'description'
1e6c0 2c 20 27 61 75 74 68 6f 72 27 2c 20 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 72 65 71 75 69 72 65 ,.'author',.'homepage',.'require
1e6e0 27 2c 20 27 72 65 71 75 69 72 65 2d 64 65 76 27 2c 20 27 73 74 61 62 69 6c 69 74 79 27 2c 20 27 ',.'require-dev',.'stability',.'
1e700 6c 69 63 65 6e 73 65 27 29 3b 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 66 69 6c license');..$options.=.array_fil
1e720 74 65 72 28 61 72 72 61 79 5f 69 6e 74 65 72 73 65 63 74 5f 6b 65 79 28 24 69 6e 70 75 74 2d 3e ter(array_intersect_key($input->
1e740 67 65 74 4f 70 74 69 6f 6e 73 28 29 2c 20 61 72 72 61 79 5f 66 6c 69 70 28 24 77 68 69 74 65 6c getOptions(),.array_flip($whitel
1e760 69 73 74 29 29 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 ist)));..if.(isset($options['aut
1e780 68 6f 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 73 27 5d 20 3d 20 hor'])).{.$options['authors'].=.
1e7a0 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 41 75 74 68 6f 72 73 28 24 6f 70 74 69 6f 6e 73 5b 27 61 $this->formatAuthors($options['a
1e7c0 75 74 68 6f 72 27 5d 29 3b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 61 75 74 68 6f 72 uthor']);.unset($options['author
1e7e0 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 ']);.}..if.(isset($options['stab
1e800 69 6c 69 74 79 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 ility'])).{.$options['minimum-st
1e820 61 62 69 6c 69 74 79 27 5d 20 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 ability'].=.$options['stability'
1e840 5d 3b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 73 74 61 62 69 6c 69 74 79 27 5d 29 3b ];.unset($options['stability']);
1e860 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 20 3d 20 69 73 73 65 74 28 .}..$options['require'].=.isset(
1e880 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 66 6f $options['require']).?.$this->fo
1e8a0 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 rmatRequirements($options['requi
1e8c0 72 65 27 5d 29 20 3a 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 69 66 20 28 61 72 72 61 79 re']).:.new.\stdClass;.if.(array
1e8e0 28 29 20 3d 3d 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 29 20 7b 0a 24 6f ().===.$options['require']).{.$o
1e900 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 27 5d 20 3d 20 6e 65 77 20 5c 73 74 64 43 6c 61 73 ptions['require'].=.new.\stdClas
1e920 73 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 s;.}..if.(isset($options['requir
1e940 65 2d 64 65 76 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 e-dev'])).{.$options['require-de
1e960 76 27 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 52 65 71 75 69 72 65 6d 65 6e 74 73 28 v'].=.$this->formatRequirements(
1e980 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 20 3b 0a 69 66 20 28 61 $options['require-dev']).;.if.(a
1e9a0 72 72 61 79 28 29 20 3d 3d 3d 20 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 rray().===.$options['require-dev
1e9c0 27 5d 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 20 3d 20 ']).{.$options['require-dev'].=.
1e9e0 6e 65 77 20 5c 73 74 64 43 6c 61 73 73 3b 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 6e 65 77 20 new.\stdClass;.}.}..$file.=.new.
1ea00 4a 73 6f 6e 46 69 6c 65 28 27 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 3b 0a 0a 24 6a 73 6f JsonFile('composer.json');..$jso
1ea20 6e 20 3d 20 24 66 69 6c 65 2d 3e 65 6e 63 6f 64 65 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 n.=.$file->encode($options);..if
1ea40 20 28 24 69 6e 70 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 6f 75 .($input->isInteractive()).{.$ou
1ea60 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 24 6a 73 6f 6e 2c 0a tput->writeln(array(.'',.$json,.
1ea80 27 27 0a 29 29 3b 0a 69 66 20 28 21 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 ''.));.if.(!$dialog->askConfirma
1eaa0 74 69 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 64 69 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 tion($output,.$dialog->getQuesti
1eac0 6f 6e 28 27 44 6f 20 79 6f 75 20 63 6f 6e 66 69 72 6d 20 67 65 6e 65 72 61 74 69 6f 6e 27 2c 20 on('Do.you.confirm.generation',.
1eae0 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 'yes',.'?'),.true)).{.$output->w
1eb00 72 69 74 65 6c 6e 28 27 3c 65 72 72 6f 72 3e 43 6f 6d 6d 61 6e 64 20 61 62 6f 72 74 65 64 3c 2f riteln('<error>Command.aborted</
1eb20 65 72 72 6f 72 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 7d 0a 0a 24 66 69 6c 65 2d error>');..return.1;.}.}..$file-
1eb40 3e 77 72 69 74 65 28 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e 69 >write($options);..if.($input->i
1eb60 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 26 26 20 69 73 5f 64 69 72 28 27 2e 67 69 74 27 29 sInteractive().&&.is_dir('.git')
1eb80 29 20 7b 0a 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 67 69 74 ).{.$ignoreFile.=.realpath('.git
1eba0 69 67 6e 6f 72 65 27 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 69 67 6e 6f 72 65 ignore');..if.(false.===.$ignore
1ebc0 46 69 6c 65 29 20 7b 0a 24 69 67 6e 6f 72 65 46 69 6c 65 20 3d 20 72 65 61 6c 70 61 74 68 28 27 File).{.$ignoreFile.=.realpath('
1ebe0 2e 27 29 20 2e 20 27 2f 2e 67 69 74 69 67 6e 6f 72 65 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 .')...'/.gitignore';.}..if.(!$th
1ec00 69 73 2d 3e 68 61 73 56 65 6e 64 6f 72 49 67 6e 6f 72 65 28 24 69 67 6e 6f 72 65 46 69 6c 65 29 is->hasVendorIgnore($ignoreFile)
1ec20 29 20 7b 0a 24 71 75 65 73 74 69 6f 6e 20 3d 20 27 57 6f 75 6c 64 20 79 6f 75 20 6c 69 6b 65 20 ).{.$question.=.'Would.you.like.
1ec40 74 68 65 20 3c 69 6e 66 6f 3e 76 65 6e 64 6f 72 3c 2f 69 6e 66 6f 3e 20 64 69 72 65 63 74 6f 72 the.<info>vendor</info>.director
1ec60 79 20 61 64 64 65 64 20 74 6f 20 79 6f 75 72 20 3c 69 6e 66 6f 3e 2e 67 69 74 69 67 6e 6f 72 65 y.added.to.your.<info>.gitignore
1ec80 3c 2f 69 6e 66 6f 3e 20 5b 3c 63 6f 6d 6d 65 6e 74 3e 79 65 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 5d </info>.[<comment>yes</comment>]
1eca0 3f 27 3b 0a 0a 69 66 20 28 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 43 6f 6e 66 69 72 6d 61 74 69 6f ?';..if.($dialog->askConfirmatio
1ecc0 6e 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 74 72 75 65 29 29 20 7b 0a 24 n($output,.$question,.true)).{.$
1ece0 74 68 69 73 2d 3e 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 this->addVendorIgnore($ignoreFil
1ed00 65 29 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 e);.}.}.}.}..protected.function.
1ed20 69 6e 74 65 72 61 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 interact(InputInterface.$input,.
1ed40 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 67 69 74 20 OutputInterface.$output).{.$git.
1ed60 3d 20 24 74 68 69 73 2d 3e 67 65 74 47 69 74 43 6f 6e 66 69 67 28 29 3b 0a 0a 24 64 69 61 6c 6f =.$this->getGitConfig();..$dialo
1ed80 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 28 27 g.=.$this->getHelperSet()->get('
1eda0 64 69 61 6c 6f 67 27 29 3b 0a 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 dialog');.$formatter.=.$this->ge
1edc0 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 66 6f 72 6d 61 74 74 65 72 27 29 3b 0a tHelperSet()->get('formatter');.
1ede0 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 24 66 6f 72 $output->writeln(array(.'',.$for
1ee00 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 27 57 65 6c 63 6f 6d 65 20 74 6f 20 matter->formatBlock('Welcome.to.
1ee20 74 68 65 20 43 6f 6d 70 6f 73 65 72 20 63 6f 6e 66 69 67 20 67 65 6e 65 72 61 74 6f 72 27 2c 20 the.Composer.config.generator',.
1ee40 27 62 67 3d 62 6c 75 65 3b 66 67 3d 77 68 69 74 65 27 2c 20 74 72 75 65 29 2c 0a 27 27 0a 29 29 'bg=blue;fg=white',.true),.''.))
1ee60 3b 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c ;....$output->writeln(array(.'',
1ee80 0a 27 54 68 69 73 20 63 6f 6d 6d 61 6e 64 20 77 69 6c 6c 20 67 75 69 64 65 20 79 6f 75 20 74 68 .'This.command.will.guide.you.th
1eea0 72 6f 75 67 68 20 63 72 65 61 74 69 6e 67 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f rough.creating.your.composer.jso
1eec0 6e 20 63 6f 6e 66 69 67 2e 27 2c 0a 27 27 2c 0a 29 29 3b 0a 0a 24 63 77 64 20 3d 20 72 65 61 6c n.config.',.'',.));..$cwd.=.real
1eee0 70 61 74 68 28 22 2e 22 29 3b 0a 0a 69 66 20 28 21 24 6e 61 6d 65 20 3d 20 24 69 6e 70 75 74 2d path(".");..if.(!$name.=.$input-
1ef00 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 61 >getOption('name')).{.$name.=.ba
1ef20 73 65 6e 61 6d 65 28 24 63 77 64 29 3b 0a 24 6e 61 6d 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 sename($cwd);.$name.=.preg_repla
1ef40 63 65 28 27 7b 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 ce('{(?:([a-z])([A-Z])|([A-Z])([
1ef60 41 2d 5a 5d 5b 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 A-Z][a-z]))}',.'\\1\\3-\\2\\4',.
1ef80 24 6e 61 6d 65 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 $name);.$name.=.strtolower($name
1efa0 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 67 69 74 5b 27 67 69 74 68 75 62 2e 75 73 65 72 27 5d );.if.(isset($git['github.user']
1efc0 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 24 67 69 74 5b 27 67 69 74 68 75 62 2e 75 73 65 72 27 5d )).{.$name.=.$git['github.user']
1efe0 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 21 65 6d 70 74 79 ...'/'...$name;.}.elseif.(!empty
1f000 28 24 5f 53 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 27 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 ($_SERVER['USERNAME'])).{.$name.
1f020 3d 20 24 5f 53 45 52 56 45 52 5b 27 55 53 45 52 4e 41 4d 45 27 5d 20 2e 20 27 2f 27 20 2e 20 24 =.$_SERVER['USERNAME']...'/'...$
1f040 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 67 65 74 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 name;.}.elseif.(get_current_user
1f060 28 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 67 65 74 5f 63 75 72 72 65 6e 74 5f 75 73 65 72 28 29 ()).{.$name.=.get_current_user()
1f080 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6e 61 6d 65 ...'/'...$name;.}.else.{...$name
1f0a0 20 3d 20 24 6e 61 6d 65 20 2e 20 27 2f 27 20 2e 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 20 65 6c 73 65 .=.$name...'/'...$name;.}.}.else
1f0c0 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 30 2d 39 5f 2e 2d .{.if.(!preg_match('{^[a-z0-9_.-
1f0e0 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 24 7d 27 2c 20 24 6e 61 6d 65 29 29 20 7b 0a 74 68 ]+/[a-z0-9_.-]+$}',.$name)).{.th
1f100 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
1f120 6e 28 0a 27 54 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 27 2e 24 6e 61 6d 65 2e 27 20 69 n(.'The.package.name.'.$name.'.i
1f140 73 20 69 6e 76 61 6c 69 64 2c 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 77 65 72 63 61 73 s.invalid,.it.should.be.lowercas
1f160 65 20 61 6e 64 20 68 61 76 65 20 61 20 76 65 6e 64 6f 72 20 6e 61 6d 65 2c 20 61 20 66 6f 72 77 e.and.have.a.vendor.name,.a.forw
1f180 61 72 64 20 73 6c 61 73 68 2c 20 61 6e 64 20 61 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 6d ard.slash,.and.a.package.name,.m
1f1a0 61 74 63 68 69 6e 67 3a 20 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d atching:.[a-z0-9_.-]+/[a-z0-9_.-
1f1c0 5d 2b 27 0a 29 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 ]+'.);.}.}..$name.=.$dialog->ask
1f1e0 41 6e 64 56 61 6c 69 64 61 74 65 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 61 6c 6f 67 2d 3e 67 AndValidate(.$output,.$dialog->g
1f200 65 74 51 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 etQuestion('Package.name.(<vendo
1f220 72 3e 2f 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 r>/<name>)',.$name),.function.($
1f240 76 61 6c 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 value).use.($name).{.if.(null.==
1f260 3d 20 24 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 =.$value).{.return.$name;.}..if.
1f280 28 21 70 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 (!preg_match('{^[a-z0-9_.-]+/[a-
1f2a0 7a 30 2d 39 5f 2e 2d 5d 2b 24 7d 27 2c 20 24 76 61 6c 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e z0-9_.-]+$}',.$value)).{.throw.n
1f2c0 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 0a 27 54 ew.\InvalidArgumentException(.'T
1f2e0 68 65 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 he.package.name.'.$value.'.is.in
1f300 76 61 6c 69 64 2c 20 69 74 20 73 68 6f 75 6c 64 20 62 65 20 6c 6f 77 65 72 63 61 73 65 20 61 6e valid,.it.should.be.lowercase.an
1f320 64 20 68 61 76 65 20 61 20 76 65 6e 64 6f 72 20 6e 61 6d 65 2c 20 61 20 66 6f 72 77 61 72 64 20 d.have.a.vendor.name,.a.forward.
1f340 73 6c 61 73 68 2c 20 61 6e 64 20 61 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 6d 61 74 63 68 slash,.and.a.package.name,.match
1f360 69 6e 67 3a 20 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 2f 5b 61 2d 7a 30 2d 39 5f 2e 2d 5d 2b 27 0a ing:.[a-z0-9_.-]+/[a-z0-9_.-]+'.
1f380 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 74 );.}..return.$value;.}.);.$input
1f3a0 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6e 61 6d 65 27 2c 20 24 6e 61 6d 65 29 3b 0a 0a 24 64 65 ->setOption('name',.$name);..$de
1f3c0 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 64 scription.=.$input->getOption('d
1f3e0 65 73 63 72 69 70 74 69 6f 6e 27 29 20 3f 3a 20 66 61 6c 73 65 3b 0a 24 64 65 73 63 72 69 70 74 escription').?:.false;.$descript
1f400 69 6f 6e 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 0a 24 6f 75 74 70 75 74 2c 0a 24 64 69 ion.=.$dialog->ask(.$output,.$di
1f420 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 44 65 73 63 72 69 70 74 69 6f 6e 27 2c alog->getQuestion('Description',
1f440 20 24 64 65 73 63 72 69 70 74 69 6f 6e 29 2c 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 0a 29 3b 0a .$description),.$description.);.
1f460 24 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 $input->setOption('description',
1f480 20 24 64 65 73 63 72 69 70 74 69 6f 6e 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 .$description);..if.(null.===.$a
1f4a0 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
1f4c0 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
1f4e0 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'])
1f500 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>',
1f520 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
1f540 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
1f560 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(.
1f580 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
1f5a0 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
1f5c0 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
1f5e0 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
1f600 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
1f620 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
1f640 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
1f660 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
1f680 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 6d 69 6e Option('author',.$author);..$min
1f6a0 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f imumStability.=.$input->getOptio
1f6c0 6e 28 27 73 74 61 62 69 6c 69 74 79 27 29 20 3f 3a 20 27 27 3b 0a 24 6d 69 6e 69 6d 75 6d 53 74 n('stability').?:.'';.$minimumSt
1f6e0 61 62 69 6c 69 74 79 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 ability.=.$dialog->askAndValidat
1f700 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 75 65 73 74 69 6f 6e e(.$output,.$dialog->getQuestion
1f720 28 27 4d 69 6e 69 6d 75 6d 20 53 74 61 62 69 6c 69 74 79 27 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 ('Minimum.Stability',.$minimumSt
1f740 61 62 69 6c 69 74 79 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 75 73 65 20 ability),.function.($value).use.
1f760 28 24 73 65 6c 66 2c 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 20 7b 0a 69 66 20 ($self,.$minimumStability).{.if.
1f780 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 69 6e 69 (null.===.$value).{.return.$mini
1f7a0 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 42 61 73 65 mumStability;.}..if.(!isset(Base
1f7c0 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 76 61 6c 75 65 5d 29 29 20 Package::$stabilities[$value])).
1f7e0 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
1f800 70 74 69 6f 6e 28 0a 27 49 6e 76 61 6c 69 64 20 6d 69 6e 69 6d 75 6d 20 73 74 61 62 69 6c 69 74 ption(.'Invalid.minimum.stabilit
1f820 79 20 22 27 2e 24 76 61 6c 75 65 2e 27 22 2e 20 4d 75 73 74 20 62 65 20 65 6d 70 74 79 20 6f 72 y."'.$value.'"..Must.be.empty.or
1f840 20 6f 6e 65 20 6f 66 3a 20 27 2e 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f .one.of:.'..implode(',.',.array_
1f860 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 keys(BasePackage::$stabilities))
1f880 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 29 3b 0a 24 69 6e 70 75 .);.}..return.$value;.}.);.$inpu
1f8a0 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 73 74 61 62 69 6c 69 74 79 27 2c 20 24 6d 69 6e 69 6d t->setOption('stability',.$minim
1f8c0 75 6d 53 74 61 62 69 6c 69 74 79 29 3b 0a 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 69 6e 70 75 74 umStability);..$license.=.$input
1f8e0 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 6c 69 63 65 6e 73 65 27 29 20 3f 3a 20 66 61 6c 73 65 3b ->getOption('license').?:.false;
1f900 0a 24 6c 69 63 65 6e 73 65 20 3d 20 24 64 69 61 6c 6f 67 2d 3e 61 73 6b 28 0a 24 6f 75 74 70 75 .$license.=.$dialog->ask(.$outpu
1f920 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 4c 69 63 65 6e 73 65 t,.$dialog->getQuestion('License
1f940 27 2c 20 24 6c 69 63 65 6e 73 65 29 2c 0a 24 6c 69 63 65 6e 73 65 0a 29 3b 0a 24 69 6e 70 75 74 ',.$license),.$license.);.$input
1f960 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 6c 69 63 65 6e 73 65 27 2c 20 24 6c 69 63 65 6e 73 65 29 ->setOption('license',.$license)
1f980 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 27 ;..$output->writeln(array(.'',.'
1f9a0 44 65 66 69 6e 65 20 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 Define.your.dependencies.',.''.)
1f9c0 29 3b 0a 0a 24 72 65 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 );..$requirements.=.array();.if.
1f9e0 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
1fa00 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 57 6f 75 6c 64 20 79 t,.$dialog->getQuestion('Would.y
1fa20 6f 75 20 6c 69 6b 65 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 ou.like.to.define.your.dependenc
1fa40 69 65 73 20 28 72 65 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 ies.(require).interactively',.'y
1fa60 65 73 27 2c 20 27 3f 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 es',.'?'),.true)).{.$requirement
1fa80 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 6e 74 73 s.=.$this->determineRequirements
1faa0 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 4f 70 74 ($input,.$output,.$input->getOpt
1fac0 69 6f 6e 28 27 72 65 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 ion('require'));.}.$input->setOp
1fae0 74 69 6f 6e 28 27 72 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 tion('require',.$requirements);.
1fb00 24 64 65 76 52 65 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 $devRequirements.=.array();.if.(
1fb20 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 74 $dialog->askConfirmation($output
1fb40 2c 20 24 64 69 61 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 ,.$dialog->getQuestion('Would.yo
1fb60 75 20 6c 69 6b 65 20 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 u.like.to.define.your.dev.depend
1fb80 65 6e 63 69 65 73 20 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 encies.(require-dev).interactive
1fba0 6c 79 27 2c 20 27 79 65 73 27 2c 20 27 3f 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 24 64 65 76 52 ly',.'yes',.'?'),.true)).{.$devR
1fbc0 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 74 65 72 6d 69 6e 65 52 65 equirements.=.$this->determineRe
1fbe0 71 75 69 72 65 6d 65 6e 74 73 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 69 6e 70 quirements($input,.$output,.$inp
1fc00 75 74 2d 3e 67 65 74 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 ut->getOption('require-dev'));.}
1fc20 0a 24 69 6e 70 75 74 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 72 65 71 75 69 72 65 2d 64 65 76 27 .$input->setOption('require-dev'
1fc40 2c 20 24 64 65 76 52 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 ,.$devRequirements);.}..protecte
1fc60 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 29 0a 7b d.function.findPackages($name).{
1fc80 0a 24 70 61 63 6b 61 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 .$packages.=.array();....if.(!$t
1fca0 68 69 73 2d 3e 72 65 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 his->repos).{.$this->repos.=.new
1fcc0 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 6f 73 69 74 6f 72 79 28 61 72 72 61 79 5f 6d 65 72 67 65 .CompositeRepository(array_merge
1fce0 28 0a 61 72 72 61 79 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 (.array(new.PlatformRepository),
1fd00 0a 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 6f 72 .Factory::createDefaultRepositor
1fd20 69 65 73 28 24 74 68 69 73 2d 3e 67 65 74 49 4f 28 29 29 0a 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 ies($this->getIO()).));.}..retur
1fd40 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 2d 3e 73 65 61 72 63 68 28 24 6e 61 6d 65 29 3b 0a 7d n.$this->repos->search($name);.}
1fd60 0a 0a 70 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 ..protected.function.determineRe
1fd80 71 75 69 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 quirements(InputInterface.$input
1fda0 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 24 72 65 71 75 ,.OutputInterface.$output,.$requ
1fdc0 69 72 65 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 ires.=.array()).{.$dialog.=.$thi
1fde0 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')
1fe00 3b 0a 24 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 ;.$prompt.=.$dialog->getQuestion
1fe20 28 27 53 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 ('Search.for.a.package',.false,.
1fe40 27 3a 27 29 3b 0a 0a 69 66 20 28 24 72 65 71 75 69 72 65 73 29 20 7b 0a 24 72 65 71 75 69 72 65 ':');..if.($requires).{.$require
1fe60 73 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 73 s.=.$this->normalizeRequirements
1fe80 28 24 72 65 71 75 69 72 65 73 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a ($requires);.$result.=.array();.
1fea0 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 .foreach.($requires.as.$key.=>.$
1fec0 72 65 71 75 69 72 65 6d 65 6e 74 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 71 75 69 requirement).{.if.(!isset($requi
1fee0 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 26 26 20 24 69 6e 70 75 74 2d 3e 69 73 rement['version']).&&.$input->is
1ff00 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 71 75 65 73 74 69 6f 6e 20 3d 20 24 64 69 Interactive()).{.$question.=.$di
1ff20 61 6c 6f 67 2d 3e 67 65 74 51 75 65 73 74 69 6f 6e 28 27 50 6c 65 61 73 65 20 70 72 6f 76 69 64 alog->getQuestion('Please.provid
1ff40 65 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 66 6f 72 20 74 68 65 20 27 e.a.version.constraint.for.the.'
1ff60 2e 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 27 5d 2e 27 20 72 65 71 75 69 72 65 6d .$requirement['name'].'.requirem
1ff80 65 6e 74 27 29 3b 0a 69 66 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 64 69 61 6c 6f 67 ent');.if.($constraint.=.$dialog
1ffa0 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 29 20 7b 0a 24 72 65 ->ask($output,.$question)).{.$re
1ffc0 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 quirement['version'].=.$constrai
1ffe0 6e 74 3b 0a 7d 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 65 71 75 69 72 65 6d 65 6e 74 5b nt;.}.}.if.(!isset($requirement[
20000 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 'version'])).{.throw.new.\Invali
20020 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 72 65 71 75 69 72 65 6d dArgumentException('The.requirem
20040 65 6e 74 20 27 2e 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 27 5d 2e 27 20 6d 75 73 ent.'.$requirement['name'].'.mus
20060 74 20 63 6f 6e 74 61 69 6e 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 27 29 t.contain.a.version.constraint')
20080 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e ;.}..$result[].=.$requirement['n
200a0 61 6d 65 27 5d 20 2e 20 27 20 27 20 2e 20 24 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 76 65 72 73 ame']...'.'...$requirement['vers
200c0 69 6f 6e 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 77 68 69 ion'];.}..return.$result;.}..whi
200e0 6c 65 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 20 3d 20 24 64 69 61 6c 6f 67 2d le.(null.!==.$package.=.$dialog-
20100 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 70 72 6f 6d 70 74 29 29 20 7b 0a 24 6d 61 74 63 68 >ask($output,.$prompt)).{.$match
20120 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b 61 67 es.=.$this->findPackages($packag
20140 65 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 6f 75 74 e);..if.(count($matches)).{.$out
20160 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 61 72 72 61 79 28 0a 27 27 2c 0a 73 70 72 69 6e 74 66 28 put->writeln(array(.'',.sprintf(
20180 27 46 6f 75 6e 64 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 70 61 63 6b 61 67 65 73 20 'Found.<info>%s</info>.packages.
201a0 6d 61 74 63 68 69 6e 67 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 2c 20 63 6f 75 6e 74 matching.<info>%s</info>',.count
201c0 28 24 6d 61 74 63 68 65 73 29 2c 20 24 70 61 63 6b 61 67 65 29 2c 0a 27 27 0a 29 29 3b 0a 0a 24 ($matches),.$package),.''.));..$
201e0 65 78 61 63 74 4d 61 74 63 68 20 3d 20 6e 75 6c 6c 3b 0a 24 63 68 6f 69 63 65 73 20 3d 20 61 72 exactMatch.=.null;.$choices.=.ar
20200 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 70 6f 73 ray();.foreach.($matches.as.$pos
20220 69 74 69 6f 6e 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 63 68 6f 69 63 65 73 5b 5d 20 ition.=>.$package).{.$choices[].
20240 3d 20 73 70 72 69 6e 74 66 28 27 20 3c 69 6e 66 6f 3e 25 35 73 3c 2f 69 6e 66 6f 3e 20 25 73 27 =.sprintf('.<info>%5s</info>.%s'
20260 2c 20 22 5b 24 70 6f 73 69 74 69 6f 6e 5d 22 2c 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 ,."[$position]",.$package['name'
20280 5d 29 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 20 3d 3d 3d 20 24 70 61 ]);.if.($package['name'].===.$pa
202a0 63 6b 61 67 65 29 20 7b 0a 24 65 78 61 63 74 4d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 62 72 65 ckage).{.$exactMatch.=.true;.bre
202c0 61 6b 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 65 78 61 63 74 4d 61 74 63 68 29 20 7b 0a 24 ak;.}.}....if.(!$exactMatch).{.$
202e0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 63 68 6f 69 63 65 73 29 3b 0a 24 6f 75 74 70 output->writeln($choices);.$outp
20300 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 66 ut->writeln('');..$validator.=.f
20320 75 6e 63 74 69 6f 6e 20 28 24 73 65 6c 65 63 74 69 6f 6e 29 20 75 73 65 20 28 24 6d 61 74 63 68 unction.($selection).use.($match
20340 65 73 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 73 65 6c 65 63 74 69 6f 6e 29 20 7b 0a 72 es).{.if.(''.===.$selection).{.r
20360 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 eturn.false;.}..if.(!is_numeric(
20380 24 73 65 6c 65 63 74 69 6f 6e 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a $selection).&&.preg_match('{^\s*
203a0 28 5c 53 2b 29 5c 73 2b 28 5c 53 2e 2a 29 5c 73 2a 24 7d 27 2c 20 24 73 65 6c 65 63 74 69 6f 6e (\S+)\s+(\S.*)\s*$}',.$selection
203c0 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 31 ,.$matches)).{.return.$matches[1
203e0 5d 2e 27 20 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 ].'.'.$matches[2];.}..if.(!isset
20400 28 24 6d 61 74 63 68 65 73 5b 28 69 6e 74 29 20 24 73 65 6c 65 63 74 69 6f 6e 5d 29 29 20 7b 0a ($matches[(int).$selection])).{.
20420 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 74 20 61 20 76 61 6c 69 throw.new.\Exception('Not.a.vali
20440 64 20 73 65 6c 65 63 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6d 61 d.selection');.}..$package.=.$ma
20460 74 63 68 65 73 5b 28 69 6e 74 29 20 24 73 65 6c 65 63 74 69 6f 6e 5d 3b 0a 0a 72 65 74 75 72 6e tches[(int).$selection];..return
20480 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 3b 0a 7d 3b 0a 0a 24 70 61 63 6b 61 67 65 20 .$package['name'];.};..$package.
204a0 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 75 74 70 75 =.$dialog->askAndValidate($outpu
204c0 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 65 72 20 70 t,.$dialog->getQuestion('Enter.p
204e0 61 63 6b 61 67 65 20 23 20 74 6f 20 61 64 64 2c 20 6f 72 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 ackage.#.to.add,.or.the.complete
20500 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 69 66 20 69 74 20 69 73 20 6e 6f 74 20 6c 69 73 74 65 .package.name.if.it.is.not.liste
20520 64 27 2c 20 66 61 6c 73 65 2c 20 27 3a 27 29 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 33 29 3b d',.false,.':'),.$validator,.3);
20540 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 20 26 26 20 .}....if.(false.!==.$package.&&.
20560 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 61 63 6b 61 67 65 2c 20 27 20 27 29 29 false.===.strpos($package,.'.'))
20580 20 7b 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 69 6e 70 75 74 .{.$validator.=.function.($input
205a0 29 20 7b 0a 24 69 6e 70 75 74 20 3d 20 74 72 69 6d 28 24 69 6e 70 75 74 29 3b 0a 0a 72 65 74 75 ).{.$input.=.trim($input);..retu
205c0 72 6e 20 24 69 6e 70 75 74 20 3f 3a 20 66 61 6c 73 65 3b 0a 7d 3b 0a 0a 24 63 6f 6e 73 74 72 61 rn.$input.?:.false;.};..$constra
205e0 69 6e 74 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 int.=.$dialog->askAndValidate($o
20600 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
20620 65 72 20 74 68 65 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 74 6f 20 72 65 71 er.the.version.constraint.to.req
20640 75 69 72 65 27 2c 20 66 61 6c 73 65 2c 20 27 3a 27 29 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 uire',.false,.':'),.$validator,.
20660 33 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 3);.if.(false.===.$constraint).{
20680 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 2e 3d 20 27 20 27 2e 24 63 .continue;.}..$package..=.'.'.$c
206a0 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 61 63 onstraint;.}..if.(false.!==.$pac
206c0 6b 61 67 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 kage).{.$requires[].=.$package;.
206e0 7d 0a 7d 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 }.}.}..return.$requires;.}..prot
20700 65 63 74 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 ected.function.formatAuthors($au
20720 74 68 6f 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 thor).{.return.array($this->pars
20740 65 41 75 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 eAuthorString($author));.}..prot
20760 65 63 74 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 ected.function.formatRequirement
20780 73 28 61 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 s(array.$requirements).{.$requir
207a0 65 73 20 3d 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 es.=.array();.$requirements.=.$t
207c0 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 73 28 24 72 65 71 75 his->normalizeRequirements($requ
207e0 69 72 65 6d 65 6e 74 73 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 6d 65 6e 74 irements);.foreach.($requirement
20800 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 73 5b 24 s.as.$requirement).{.$requires[$
20820 72 65 71 75 69 72 65 6d 65 6e 74 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 24 72 65 71 75 69 72 65 6d requirement['name']].=.$requirem
20840 65 6e 74 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 ent['version'];.}..return.$requi
20860 72 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 67 65 74 47 69 res;.}..protected.function.getGi
20880 74 43 6f 6e 66 69 67 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 tConfig().{.if.(null.!==.$this->
208a0 67 69 74 43 6f 6e 66 69 67 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 69 74 43 6f gitConfig).{.return.$this->gitCo
208c0 6e 66 69 67 3b 0a 7d 0a 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 65 63 75 74 61 62 6c nfig;.}..$finder.=.new.Executabl
208e0 65 46 69 6e 64 65 72 28 29 3b 0a 24 67 69 74 42 69 6e 20 3d 20 24 66 69 6e 64 65 72 2d 3e 66 69 eFinder();.$gitBin.=.$finder->fi
20900 6e 64 28 27 67 69 74 27 29 3b 0a 0a 24 63 6d 64 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 73 nd('git');..$cmd.=.new.Process(s
20920 70 72 69 6e 74 66 28 27 25 73 20 63 6f 6e 66 69 67 20 2d 6c 27 2c 20 65 73 63 61 70 65 73 68 65 printf('%s.config.-l',.escapeshe
20940 6c 6c 61 72 67 28 24 67 69 74 42 69 6e 29 29 29 3b 0a 24 63 6d 64 2d 3e 72 75 6e 28 29 3b 0a 0a llarg($gitBin)));.$cmd->run();..
20960 69 66 20 28 24 63 6d 64 2d 3e 69 73 53 75 63 63 65 73 73 66 75 6c 28 29 29 20 7b 0a 24 74 68 69 if.($cmd->isSuccessful()).{.$thi
20980 73 2d 3e 67 69 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 65 67 5f 6d 61 74 s->gitConfig.=.array();.preg_mat
209a0 63 68 5f 61 6c 6c 28 27 7b 5e 28 5b 5e 3d 5d 2b 29 3d 28 2e 2a 29 24 7d 6d 27 2c 20 24 63 6d 64 ch_all('{^([^=]+)=(.*)$}m',.$cmd
209c0 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 2c 20 24 6d 61 74 63 68 65 73 2c 20 50 52 45 47 5f 53 45 ->getOutput(),.$matches,.PREG_SE
209e0 54 5f 4f 52 44 45 52 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 T_ORDER);.foreach.($matches.as.$
20a00 6d 61 74 63 68 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 43 6f 6e 66 69 67 5b 24 6d 61 74 63 68 match).{.$this->gitConfig[$match
20a20 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 [1]].=.$match[2];.}..return.$thi
20a40 73 2d 3e 67 69 74 43 6f 6e 66 69 67 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 s->gitConfig;.}..return.$this->g
20a60 69 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a itConfig.=.array();.}...........
20a80 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 56 65 6e .......protected.function.hasVen
20aa0 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 6e 64 6f 72 20 3d dorIgnore($ignoreFile,.$vendor.=
20ac0 20 27 76 65 6e 64 6f 72 27 29 0a 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 69 .'vendor').{.if.(!file_exists($i
20ae0 67 6e 6f 72 65 46 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 gnoreFile)).{.return.false;.}..$
20b00 70 61 74 74 65 72 6e 20 3d 20 73 70 72 69 6e 74 66 28 27 7b 5e 2f 3f 25 73 28 2f 5c 2a 3f 29 3f pattern.=.sprintf('{^/?%s(/\*?)?
20b20 24 7d 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 6e 64 6f 72 29 29 3b 0a 0a 24 6c 69 6e $}',.preg_quote($vendor));..$lin
20b40 65 73 20 3d 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 es.=.file($ignoreFile,.FILE_IGNO
20b60 52 45 5f 4e 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 RE_NEW_LINES);.foreach.($lines.a
20b80 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 24 70 61 74 74 65 s.$line).{.if.(preg_match($patte
20ba0 72 6e 2c 20 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 rn,.$line)).{.return.true;.}.}..
20bc0 72 65 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 return.false;.}..protected.funct
20be0 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 52 65 71 75 69 72 65 6d 65 6e 74 73 28 61 72 72 61 79 20 ion.normalizeRequirements(array.
20c00 24 72 65 71 75 69 72 65 6d 65 6e 74 73 29 0a 7b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 56 $requirements).{.$parser.=.new.V
20c20 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 72 73 65 72 2d ersionParser();..return.$parser-
20c40 3e 70 61 72 73 65 4e 61 6d 65 56 65 72 73 69 6f 6e 50 61 69 72 73 28 24 72 65 71 75 69 72 65 6d >parseNameVersionPairs($requirem
20c60 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 69 6f 6e 20 61 64 64 ents);.}..protected.function.add
20c80 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 6e 64 6f VendorIgnore($ignoreFile,.$vendo
20ca0 72 20 3d 20 27 2f 76 65 6e 64 6f 72 2f 27 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 22 r.=.'/vendor/').{.$contents.=.""
20cc0 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 20 ;.if.(file_exists($ignoreFile)).
20ce0 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 28 {.$contents.=.file_get_contents(
20d00 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 73 $ignoreFile);..if.("\n".!==.subs
20d20 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 74 tr($contents,.0,.-1)).{.$content
20d40 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 74 s..=."\n";.}.}..file_put_content
20d60 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 64 s($ignoreFile,.$contents...$vend
20d80 6f 72 2e 20 22 5c 6e 22 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e or.."\n");.}..protected.function
20da0 20 69 73 56 61 6c 69 64 45 6d 61 69 6c 28 24 65 6d 61 69 6c 29 0a 7b 0a 0a 20 69 66 20 28 21 66 .isValidEmail($email).{...if.(!f
20dc0 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 29 20 7b 0a unction_exists('filter_var')).{.
20de0 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f return.true;.}....if.(version_co
20e00 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 2c 20 27 3c 27 29 mpare(PHP_VERSION,.'5.3.3',.'<')
20e20 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 ).{.return.true;.}..return.false
20e40 20 21 3d 3d 20 66 69 6c 74 65 72 5f 76 61 72 28 24 65 6d 61 69 6c 2c 20 46 49 4c 54 45 52 5f 56 .!==.filter_var($email,.FILTER_V
20e60 41 4c 49 44 41 54 45 5f 45 4d 41 49 4c 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ALIDATE_EMAIL);.}.}.<?php.......
20e80 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 .....namespace.Composer\Download
20ea0 65 72 3b 0a 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 6f er;..use.Composer\Config;.use.Co
20ec0 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;
20ee0 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
20f00 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 rsionParser;.use.Composer\Util\P
20f20 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c rocessExecutor;.use.Composer\IO\
20f40 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 IOInterface;.use.Composer\Util\F
20f60 69 6c 65 73 79 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 ilesystem;.....abstract.class.Vc
20f80 73 44 6f 77 6e 6c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 44 6f 77 6e 6c 6f 61 64 65 sDownloader.implements.Downloade
20fa0 72 49 6e 74 65 72 66 61 63 65 2c 20 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 rInterface,.ChangeReportInterfac
20fc0 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 20 24 63 6f e.{.protected.$io;.protected.$co
20fe0 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 70 72 6f 74 65 63 nfig;.protected.$process;.protec
21000 74 65 64 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ted.$filesystem;..public.functio
21020 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 n.__construct(IOInterface.$io,.C
21040 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 24 onfig.$config,.ProcessExecutor.$
21060 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 3d process.=.null,.Filesystem.$fs.=
21080 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 2d .null).{.$this->io.=.$io;.$this-
210a0 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 >config.=.$config;.$this->proces
210c0 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 s.=.$process.?:.new.ProcessExecu
210e0 74 6f 72 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 tor($io);.$this->filesystem.=.$f
21100 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 62 6c 69 s.?:.new.Filesystem;.}.....publi
21120 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 72 63 65 c.function.getInstallationSource
21140 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 75 62 6c ().{.return.'source';.}.....publ
21160 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 6e 74 65 ic.function.download(PackageInte
21180 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 21 24 70 rface.$package,.$path).{.if.(!$p
211a0 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 7b 0a ackage->getSourceReference()).{.
211c0 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
211e0 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 72 65 74 ion('Package.'.$package->getPret
21200 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 20 tyName().'.is.missing.reference.
21220 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 69 information');.}..$this->io->wri
21240 74 65 28 22 20 20 2d 20 49 6e 73 74 61 6c 6c 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 24 70 61 te("..-.Installing.<info>"...$pa
21260 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 2e 20 22 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f ckage->getName()..."</info>.(<co
21280 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 6d 61 74 56 mment>"...VersionParser::formatV
212a0 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 ersion($package)..."</comment>)"
212c0 29 3b 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
212e0 63 74 6f 72 79 28 24 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 ctory($path);.$this->doDownload(
21300 24 70 61 63 6b 61 67 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 $package,.$path);.$this->io->wri
21320 74 65 28 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 75 70 te('');.}.....public.function.up
21340 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 69 61 6c 2c 20 date(PackageInterface.$initial,.
21360 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 70 61 74 68 29 PackageInterface.$target,.$path)
21380 0a 7b 0a 69 66 20 28 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 .{.if.(!$target->getSourceRefere
213a0 6e 63 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d nce()).{.throw.new.\InvalidArgum
213c0 65 6e 74 45 78 63 65 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 entException('Package.'.$target-
213e0 3e 67 65 74 50 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 >getPrettyName().'.is.missing.re
21400 66 65 72 65 6e 63 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 ference.information');.}..$name.
21420 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 24 69 6e 69 74 69 =.$target->getName();.if.($initi
21440 61 6c 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 3d 3d 20 24 74 61 72 67 65 al->getPrettyVersion().==.$targe
21460 74 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 69 66 20 28 24 74 61 t->getPrettyVersion()).{.if.($ta
21480 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 20 3d 3d 3d 20 27 73 76 6e 27 29 rget->getSourceType().===.'svn')
214a0 20 7b 0a 24 66 72 6f 6d 20 3d 20 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 .{.$from.=.$initial->getSourceRe
214c0 66 65 72 65 6e 63 65 28 29 3b 0a 24 74 6f 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 ference();.$to.=.$target->getSou
214e0 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 72 6f 6d 20 3d rceReference();.}.else.{.$from.=
21500 20 73 75 62 73 74 72 28 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 .substr($initial->getSourceRefer
21520 65 6e 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 24 74 6f 20 3d 20 73 75 62 73 74 72 28 24 74 61 72 ence(),.0,.7);.$to.=.substr($tar
21540 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 2c 20 30 2c 20 37 29 get->getSourceReference(),.0,.7)
21560 3b 0a 7d 0a 24 6e 61 6d 65 20 2e 3d 20 27 20 27 2e 24 69 6e 69 74 69 61 6c 2d 3e 67 65 74 50 72 ;.}.$name..=.'.'.$initial->getPr
21580 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 72 6f 6d 20 3d 20 ettyVersion();.}.else.{.$from.=.
215a0 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 69 6e VersionParser::formatVersion($in
215c0 69 74 69 61 6c 29 3b 0a 24 74 6f 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f 72 itial);.$to.=.VersionParser::for
215e0 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 matVersion($target);.}..$this->i
21600 6f 2d 3e 77 72 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 o->write("..-.Updating.<info>"..
21620 20 24 6e 61 6d 65 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>"...
21640 24 66 72 6f 6d 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 3d 3e 20 3c 63 6f 6d 6d 65 6e 74 3e $from..."</comment>.=>.<comment>
21660 22 20 2e 20 24 74 6f 20 2e 20 22 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 0a 24 74 68 69 73 "...$to..."</comment>)");..$this
21680 2d 3e 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 69 6e 69 74 69 61 6c 2c 20 24 70 61 74 68 2c 20 ->cleanChanges($initial,.$path,.
216a0 74 72 75 65 29 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 64 6f 55 70 64 61 74 65 28 24 69 6e true);.try.{.$this->doUpdate($in
216c0 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 7d 20 63 61 74 63 68 20 itial,.$target,.$path);.}.catch.
216e0 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 72 65 61 70 70 (\Exception.$e).{...$this->reapp
21700 6c 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 24 lyChanges($path);..throw.$e;.}.$
21720 74 68 69 73 2d 3e 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 0a 0a 20 this->reapplyChanges($path);....
21740 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 6d if.($this->io->isVerbose()).{.$m
21760 65 73 73 61 67 65 20 3d 20 27 50 75 6c 6c 69 6e 67 20 69 6e 20 63 68 61 6e 67 65 73 3a 27 3b 0a essage.=.'Pulling.in.changes:';.
21780 24 6c 6f 67 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 69 6e $logs.=.$this->getCommitLogs($in
217a0 69 74 69 61 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 74 61 itial->getSourceReference(),.$ta
217c0 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 2c 20 24 70 61 74 rget->getSourceReference(),.$pat
217e0 68 29 3b 0a 0a 69 66 20 28 21 74 72 69 6d 28 24 6c 6f 67 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 h);..if.(!trim($logs)).{.$messag
21800 65 20 3d 20 27 52 6f 6c 6c 69 6e 67 20 62 61 63 6b 20 63 68 61 6e 67 65 73 3a 27 3b 0a 24 6c 6f e.=.'Rolling.back.changes:';.$lo
21820 67 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 74 61 72 67 65 gs.=.$this->getCommitLogs($targe
21840 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 69 6e 69 74 69 61 t->getSourceReference(),.$initia
21860 6c 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 2c 20 24 70 61 74 68 29 3b l->getSourceReference(),.$path);
21880 0a 7d 0a 0a 69 66 20 28 74 72 69 6d 28 24 6c 6f 67 73 29 29 20 7b 0a 24 6c 6f 67 73 20 3d 20 69 .}..if.(trim($logs)).{.$logs.=.i
218a0 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 mplode("\n",.array_map(function.
218c0 28 24 6c 69 6e 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 20 20 27 20 2e 20 24 6c 69 6e ($line).{.return.'......'...$lin
218e0 65 3b 0a 7d 2c 20 65 78 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6c 6f 67 73 29 29 29 3b 0a 0a 24 e;.},.explode("\n",.$logs)));..$
21900 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 27 2e 24 6d 65 73 73 61 67 65 29 this->io->write('....'.$message)
21920 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 6c 6f 67 73 29 3b 0a 7d 0a 7d 0a 0a ;.$this->io->write($logs);.}.}..
21940 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c $this->io->write('');.}.....publ
21960 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 6e 74 65 72 66 ic.function.remove(PackageInterf
21980 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 69 73 2d 3e 69 6f ace.$package,.$path).{.$this->io
219a0 2d 3e 77 72 69 74 65 28 22 20 20 2d 20 52 65 6d 6f 76 69 6e 67 20 3c 69 6e 66 6f 3e 22 20 2e 20 ->write("..-.Removing.<info>"...
219c0 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>.(
219e0 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
21a00 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
21a20 73 2d 3e 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c s->cleanChanges($package,.$path,
21a40 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d .false);.if.(!$this->filesystem-
21a60 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 29 20 7b 0a 0a 20 69 66 20 >removeDirectory($path)).{...if.
21a80 28 21 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
21aa0 55 49 4c 44 27 29 20 7c 7c 20 28 75 73 6c 65 65 70 28 32 35 30 29 20 26 26 20 21 24 74 68 69 73 UILD').||.(usleep(250).&&.!$this
21ac0 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
21ae0 61 74 68 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 65 70 ath))).{.throw.new.\RuntimeExcep
21b00 74 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 tion('Could.not.completely.delet
21b20 65 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 7d 0a e.'.$path.',.aborting.');.}.}.}.
21b40 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 75 74 70 75 74 50 72 .....public.function.setOutputPr
21b60 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 0a 7b 0a 72 65 74 75 72 6e ogress($outputProgress).{.return
21b80 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 64 20 66 75 .$this;.}...........protected.fu
21ba0 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 nction.cleanChanges(PackageInter
21bc0 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b face.$package,.$path,.$update).{
21be0 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 ...if.(null.!==.$this->getLocalC
21c00 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 hanges($package,.$path)).{.throw
21c20 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 53 6f 75 72 63 65 20 64 .new.\RuntimeException('Source.d
21c40 69 72 65 63 74 6f 72 79 20 27 20 2e 20 24 70 61 74 68 20 2e 20 27 20 68 61 73 20 75 6e 63 6f 6d irectory.'...$path...'.has.uncom
21c60 6d 69 74 74 65 64 20 63 68 61 6e 67 65 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 mitted.changes.');.}.}........pr
21c80 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 70 70 6c 79 43 68 61 6e 67 65 73 28 otected.function.reapplyChanges(
21ca0 24 70 61 74 68 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 $path).{.}........abstract.prote
21cc0 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 61 67 65 cted.function.doDownload(Package
21ce0 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 0a 0a 0a Interface.$package,.$path);.....
21d00 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 6f 6e 20 ....abstract.protected.function.
21d20 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 69 doUpdate(PackageInterface.$initi
21d40 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 70 al,.PackageInterface.$target,.$p
21d60 61 74 68 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 ath);..........abstract.protecte
21d80 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 d.function.getCommitLogs($fromRe
21da0 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 3b 0a 7d ference,.$toReference,.$path);.}
21dc0 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
21de0 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 oser\Downloader;..use.Composer\C
21e00 6f 6e 66 69 67 3b 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 onfig;.use.Composer\Cache;.use.C
21e20 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 omposer\EventDispatcher\EventDis
21e40 70 61 74 63 68 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 patcher;.use.Composer\Util\Proce
21e60 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 49 4f 5c 49 4f 49 6e ssExecutor;.use.Composer\IO\IOIn
21e80 74 65 72 66 61 63 65 3b 0a 75 73 65 20 52 61 72 41 72 63 68 69 76 65 3b 0a 0a 0a 0a 0a 0a 0a 0a terface;.use.RarArchive;........
21ea0 0a 63 6c 61 73 73 20 52 61 72 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 41 72 63 .class.RarDownloader.extends.Arc
21ec0 68 69 76 65 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 hiveDownloader.{.protected.$proc
21ee0 65 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 ess;..public.function.__construc
21f00 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 t(IOInterface.$io,.Config.$confi
21f20 67 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 70 61 74 63 g,.EventDispatcher.$eventDispatc
21f40 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 43 61 63 68 65 20 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 2c her.=.null,.Cache.$cache.=.null,
21f60 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 6c .ProcessExecutor.$process.=.null
21f80 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 3a ).{.$this->process.=.$process.?:
21fa0 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 70 61 72 65 6e .new.ProcessExecutor($io);.paren
21fc0 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 t::__construct($io,.$config,.$ev
21fe0 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 entDispatcher,.$cache);.}..prote
22000 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 20 24 70 61 cted.function.extract($file,.$pa
22020 74 68 29 0a 7b 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 th).{.$processError.=.null;....i
22040 66 20 28 21 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 f.(!defined('PHP_WINDOWS_VERSION
22060 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 75 6e 72 61 72 20 78 20 _BUILD')).{.$command.=.'unrar.x.
22080 27 20 2e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 66 69 6c 65 29 20 2e 20 27 20 27 20 '...escapeshellarg($file)...'.'.
220a0 2e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 20 2e 20 27 20 26 26 20 63 ..escapeshellarg($path)...'.&&.c
220c0 68 6d 6f 64 20 2d 52 20 75 2b 77 20 27 20 2e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 hmod.-R.u+w.'...escapeshellarg($
220e0 70 61 74 68 29 3b 0a 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 path);..if.(0.===.$this->process
22100 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
22120 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 ut)).{.return;.}..$processError.
22140 3d 20 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 =.'Failed.to.execute.'...$comman
22160 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
22180 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f 65 78 69 ErrorOutput();.}..if.(!class_exi
221a0 73 74 73 28 27 52 61 72 41 72 63 68 69 76 65 27 29 29 20 7b 0a 0a 20 24 69 6e 69 50 61 74 68 20 sts('RarArchive')).{...$iniPath.
221c0 3d 20 70 68 70 5f 69 6e 69 5f 6c 6f 61 64 65 64 5f 66 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 69 =.php_ini_loaded_file();..if.($i
221e0 6e 69 50 61 74 68 29 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 54 68 65 20 70 68 70 niPath).{.$iniMessage.=.'The.php
22200 2e 69 6e 69 20 75 73 65 64 20 62 79 20 79 6f 75 72 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e 65 20 50 .ini.used.by.your.command-line.P
22220 48 50 20 69 73 3a 20 27 20 2e 20 24 69 6e 69 50 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 HP.is:.'...$iniPath;.}.else.{.$i
22240 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 41 20 70 68 70 2e 69 6e 69 20 66 69 6c 65 20 64 6f 65 73 niMessage.=.'A.php.ini.file.does
22260 20 6e 6f 74 20 65 78 69 73 74 2e 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 63 72 65 .not.exist..You.will.have.to.cre
22280 61 74 65 20 6f 6e 65 2e 27 3b 0a 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f ate.one.';.}..$error.=."Could.no
222a0 74 20 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 t.decompress.the.archive,.enable
222c0 20 74 68 65 20 50 48 50 20 72 61 72 20 65 78 74 65 6e 73 69 6f 6e 20 6f 72 20 69 6e 73 74 61 6c .the.PHP.rar.extension.or.instal
222e0 6c 20 75 6e 72 61 72 2e 5c 6e 22 0a 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 20 2e 20 22 5c 6e 22 l.unrar.\n"...$iniMessage..."\n"
22300 20 2e 20 24 70 72 6f 63 65 73 73 45 72 72 6f 72 3b 0a 0a 69 66 20 28 21 64 65 66 69 6e 65 64 28 ...$processError;..if.(!defined(
22320 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')).{.
22340 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 73 20 74 $error.=."Could.not.decompress.t
22360 68 65 20 61 72 63 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 20 72 61 72 20 65 he.archive,.enable.the.PHP.rar.e
22380 78 74 65 6e 73 69 6f 6e 2e 5c 6e 22 20 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 3b 0a 7d 0a 0a 74 xtension.\n"...$iniMessage;.}..t
223a0 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 6f hrow.new.\RuntimeException($erro
223c0 72 29 3b 0a 7d 0a 0a 24 72 61 72 41 72 63 68 69 76 65 20 3d 20 52 61 72 41 72 63 68 69 76 65 3a r);.}..$rarArchive.=.RarArchive:
223e0 3a 6f 70 65 6e 28 24 66 69 6c 65 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 61 :open($file);..if.(false.===.$ra
22400 72 41 72 63 68 69 76 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 rArchive).{.throw.new.\Unexpecte
22420 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 20 6f 70 65 6e 20 dValueException('Could.not.open.
22440 52 41 52 20 61 72 63 68 69 76 65 3a 20 27 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 24 65 6e 74 RAR.archive:.'...$file);.}..$ent
22460 72 69 65 73 20 3d 20 24 72 61 72 41 72 63 68 69 76 65 2d 3e 67 65 74 45 6e 74 72 69 65 73 28 29 ries.=.$rarArchive->getEntries()
22480 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 74 72 69 65 73 29 20 7b 0a 74 68 72 ;..if.(false.===.$entries).{.thr
224a0 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 ow.new.\RuntimeException('Could.
224c0 6e 6f 74 20 72 65 74 72 69 65 76 65 20 52 41 52 20 61 72 63 68 69 76 65 20 65 6e 74 72 69 65 73 not.retrieve.RAR.archive.entries
224e0 27 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 65 6e 74 72 69 65 73 20 61 73 20 24 65 6e 74 ');.}..foreach.($entries.as.$ent
22500 72 79 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 74 72 79 2d 3e 65 78 74 72 ry).{.if.(false.===.$entry->extr
22520 61 63 74 28 24 70 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 act($path)).{.throw.new.\Runtime
22540 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 65 78 74 72 61 63 74 20 65 6e 74 Exception('Could.not.extract.ent
22560 72 79 27 29 3b 0a 7d 0a 7d 0a 0a 24 72 61 72 41 72 63 68 69 76 65 2d 3e 63 6c 6f 73 65 28 29 3b ry');.}.}..$rarArchive->close();
22580 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.
225a0 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
225c0 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 61 63 68 65 3b 0a 75 er\Config;.use.Composer\Cache;.u
225e0 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.
22600 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
22620 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\
22640 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 6c 75 67 VersionParser;.use.Composer\Plug
22660 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c in\PluginEvents;.use.Composer\Pl
22680 75 67 69 6e 5c 50 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 ugin\PreFileDownloadEvent;.use.C
226a0 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 omposer\EventDispatcher\EventDis
226c0 70 61 74 63 68 65 72 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 patcher;.use.Composer\Util\Files
226e0 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 47 69 74 48 75 62 3b ystem;.use.Composer\Util\GitHub;
22700 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
22720 74 65 6d 3b 0a 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 tem;..........class.FileDownload
22740 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 72 66 61 63 er.implements.DownloaderInterfac
22760 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 20 24 63 6f e.{.protected.$io;.protected.$co
22780 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 66 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 nfig;.protected.$rfs;.protected.
227a0 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 $filesystem;.protected.$cache;.p
227c0 72 6f 74 65 63 74 65 64 20 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 3b rotected.$outputProgress.=.true;
227e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f ............public.function.__co
22800 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 nstruct(IOInterface.$io,.Config.
22820 24 63 6f 6e 66 69 67 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 $config,.EventDispatcher.$eventD
22840 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 43 61 63 68 65 20 24 63 61 63 68 65 20 3d ispatcher.=.null,.Cache.$cache.=
22860 20 6e 75 6c 6c 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 .null,.RemoteFilesystem.$rfs.=.n
22880 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 6e 75 ull,.Filesystem.$filesystem.=.nu
228a0 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 63 6f ll).{.$this->io.=.$io;.$this->co
228c0 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 nfig.=.$config;.$this->eventDisp
228e0 61 74 63 68 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 24 74 68 69 73 atcher.=.$eventDispatcher;.$this
22900 2d 3e 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 ->rfs.=.$rfs.?:.new.RemoteFilesy
22920 73 74 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 stem($io);.$this->filesystem.=.$
22940 66 69 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 filesystem.?:.new.Filesystem();.
22960 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d 20 24 63 61 63 68 65 3b 0a 0a 0a 69 66 20 28 24 74 68 $this->cache.=.$cache;...if.($th
22980 69 73 2d 3e 63 61 63 68 65 20 26 26 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 67 63 49 73 4e is->cache.&&.$this->cache->gcIsN
229a0 65 63 65 73 73 61 72 79 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 67 63 28 24 ecessary()).{.$this->cache->gc($
229c0 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 29 2c 20 config->get('cache-files-ttl'),.
229e0 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a $config->get('cache-files-maxsiz
22a00 65 27 29 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 e'));.}.}.....public.function.ge
22a20 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 27 tInstallationSource().{.return.'
22a40 64 69 73 74 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 77 dist';.}.....public.function.dow
22a60 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c nload(PackageInterface.$package,
22a80 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 .$path).{.$url.=.$package->getDi
22aa0 73 74 55 72 6c 28 29 3b 0a 69 66 20 28 21 24 75 72 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 stUrl();.if.(!$url).{.throw.new.
22ac0 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 67 \InvalidArgumentException('The.g
22ae0 69 76 65 6e 20 70 61 63 6b 61 67 65 20 69 73 20 6d 69 73 73 69 6e 67 20 75 72 6c 20 69 6e 66 6f iven.package.is.missing.url.info
22b00 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d rmation');.}..$this->filesystem-
22b20 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 24 74 68 69 73 2d 3e >removeDirectory($path);.$this->
22b40 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 69 73 74 filesystem->ensureDirectoryExist
22b60 73 28 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 2d 3e 67 65 s($path);..$fileName.=.$this->ge
22b80 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 0a 24 74 68 tFileName($package,.$path);..$th
22ba0 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 2d 20 49 6e 73 74 61 6c 6c 69 6e 67 20 3c 69 is->io->write("..-.Installing.<i
22bc0 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 20 22 3c nfo>"...$package->getName()..."<
22be0 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 /info>.(<comment>"...VersionPars
22c00 65 72 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c er::formatVersion($package)..."<
22c20 2f 63 6f 6d 6d 65 6e 74 3e 29 22 29 3b 0a 0a 24 70 72 6f 63 65 73 73 65 64 55 72 6c 20 3d 20 24 /comment>)");..$processedUrl.=.$
22c40 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 55 72 6c 28 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 this->processUrl($package,.$url)
22c60 3b 0a 24 68 6f 73 74 6e 61 6d 65 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 70 72 6f 63 65 73 73 ;.$hostname.=.parse_url($process
22c80 65 64 55 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 3b 0a 0a 24 70 72 65 46 69 6c 65 44 edUrl,.PHP_URL_HOST);..$preFileD
22ca0 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 50 72 65 46 69 6c 65 44 6f 77 6e 6c 6f ownloadEvent.=.new.PreFileDownlo
22cc0 61 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 50 52 45 5f 46 49 4c 45 5f 44 adEvent(PluginEvents::PRE_FILE_D
22ce0 4f 57 4e 4c 4f 41 44 2c 20 24 74 68 69 73 2d 3e 72 66 73 2c 20 24 70 72 6f 63 65 73 73 65 64 55 OWNLOAD,.$this->rfs,.$processedU
22d00 72 6c 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 29 rl);.if.($this->eventDispatcher)
22d20 20 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 .{.$this->eventDispatcher->dispa
22d40 74 63 68 28 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2d 3e 67 65 74 4e 61 tch($preFileDownloadEvent->getNa
22d60 6d 65 28 29 2c 20 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 29 3b 0a 7d 0a me(),.$preFileDownloadEvent);.}.
22d80 24 72 66 73 20 3d 20 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2d 3e 67 65 $rfs.=.$preFileDownloadEvent->ge
22da0 74 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 0a 69 66 20 28 73 74 72 70 6f 73 tRemoteFilesystem();..if.(strpos
22dc0 28 24 68 6f 73 74 6e 61 6d 65 2c 20 27 2e 67 69 74 68 75 62 2e 63 6f 6d 27 29 20 3d 3d 3d 20 28 ($hostname,.'.github.com').===.(
22de0 73 74 72 6c 65 6e 28 24 68 6f 73 74 6e 61 6d 65 29 20 2d 20 31 31 29 29 20 7b 0a 24 68 6f 73 74 strlen($hostname).-.11)).{.$host
22e00 6e 61 6d 65 20 3d 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 63 name.=.'github.com';.}..try.{.$c
22e20 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 53 68 61 31 43 hecksum.=.$package->getDistSha1C
22e40 68 65 63 6b 73 75 6d 28 29 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 hecksum();.$cacheKey.=.$this->ge
22e60 74 43 61 63 68 65 4b 65 79 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 74 72 79 20 7b 0a 0a 20 69 66 tCacheKey($package);..try.{...if
22e80 20 28 21 24 74 68 69 73 2d 3e 63 61 63 68 65 20 7c 7c 20 28 24 63 68 65 63 6b 73 75 6d 20 26 26 .(!$this->cache.||.($checksum.&&
22ea0 20 24 63 68 65 63 6b 73 75 6d 20 21 3d 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 .$checksum.!==.$this->cache->sha
22ec0 31 28 24 63 61 63 68 65 4b 65 79 29 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 1($cacheKey)).||.!$this->cache->
22ee0 63 6f 70 79 54 6f 28 24 63 61 63 68 65 4b 65 79 2c 20 24 66 69 6c 65 4e 61 6d 65 29 29 20 7b 0a copyTo($cacheKey,.$fileName)).{.
22f00 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 if.(!$this->outputProgress).{.$t
22f20 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 27 his->io->write('....Downloading'
22f40 29 3b 0a 7d 0a 0a 0a 20 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 );.}....$retries.=.3;.while.($re
22f60 74 72 69 65 73 2d 2d 29 20 7b 0a 74 72 79 20 7b 0a 24 72 66 73 2d 3e 63 6f 70 79 28 24 68 6f 73 tries--).{.try.{.$rfs->copy($hos
22f80 74 6e 61 6d 65 2c 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c tname,.$processedUrl,.$fileName,
22fa0 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 3b 0a 62 72 65 61 6b 3b 0a .$this->outputProgress);.break;.
22fc0 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).
22fe0 7b 0a 0a 20 69 66 20 28 28 30 20 21 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 26 26 20 {...if.((0.!==.$e->getCode().&&.
23000 21 69 6e 5f 61 72 72 61 79 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c 61 72 72 61 79 28 35 30 !in_array($e->getCode(),array(50
23020 30 2c 20 35 30 32 2c 20 35 30 33 2c 20 35 30 34 29 29 29 20 7c 7c 20 21 24 72 65 74 72 69 65 73 0,.502,.503,.504))).||.!$retries
23040 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 ).{.throw.$e;.}.if.($this->io->i
23060 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 27 sVerbose()).{.$this->io->write('
23080 20 20 20 20 44 6f 77 6e 6c 6f 61 64 20 66 61 69 6c 65 64 2c 20 72 65 74 72 79 69 6e 67 2e 2e 2e ....Download.failed,.retrying...
230a0 27 29 3b 0a 7d 0a 75 73 6c 65 65 70 28 35 30 30 30 30 30 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 ');.}.usleep(500000);.}.}..if.($
230c0 74 68 69 73 2d 3e 63 61 63 68 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 63 6f 70 this->cache).{.$this->cache->cop
230e0 79 46 72 6f 6d 28 24 63 61 63 68 65 4b 65 79 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 7d 0a 7d yFrom($cacheKey,.$fileName);.}.}
23100 20 65 6c 73 65 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 4c 6f .else.{.$this->io->write('....Lo
23120 61 64 69 6e 67 20 66 72 6f 6d 20 63 61 63 68 65 27 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 54 ading.from.cache');.}.}.catch.(T
23140 72 61 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 21 69 6e 5f ransportException.$e).{.if.(!in_
23160 61 72 72 61 79 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c 20 61 72 72 61 79 28 34 30 34 2c 20 array($e->getCode(),.array(404,.
23180 34 30 33 2c 20 34 31 32 29 29 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 69 66 20 28 27 67 403,.412))).{.throw.$e;.}.if.('g
231a0 69 74 68 75 62 2e 63 6f 6d 27 20 3d 3d 3d 20 24 68 6f 73 74 6e 61 6d 65 20 26 26 20 21 24 74 68 ithub.com'.===.$hostname.&&.!$th
231c0 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 68 6f 73 74 6e is->io->hasAuthentication($hostn
231e0 61 6d 65 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 5c 6e 22 2e 27 43 6f 75 6c 64 20 6e ame)).{.$message.=."\n".'Could.n
23200 6f 74 20 66 65 74 63 68 20 27 2e 24 70 72 6f 63 65 73 73 65 64 55 72 6c 2e 27 2c 20 65 6e 74 65 ot.fetch.'.$processedUrl.',.ente
23220 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 27 2e 28 24 65 2d r.your.GitHub.credentials.'.($e-
23240 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 3d 20 34 30 34 20 3f 20 27 74 6f 20 61 63 63 65 73 73 20 >getCode().===.404.?.'to.access.
23260 70 72 69 76 61 74 65 20 72 65 70 6f 73 27 20 3a 20 27 74 6f 20 67 6f 20 6f 76 65 72 20 74 68 65 private.repos'.:.'to.go.over.the
23280 20 41 50 49 20 72 61 74 65 20 6c 69 6d 69 74 27 29 3b 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d .API.rate.limit');.$gitHubUtil.=
232a0 20 6e 65 77 20 47 69 74 48 75 62 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f .new.GitHub($this->io,.$this->co
232c0 6e 66 69 67 2c 20 6e 75 6c 6c 2c 20 24 72 66 73 29 3b 0a 69 66 20 28 21 24 67 69 74 48 75 62 55 nfig,.null,.$rfs);.if.(!$gitHubU
232e0 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 68 6f 73 74 6e 61 6d 65 29 0a 26 til->authorizeOAuth($hostname).&
23300 26 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 7c &.(!$this->io->isInteractive().|
23320 7c 20 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e |.!$gitHubUtil->authorizeOAuthIn
23340 74 65 72 61 63 74 69 76 65 6c 79 28 24 68 6f 73 74 6e 61 6d 65 2c 20 24 6d 65 73 73 61 67 65 29 teractively($hostname,.$message)
23360 29 0a 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 24 72 66 73 2d 3e 63 6f 70 79 28 24 68 6f ).).{.throw.$e;.}.$rfs->copy($ho
23380 73 74 6e 61 6d 65 2c 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 stname,.$processedUrl,.$fileName
233a0 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 3b 0a 7d 20 65 6c 73 65 ,.$this->outputProgress);.}.else
233c0 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 .{.throw.$e;.}.}..if.(!file_exis
233e0 74 73 28 24 66 69 6c 65 4e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 ts($fileName)).{.throw.new.\Unex
23400 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 24 75 72 6c 2e 27 20 63 6f 75 6c pectedValueException($url.'.coul
23420 64 20 6e 6f 74 20 62 65 20 73 61 76 65 64 20 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d 65 2e 27 2c d.not.be.saved.to.'.$fileName.',
23440 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 27 0a 2e 27 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 .make.sure.the'..'.directory.is.
23460 77 72 69 74 61 62 6c 65 20 61 6e 64 20 79 6f 75 20 68 61 76 65 20 69 6e 74 65 72 6e 65 74 20 63 writable.and.you.have.internet.c
23480 6f 6e 6e 65 63 74 69 76 69 74 79 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 63 68 65 63 6b 73 75 6d 20 onnectivity');.}..if.($checksum.
234a0 26 26 20 68 61 73 68 5f 66 69 6c 65 28 27 73 68 61 31 27 2c 20 24 66 69 6c 65 4e 61 6d 65 29 20 &&.hash_file('sha1',.$fileName).
234c0 21 3d 3d 20 24 63 68 65 63 6b 73 75 6d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 !==.$checksum).{.throw.new.\Unex
234e0 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 63 68 65 63 6b 73 pectedValueException('The.checks
23500 75 6d 20 76 65 72 69 66 69 63 61 74 69 6f 6e 20 6f 66 20 74 68 65 20 66 69 6c 65 20 66 61 69 6c um.verification.of.the.file.fail
23520 65 64 20 28 64 6f 77 6e 6c 6f 61 64 65 64 20 66 72 6f 6d 20 27 2e 24 75 72 6c 2e 27 29 27 29 3b ed.(downloaded.from.'.$url.')');
23540 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 24 .}.}.catch.(\Exception.$e).{...$
23560 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
23580 79 28 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 72 43 61 63 68 65 28 24 70 61 63 y($path);.$this->clearCache($pac
235a0 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 72 65 74 75 72 kage,.$path);.throw.$e;.}..retur
235c0 6e 20 24 66 69 6c 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 n.$fileName;.}.....public.functi
235e0 6f 6e 20 73 65 74 4f 75 74 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 on.setOutputProgress($outputProg
23600 72 65 73 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 20 3d 20 ress).{.$this->outputProgress.=.
23620 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a $outputProgress;..return.$this;.
23640 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 72 43 61 63 68 65 }..protected.function.clearCache
23660 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 74 (PackageInterface.$package,.$pat
23680 68 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 29 20 7b 0a 24 66 69 6c 65 4e 61 h).{.if.($this->cache).{.$fileNa
236a0 6d 65 20 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 me.=.$this->getFileName($package
236c0 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 6d 6f 76 65 28 24 ,.$path);.$this->cache->remove($
236e0 74 68 69 73 2d 3e 67 65 74 43 61 63 68 65 4b 65 79 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a this->getCacheKey($package));.}.
23700 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 63 }.....public.function.update(Pac
23720 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 49 kageInterface.$initial,.PackageI
23740 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 74 68 69 73 nterface.$target,.$path).{.$this
23760 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 ->remove($initial,.$path);.$this
23780 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a ->download($target,.$path);.}...
237a0 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
237c0 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
237e0 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 20 3c 69 6e 66 is->io->write("..-.Removing.<inf
23800 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 20 22 3c 2f 69 o>"...$package->getName()..."</i
23820 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 22 20 2e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 nfo>.(<comment>"...VersionParser
23840 3a 3a 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 20 2e 20 22 3c 2f 63 ::formatVersion($package)..."</c
23860 6f 6d 6d 65 6e 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 omment>)");.if.(!$this->filesyst
23880 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 29 20 7b 0a 0a 20 em->removeDirectory($path)).{...
238a0 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f if.(!defined('PHP_WINDOWS_VERSIO
238c0 4e 5f 42 55 49 4c 44 27 29 20 7c 7c 20 28 75 73 6c 65 65 70 28 32 35 30 30 30 30 29 20 26 26 20 N_BUILD').||.(usleep(250000).&&.
238e0 21 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 !$this->filesystem->removeDirect
23900 6f 72 79 28 24 70 61 74 68 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d ory($path))).{.throw.new.\Runtim
23920 65 45 78 63 65 70 74 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 eException('Could.not.completely
23940 20 64 65 6c 65 74 65 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 .delete.'.$path.',.aborting.');.
23960 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e }.}.}.........protected.function
23980 20 67 65 74 46 69 6c 65 4e 61 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 .getFileName(PackageInterface.$p
239a0 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 2e 27 2f ackage,.$path).{.return.$path.'/
239c0 27 2e 70 61 74 68 69 6e 66 6f 28 70 61 72 73 65 5f 75 72 6c 28 24 70 61 63 6b 61 67 65 2d 3e 67 '.pathinfo(parse_url($package->g
239e0 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 48 50 5f 55 52 4c 5f 50 41 54 48 29 2c 20 50 41 54 48 etDistUrl(),.PHP_URL_PATH),.PATH
23a00 49 4e 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 INFO_BASENAME);.}...........prot
23a20 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 6c 28 50 61 63 6b 61 67 ected.function.processUrl(Packag
23a40 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 0a 7b 0a 69 66 20 eInterface.$package,.$url).{.if.
23a60 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 26 26 (!extension_loaded('openssl').&&
23a80 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 20 7b .0.===.strpos($url,.'https:')).{
23aa0 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f .throw.new.\RuntimeException('Yo
23ac0 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 u.must.enable.the.openssl.extens
23ae0 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 73 27 ion.to.download.files.via.https'
23b00 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 );.}..return.$url;.}..private.fu
23b20 6e 63 74 69 6f 6e 20 67 65 74 43 61 63 68 65 4b 65 79 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 nction.getCacheKey(PackageInterf
23b40 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 ace.$package).{.if.(preg_match('
23b60 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 {^[a-f0-9]{40}$}',.$package->get
23b80 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b DistReference())).{.return.$pack
23ba0 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 age->getName().'/'.$package->get
23bc0 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 DistReference().'.'.$package->ge
23be0 74 44 69 73 74 54 79 70 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 2d tDistType();.}..return.$package-
23c00 3e 67 65 74 4e 61 6d 65 28 29 2e 27 2f 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 >getName().'/'.$package->getVers
23c20 69 6f 6e 28 29 2e 27 2d 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 ion().'-'.$package->getDistRefer
23c40 65 6e 63 65 28 29 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 ence().'.'.$package->getDistType
23c60 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 61 ();.}.}.<?php............namespa
23c80 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d ce.Composer\Downloader;..use.Com
23ca0 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;.
23cc0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 76 6e 20 61 73 20 53 76 6e 55 74 69 6c use.Composer\Util\Svn.as.SvnUtil
23ce0 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 76 6e 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e ;......class.SvnDownloader.exten
23d00 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
23d20 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
23d40 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 24 70 61 63 e.$package,.$path).{.$url.=.$pac
23d60 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 24 72 65 66 20 3d 20 24 70 61 kage->getSourceUrl();.$ref.=.$pa
23d80 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 3b 0a 0a 24 74 ckage->getSourceReference();..$t
23da0 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 6e 67 20 6f 75 74 his->io->write("....Checking.out
23dc0 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 .".$package->getSourceReference(
23de0 29 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 24 75 72 6c 2c 20 22 73 76 6e 20 63 6f ));.$this->execute($url,."svn.co
23e00 22 2c 20 73 70 72 69 6e 74 66 28 22 25 73 2f 25 73 22 2c 20 24 75 72 6c 2c 20 24 72 65 66 29 2c ",.sprintf("%s/%s",.$url,.$ref),
23e20 20 6e 75 6c 6c 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 63 .null,.$path);.}.....public.func
23e40 74 69 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 tion.doUpdate(PackageInterface.$
23e60 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
23e80 74 2c 20 24 70 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 t,.$path).{.$url.=.$target->getS
23ea0 6f 75 72 63 65 55 72 6c 28 29 3b 0a 24 72 65 66 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 ourceUrl();.$ref.=.$target->getS
23ec0 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 ourceReference();..if.(!is_dir($
23ee0 70 61 74 68 2e 27 2f 2e 73 76 6e 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 path.'/.svn')).{.throw.new.\Runt
23f00 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 2e 73 76 6e 20 64 69 72 65 63 74 6f 72 79 imeException('The..svn.directory
23f20 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 27 2e 24 70 61 74 68 2e 27 2c 20 73 65 65 20 .is.missing.from.'.$path.',.see.
23f40 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 6d 69 74 2d 64 65 http://getcomposer.org/commit-de
23f60 70 73 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 ps.for.more.information');.}..$t
23f80 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 6e 67 20 6f 75 74 his->io->write("....Checking.out
23fa0 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 28 24 75 72 6c 2c ."...$ref);.$this->execute($url,
23fc0 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 2f 25 73 22 2c 20 ."svn.switch",.sprintf("%s/%s",.
23fe0 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 0a 70 75 62 6c 69 $url,.$ref),.$path);.}.....publi
24000 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 50 61 63 6b 61 c.function.getLocalChanges(Packa
24020 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 69 geInterface.$package,.$path).{.i
24040 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 73 76 6e 27 29 29 20 7b 0a 72 65 74 f.(!is_dir($path.'/.svn')).{.ret
24060 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 urn;.}..$this->process->execute(
24080 27 73 76 6e 20 73 74 61 74 75 73 20 2d 2d 69 67 6e 6f 72 65 2d 65 78 74 65 72 6e 61 6c 73 27 2c 'svn.status.--ignore-externals',
240a0 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 3b 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d .$output,.$path);..return.preg_m
240c0 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 58 20 5d 20 2b 7d 6d 27 2c 20 24 6f 75 74 70 75 74 29 20 3f atch('{^.*[^X.].+}m',.$output).?
240e0 20 24 6f 75 74 70 75 74 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a .$output.:.null;.}..............
24100 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 24 62 61 73 65 protected.function.execute($base
24120 55 72 6c 2c 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c Url,.$command,.$url,.$cwd.=.null
24140 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 75 74 69 6c 20 3d 20 6e 65 77 20 53 76 ,.$path.=.null).{.$util.=.new.Sv
24160 6e 55 74 69 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 74 72 79 20 nUtil($baseUrl,.$this->io);.try.
24180 7b 0a 72 65 74 75 72 6e 20 24 75 74 69 6c 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 {.return.$util->execute($command
241a0 2c 20 24 75 72 6c 2c 20 24 63 77 64 2c 20 24 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 69 6f 2d 3e ,.$url,.$cwd,.$path,.$this->io->
241c0 69 73 56 65 72 62 6f 73 65 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 69 6d 65 45 isVerbose());.}.catch.(\RuntimeE
241e0 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d xception.$e).{.throw.new.\Runtim
24200 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 50 61 63 6b 61 67 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 eException(.'Package.could.not.b
24220 65 20 64 6f 77 6e 6c 6f 61 64 65 64 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 e.downloaded,.'.$e->getMessage()
24240 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 .);.}.}.....protected.function.c
24260 6c 65 61 6e 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 leanChanges(PackageInterface.$pa
24280 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 0a 7b 0a 69 66 20 28 21 24 63 ckage,.$path,.$update).{.if.(!$c
242a0 68 61 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 hanges.=.$this->getLocalChanges(
242c0 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 $package,.$path)).{.return;.}..i
242e0 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 f.(!$this->io->isInteractive()).
24300 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 {.if.(true.===.$this->config->ge
24320 74 28 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 t('discard-changes')).{.return.$
24340 74 68 69 73 2d 3e 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 7d 0a 0a this->discardChanges($path);.}..
24360 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 63 return.parent::cleanChanges($pac
24380 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 29 3b 0a 7d 0a 0a 24 63 68 61 6e 67 kage,.$path,.$update);.}..$chang
243a0 65 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c 65 6d 29 20 es.=.array_map(function.($elem).
243c0 7b 0a 72 65 74 75 72 6e 20 27 20 20 20 20 27 2e 24 65 6c 65 6d 3b 0a 7d 2c 20 70 72 65 67 5f 73 {.return.'....'.$elem;.},.preg_s
243e0 70 6c 69 74 28 27 7b 5c 73 2a 5c 72 3f 5c 6e 5c 73 2a 7d 27 2c 20 24 63 68 61 6e 67 65 73 29 29 plit('{\s*\r?\n\s*}',.$changes))
24400 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3c 65 72 72 6f 72 3e 54 ;.$this->io->write('....<error>T
24420 68 65 20 70 61 63 6b 61 67 65 20 68 61 73 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 3a 3c 2f he.package.has.modified.files:</
24440 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 61 72 72 61 79 error>');.$this->io->write(array
24460 5f 73 6c 69 63 65 28 24 63 68 61 6e 67 65 73 2c 20 30 2c 20 31 30 29 29 3b 0a 69 66 20 28 63 6f _slice($changes,.0,.10));.if.(co
24480 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 3e 20 31 30 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d unt($changes).>.10).{.$this->io-
244a0 3e 77 72 69 74 65 28 27 20 20 20 20 3c 69 6e 66 6f 3e 27 2e 63 6f 75 6e 74 28 24 63 68 61 6e 67 >write('....<info>'.count($chang
244c0 65 73 29 20 2d 20 31 30 20 2e 20 27 20 6d 6f 72 65 20 66 69 6c 65 73 20 6d 6f 64 69 66 69 65 64 es).-.10...'.more.files.modified
244e0 2c 20 63 68 6f 6f 73 65 20 22 76 22 20 74 6f 20 76 69 65 77 20 74 68 65 20 66 75 6c 6c 20 6c 69 ,.choose."v".to.view.the.full.li
24500 73 74 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 73 st</info>');.}..while.(true).{.s
24520 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 3c 69 6e 66 6f witch.($this->io->ask('....<info
24540 3e 44 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 5b 79 2c 6e 2c 76 2c 3f 5d 3f 3c 2f 69 6e 66 >Discard.changes.[y,n,v,?]?</inf
24560 6f 3e 20 27 2c 20 27 3f 27 29 29 20 7b 0a 63 61 73 65 20 27 79 27 3a 0a 24 74 68 69 73 2d 3e 64 o>.',.'?')).{.case.'y':.$this->d
24580 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a iscardChanges($path);.break.2;..
245a0 63 61 73 65 20 27 6e 27 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 case.'n':.throw.new.\RuntimeExce
245c0 70 74 69 6f 6e 28 27 55 70 64 61 74 65 20 61 62 6f 72 74 65 64 27 29 3b 0a 0a 63 61 73 65 20 27 ption('Update.aborted');..case.'
245e0 76 27 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 63 68 61 6e 67 65 73 29 3b 0a v':.$this->io->write($changes);.
24600 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 3f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 24 74 68 69 73 break;..case.'?':.default:.$this
24620 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 61 72 72 61 79 28 0a 27 20 20 20 20 79 20 2d 20 64 69 73 63 ->io->write(array(.'....y.-.disc
24640 61 72 64 20 63 68 61 6e 67 65 73 20 61 6e 64 20 61 70 70 6c 79 20 74 68 65 20 27 2e 28 24 75 70 ard.changes.and.apply.the.'.($up
24660 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2c 0a date.?.'update'.:.'uninstall'),.
24680 27 20 20 20 20 6e 20 2d 20 61 62 6f 72 74 20 74 68 65 20 27 2e 28 24 75 70 64 61 74 65 20 3f 20 '....n.-.abort.the.'.($update.?.
246a0 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2e 27 20 61 6e 64 20 6c 65 'update'.:.'uninstall').'.and.le
246c0 74 20 79 6f 75 20 6d 61 6e 75 61 6c 6c 79 20 63 6c 65 61 6e 20 74 68 69 6e 67 73 20 75 70 27 2c t.you.manually.clean.things.up',
246e0 0a 27 20 20 20 20 76 20 2d 20 76 69 65 77 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 27 2c 0a .'....v.-.view.modified.files',.
24700 27 20 20 20 20 3f 20 2d 20 70 72 69 6e 74 20 68 65 6c 70 27 2c 0a 29 29 3b 0a 62 72 65 61 6b 3b '....?.-.print.help',.));.break;
24720 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 .}.}.}.....protected.function.ge
24740 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 tCommitLogs($fromReference,.$toR
24760 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 66 72 6f 6d 52 65 76 69 73 69 eference,.$path).{...$fromRevisi
24780 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 2e 2a 40 28 5c 64 2b 29 24 7d 27 2c on.=.preg_replace('{.*@(\d+)$}',
247a0 20 27 24 31 27 2c 20 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 29 3b 0a 24 74 6f 52 65 76 69 73 .'$1',.$fromReference);.$toRevis
247c0 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 2e 2a 40 28 5c 64 2b 29 24 7d 27 ion.=.preg_replace('{.*@(\d+)$}'
247e0 2c 20 27 24 31 27 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 ,.'$1',.$toReference);..$command
24800 20 3d 20 73 70 72 69 6e 74 66 28 27 73 76 6e 20 6c 6f 67 20 2d 72 25 73 3a 25 73 20 2d 2d 69 6e .=.sprintf('svn.log.-r%s:%s.--in
24820 63 72 65 6d 65 6e 74 61 6c 27 2c 20 24 66 72 6f 6d 52 65 76 69 73 69 6f 6e 2c 20 24 74 6f 52 65 cremental',.$fromRevision,.$toRe
24840 76 69 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 vision);..if.(0.!==.$this->proce
24860 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 ss->execute($command,.$output,.$
24880 70 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 path)).{.throw.new.\RuntimeExcep
248a0 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 6d tion('Failed.to.execute.'...$com
248c0 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 3e mand..."\n\n"...$this->process->
248e0 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 getErrorOutput());.}..return.$ou
24900 74 70 75 74 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 69 73 63 tput;.}..protected.function.disc
24920 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 ardChanges($path).{.if.(0.!==.$t
24940 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 72 65 76 65 72 his->process->execute('svn.rever
24960 74 20 2d 52 20 2e 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f t.-R..',.$output,.$path)).{.thro
24980 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e w.new.\RuntimeException("Could.n
249a0 6f 74 20 72 65 73 65 74 20 63 68 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 ot.reset.changes\n\n:".$this->pr
249c0 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a ocess->getErrorOutput());.}.}.}.
249e0 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
24a00 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 ser\Downloader;..use.Composer\Ut
24a20 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 il\Filesystem;...........class.P
24a40 65 61 72 50 61 63 6b 61 67 65 45 78 74 72 61 63 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 earPackageExtractor.{.private.st
24a60 61 74 69 63 20 24 72 6f 6c 65 73 57 69 74 68 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 72 65 atic.$rolesWithoutPackageNamePre
24a80 66 69 78 20 3d 20 61 72 72 61 79 28 27 70 68 70 27 2c 20 27 73 63 72 69 70 74 27 2c 20 27 77 77 fix.=.array('php',.'script',.'ww
24aa0 77 27 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 70 72 69 76 61 w');..private.$filesystem;.priva
24ac0 74 65 20 24 66 69 6c 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e te.$file;..public.function.__con
24ae0 73 74 72 75 63 74 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 66 69 struct($file).{.if.(!is_file($fi
24b00 6c 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 le)).{.throw.new.\UnexpectedValu
24b20 65 45 78 63 65 70 74 69 6f 6e 28 27 50 45 41 52 20 70 61 63 6b 61 67 65 20 66 69 6c 65 20 69 73 eException('PEAR.package.file.is
24b40 20 6e 6f 74 20 66 6f 75 6e 64 20 61 74 20 27 2e 24 66 69 6c 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 .not.found.at.'.$file);.}..$this
24b60 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b ->filesystem.=.new.Filesystem();
24b80 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 66 69 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a .$this->file.=.$file;.}.........
24ba0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 54 6f 28 24 74 61 ...public.function.extractTo($ta
24bc0 72 67 65 74 2c 20 61 72 72 61 79 20 24 72 6f 6c 65 73 20 3d 20 61 72 72 61 79 28 27 70 68 70 27 rget,.array.$roles.=.array('php'
24be0 20 3d 3e 20 27 2f 27 2c 20 27 73 63 72 69 70 74 27 20 3d 3e 20 27 2f 62 69 6e 27 29 2c 20 24 76 .=>.'/',.'script'.=>.'/bin'),.$v
24c00 61 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 ars.=.array()).{.$extractionPath
24c20 20 3d 20 24 74 61 72 67 65 74 2e 27 2f 74 61 72 62 61 6c 6c 27 3b 0a 0a 74 72 79 20 7b 0a 24 61 .=.$target.'/tarball';..try.{.$a
24c40 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 72 44 61 74 61 28 24 74 68 69 73 2d 3e 66 69 rchive.=.new.\PharData($this->fi
24c60 6c 65 29 3b 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 65 78 74 72 61 63 le);.$archive->extractTo($extrac
24c80 74 69 6f 6e 50 61 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 21 69 73 5f tionPath,.null,.true);..if.(!is_
24ca0 66 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 65 78 74 72 61 63 74 69 6f 6e 50 file($this->combine($extractionP
24cc0 61 74 68 2c 20 27 2f 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e ath,.'/package.xml'))).{.throw.n
24ce0 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 50 45 ew.\RuntimeException('Invalid.PE
24d00 41 52 20 70 61 63 6b 61 67 65 2e 20 49 74 20 6d 75 73 74 20 63 6f 6e 74 61 69 6e 20 70 61 63 6b AR.package..It.must.contain.pack
24d20 61 67 65 2e 78 6d 6c 20 66 69 6c 65 2e 27 29 3b 0a 7d 0a 0a 24 66 69 6c 65 43 6f 70 79 41 63 74 age.xml.file.');.}..$fileCopyAct
24d40 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 70 79 41 63 74 69 6f 6e 73 28 24 ions.=.$this->buildCopyActions($
24d60 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 3b 0a extractionPath,.$roles,.$vars);.
24d80 24 74 68 69 73 2d 3e 63 6f 70 79 46 69 6c 65 73 28 24 66 69 6c 65 43 6f 70 79 41 63 74 69 6f 6e $this->copyFiles($fileCopyAction
24da0 73 2c 20 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f s,.$extractionPath,.$target,.$ro
24dc0 6c 65 73 2c 20 24 76 61 72 73 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e les,.$vars);.$this->filesystem->
24de0 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 65 78 74 72 61 63 74 69 6f 6e 50 61 74 68 29 removeDirectory($extractionPath)
24e00 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e ;.}.catch.(\Exception.$exception
24e20 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 ).{.throw.new.\UnexpectedValueEx
24e40 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 74 72 61 ception(sprintf('Failed.to.extra
24e60 63 74 20 50 45 41 52 20 70 61 63 6b 61 67 65 20 25 73 20 74 6f 20 25 73 2e 20 52 65 61 73 6f 6e ct.PEAR.package.%s.to.%s..Reason
24e80 3a 20 25 73 27 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 2c 20 24 74 61 72 67 65 74 2c 20 24 65 78 :.%s',.$this->file,.$target,.$ex
24ea0 63 65 70 74 69 6f 6e 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 2c 20 30 2c 20 24 65 78 63 65 ception->getMessage()),.0,.$exce
24ec0 70 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 ption);.}.}...........private.fu
24ee0 6e 63 74 69 6f 6e 20 63 6f 70 79 46 69 6c 65 73 28 24 66 69 6c 65 73 2c 20 24 73 6f 75 72 63 65 nction.copyFiles($files,.$source
24f00 2c 20 24 74 61 72 67 65 74 2c 20 24 72 6f 6c 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a 66 6f 72 65 ,.$target,.$roles,.$vars).{.fore
24f20 61 63 68 20 28 24 66 69 6c 65 73 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 72 6f 6d 20 3d 20 ach.($files.as.$file).{.$from.=.
24f40 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 24 66 69 6c 65 5b 27 66 $this->combine($source,.$file['f
24f60 72 6f 6d 27 5d 29 3b 0a 24 74 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 74 61 rom']);.$to.=.$this->combine($ta
24f80 72 67 65 74 2c 20 24 72 6f 6c 65 73 5b 24 66 69 6c 65 5b 27 72 6f 6c 65 27 5d 5d 29 3b 0a 24 74 rget,.$roles[$file['role']]);.$t
24fa0 6f 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 74 6f 2c 20 24 66 69 6c 65 5b 27 74 o.=.$this->combine($to,.$file['t
24fc0 6f 27 5d 29 3b 0a 24 74 61 73 6b 73 20 3d 20 24 66 69 6c 65 5b 27 74 61 73 6b 73 27 5d 3b 0a 24 o']);.$tasks.=.$file['tasks'];.$
24fe0 74 68 69 73 2d 3e 63 6f 70 79 46 69 6c 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 74 61 73 6b this->copyFile($from,.$to,.$task
25000 73 2c 20 24 76 61 72 73 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e s,.$vars);.}.}..private.function
25020 20 63 6f 70 79 46 69 6c 65 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 74 61 73 6b 73 2c 20 24 76 .copyFile($from,.$to,.$tasks,.$v
25040 61 72 73 29 0a 7b 0a 69 66 20 28 21 69 73 5f 66 69 6c 65 28 24 66 72 6f 6d 29 29 20 7b 0a 74 68 ars).{.if.(!is_file($from)).{.th
25060 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c row.new.\RuntimeException('Inval
25080 69 64 20 50 45 41 52 20 70 61 63 6b 61 67 65 2e 20 70 61 63 6b 61 67 65 2e 78 6d 6c 20 64 65 66 id.PEAR.package..package.xml.def
250a0 69 6e 65 73 20 66 69 6c 65 20 74 68 61 74 20 69 73 20 6e 6f 74 20 6c 6f 63 61 74 65 64 20 69 6e ines.file.that.is.not.located.in
250c0 73 69 64 65 20 74 61 72 62 61 6c 6c 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 side.tarball.');.}..$this->files
250e0 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 64 69 72 ystem->ensureDirectoryExists(dir
25100 6e 61 6d 65 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 20 63 6f 75 6e 74 28 24 74 61 73 name($to));..if.(0.==.count($tas
25120 6b 73 29 29 20 7b 0a 24 63 6f 70 69 65 64 20 3d 20 63 6f 70 79 28 24 66 72 6f 6d 2c 20 24 74 6f ks)).{.$copied.=.copy($from,.$to
25140 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f );.}.else.{.$content.=.file_get_
25160 63 6f 6e 74 65 6e 74 73 28 24 66 72 6f 6d 29 3b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 20 3d contents($from);.$replacements.=
25180 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 61 73 6b 73 20 61 73 20 24 74 61 .array();.foreach.($tasks.as.$ta
251a0 73 6b 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 24 74 61 73 6b 5b 27 66 72 6f 6d 27 5d 3b 0a sk).{.$pattern.=.$task['from'];.
251c0 24 76 61 72 4e 61 6d 65 20 3d 20 24 74 61 73 6b 5b 27 74 6f 27 5d 3b 0a 69 66 20 28 69 73 73 65 $varName.=.$task['to'];.if.(isse
251e0 74 28 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 29 29 20 7b 0a 69 66 20 28 24 76 61 72 4e 61 t($vars[$varName])).{.if.($varNa
25200 6d 65 20 3d 3d 3d 20 27 70 68 70 5f 62 69 6e 27 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 me.===.'php_bin'.&&.false.===.st
25220 72 70 6f 73 28 24 74 6f 2c 20 27 2e 62 61 74 27 29 29 20 7b 0a 24 72 65 70 6c 61 63 65 6d 65 6e rpos($to,.'.bat')).{.$replacemen
25240 74 73 5b 24 70 61 74 74 65 72 6e 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5c 2e ts[$pattern].=.preg_replace('{\.
25260 62 61 74 24 7d 27 2c 20 27 27 2c 20 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 29 3b 0a 7d 20 bat$}',.'',.$vars[$varName]);.}.
25280 65 6c 73 65 20 7b 0a 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 5b 24 70 61 74 74 65 72 6e 5d 20 3d else.{.$replacements[$pattern].=
252a0 20 24 76 61 72 73 5b 24 76 61 72 4e 61 6d 65 5d 3b 0a 7d 0a 7d 0a 7d 0a 24 63 6f 6e 74 65 6e 74 .$vars[$varName];.}.}.}.$content
252c0 20 3d 20 73 74 72 74 72 28 24 63 6f 6e 74 65 6e 74 2c 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 73 .=.strtr($content,.$replacements
252e0 29 3b 0a 0a 24 63 6f 70 69 65 64 20 3d 20 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 );..$copied.=.file_put_contents(
25300 24 74 6f 2c 20 24 63 6f 6e 74 65 6e 74 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d $to,.$content);.}..if.(false.===
25320 20 24 63 6f 70 69 65 64 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 .$copied).{.throw.new.\RuntimeEx
25340 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6f 70 79 20 ception(sprintf('Failed.to.copy.
25360 25 73 20 74 6f 20 25 73 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a %s.to.%s',.$from,.$to));.}.}....
25380 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 43 6f ........private.function.buildCo
253a0 70 79 41 63 74 69 6f 6e 73 28 24 73 6f 75 72 63 65 2c 20 61 72 72 61 79 20 24 72 6f 6c 65 73 2c pyActions($source,.array.$roles,
253c0 20 24 76 61 72 73 29 0a 7b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 73 69 6d 70 6c 65 78 6d 6c 5f .$vars).{..$package.=.simplexml_
253e0 6c 6f 61 64 5f 66 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 load_file($this->combine($source
25400 2c 20 27 70 61 63 6b 61 67 65 2e 78 6d 6c 27 29 29 3b 0a 69 66 28 66 61 6c 73 65 20 3d 3d 3d 20 ,.'package.xml'));.if(false.===.
25420 24 70 61 63 6b 61 67 65 29 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 $package).throw.new.\RuntimeExce
25440 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 20 69 ption('Package.definition.file.i
25460 73 20 6e 6f 74 20 76 61 6c 69 64 2e 27 29 3b 0a 0a 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 s.not.valid.');..$packageSchemaV
25480 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 69 66 ersion.=.$package['version'];.if
254a0 20 28 27 31 2e 30 27 20 3d 3d 20 24 70 61 63 6b 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e .('1.0'.==.$packageSchemaVersion
254c0 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 72 65 6c 65 61 73 ).{.$children.=.$package->releas
254e0 65 2d 3e 66 69 6c 65 6c 69 73 74 2d 3e 63 68 69 6c 64 72 65 6e 28 29 3b 0a 24 70 61 63 6b 61 67 e->filelist->children();.$packag
25500 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 6e 61 6d 65 3b eName.=.(string).$package->name;
25520 0a 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 .$packageVersion.=.(string).$pac
25540 6b 61 67 65 2d 3e 72 65 6c 65 61 73 65 2d 3e 76 65 72 73 69 6f 6e 3b 0a 24 73 6f 75 72 63 65 44 kage->release->version;.$sourceD
25560 69 72 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2d 27 20 2e 20 24 70 61 63 6b 61 ir.=.$packageName...'-'...$packa
25580 67 65 56 65 72 73 69 6f 6e 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c geVersion;.$result.=.$this->buil
255a0 64 53 6f 75 72 63 65 4c 69 73 74 31 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 72 6f 6c 65 73 2c dSourceList10($children,.$roles,
255c0 20 24 73 6f 75 72 63 65 44 69 72 2c 20 27 27 2c 20 6e 75 6c 6c 2c 20 24 70 61 63 6b 61 67 65 4e .$sourceDir,.'',.null,.$packageN
255e0 61 6d 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 32 2e 30 27 20 3d 3d 20 24 70 61 63 6b 61 67 ame);.}.elseif.('2.0'.==.$packag
25600 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 20 7c 7c 20 27 32 2e 31 27 20 3d 3d 20 24 70 61 63 6b eSchemaVersion.||.'2.1'.==.$pack
25620 61 67 65 53 63 68 65 6d 61 56 65 72 73 69 6f 6e 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 ageSchemaVersion).{.$children.=.
25640 24 70 61 63 6b 61 67 65 2d 3e 63 6f 6e 74 65 6e 74 73 2d 3e 63 68 69 6c 64 72 65 6e 28 29 3b 0a $package->contents->children();.
25660 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 $packageName.=.(string).$package
25680 2d 3e 6e 61 6d 65 3b 0a 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e ->name;.$packageVersion.=.(strin
256a0 67 29 20 24 70 61 63 6b 61 67 65 2d 3e 76 65 72 73 69 6f 6e 2d 3e 72 65 6c 65 61 73 65 3b 0a 24 g).$package->version->release;.$
256c0 73 6f 75 72 63 65 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e 20 27 2d 27 20 2e sourceDir.=.$packageName...'-'..
256e0 20 24 70 61 63 6b 61 67 65 56 65 72 73 69 6f 6e 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 .$packageVersion;.$result.=.$thi
25700 73 2d 3e 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 32 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 s->buildSourceList20($children,.
25720 24 72 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 44 69 72 2c 20 27 27 2c 20 6e 75 6c 6c 2c 20 24 70 $roles,.$sourceDir,.'',.null,.$p
25740 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 24 70 61 63 ackageName);..$namespaces.=.$pac
25760 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 3b 0a 24 70 61 63 6b 61 67 65 2d kage->getNamespaces();.$package-
25780 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 24 6e >registerXPathNamespace('ns',.$n
257a0 61 6d 65 73 70 61 63 65 73 5b 27 27 5d 29 3b 0a 24 72 65 6c 65 61 73 65 4e 6f 64 65 73 20 3d 20 amespaces['']);.$releaseNodes.=.
257c0 24 70 61 63 6b 61 67 65 2d 3e 78 70 61 74 68 28 27 6e 73 3a 70 68 70 72 65 6c 65 61 73 65 27 29 $package->xpath('ns:phprelease')
257e0 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 79 52 65 6c 65 61 73 65 28 24 72 65 73 75 6c 74 2c 20 24 ;.$this->applyRelease($result,.$
25800 72 65 6c 65 61 73 65 4e 6f 64 65 73 2c 20 24 76 61 72 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 releaseNodes,.$vars);.}.else.{.t
25820 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 73 75 hrow.new.\RuntimeException('Unsu
25840 70 70 6f 72 74 65 64 20 73 63 68 65 6d 61 20 76 65 72 73 69 6f 6e 20 6f 66 20 70 61 63 6b 61 67 pported.schema.version.of.packag
25860 65 20 64 65 66 69 6e 69 74 69 6f 6e 20 66 69 6c 65 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 e.definition.file.');.}..return.
25880 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 61 70 70 $result;.}..private.function.app
258a0 6c 79 52 65 6c 65 61 73 65 28 26 24 61 63 74 69 6f 6e 73 2c 20 24 72 65 6c 65 61 73 65 4e 6f 64 lyRelease(&$actions,.$releaseNod
258c0 65 73 2c 20 24 76 61 72 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 4e 6f es,.$vars).{.foreach.($releaseNo
258e0 64 65 73 20 61 73 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 29 20 7b 0a 24 72 65 71 75 69 72 65 64 des.as.$releaseNode).{.$required
25900 4f 73 20 3d 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 Os.=.$releaseNode->installcondit
25920 69 6f 6e 73 20 26 26 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e ions.&&.$releaseNode->installcon
25940 64 69 74 69 6f 6e 73 2d 3e 6f 73 20 26 26 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 ditions->os.&&.$releaseNode->ins
25960 74 61 6c 6c 63 6f 6e 64 69 74 69 6f 6e 73 2d 3e 6f 73 2d 3e 6e 61 6d 65 20 3f 20 28 73 74 72 69 tallconditions->os->name.?.(stri
25980 6e 67 29 20 24 72 65 6c 65 61 73 65 4e 6f 64 65 2d 3e 69 6e 73 74 61 6c 6c 63 6f 6e 64 69 74 69 ng).$releaseNode->installconditi
259a0 6f 6e 73 2d 3e 6f 73 2d 3e 6e 61 6d 65 20 3a 20 27 27 3b 0a 69 66 20 28 24 72 65 71 75 69 72 65 ons->os->name.:.'';.if.($require
259c0 64 4f 73 20 26 26 20 24 76 61 72 73 5b 27 6f 73 27 5d 20 21 3d 20 24 72 65 71 75 69 72 65 64 4f dOs.&&.$vars['os'].!=.$requiredO
259e0 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 6c 65 61 73 65 4e 6f s).{.continue;.}..if.($releaseNo
25a00 64 65 2d 3e 66 69 6c 65 6c 69 73 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 de->filelist).{.foreach.($releas
25a20 65 4e 6f 64 65 2d 3e 66 69 6c 65 6c 69 73 74 2d 3e 63 68 69 6c 64 72 65 6e 28 29 20 61 73 20 24 eNode->filelist->children().as.$
25a40 61 63 74 69 6f 6e 29 20 7b 0a 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 20 24 61 63 74 69 action).{.if.('install'.==.$acti
25a60 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 on->getName()).{.$name.=.(string
25a80 29 20 24 61 63 74 69 6f 6e 5b 27 6e 61 6d 65 27 5d 3b 0a 24 61 73 20 3d 20 28 73 74 72 69 6e 67 ).$action['name'];.$as.=.(string
25aa0 29 20 24 61 63 74 69 6f 6e 5b 27 61 73 27 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 61 63 74 69 ).$action['as'];.if.(isset($acti
25ac0 6f 6e 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 5b 27 ons[$name])).{.$actions[$name]['
25ae0 74 6f 27 5d 20 3d 20 24 61 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 69 67 6e 6f 72 65 27 to'].=.$as;.}.}.elseif.('ignore'
25b00 20 3d 3d 20 24 61 63 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 6e 61 6d 65 20 .==.$action->getName()).{.$name.
25b20 3d 20 28 73 74 72 69 6e 67 29 20 24 61 63 74 69 6f 6e 5b 27 6e 61 6d 65 27 5d 3b 0a 75 6e 73 65 =.(string).$action['name'];.unse
25b40 74 28 24 61 63 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 7d t($actions[$name]);.}.else.{...}
25b60 0a 7d 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f .}.}.break;.}.}..private.functio
25b80 6e 20 62 75 69 6c 64 53 6f 75 72 63 65 4c 69 73 74 31 30 28 24 63 68 69 6c 64 72 65 6e 2c 20 24 n.buildSourceList10($children,.$
25ba0 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 2c 20 24 targetRoles,.$source,.$target,.$
25bc0 72 6f 6c 65 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 role,.$packageName).{.$result.=.
25be0 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 65 6e 20 61 array();....foreach.($children.a
25c00 73 20 24 63 68 69 6c 64 29 20 7b 0a 0a 69 66 20 28 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 6d 65 s.$child).{..if.($child->getName
25c20 28 29 20 3d 3d 20 27 64 69 72 27 29 20 7b 0a 24 64 69 72 53 6f 75 72 63 65 20 3d 20 24 74 68 69 ().==.'dir').{.$dirSource.=.$thi
25c40 73 2d 3e 63 6f 6d 62 69 6e 65 28 24 73 6f 75 72 63 65 2c 20 28 73 74 72 69 6e 67 29 20 24 63 68 s->combine($source,.(string).$ch
25c60 69 6c 64 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 64 69 72 54 61 72 67 65 74 20 3d 20 24 63 68 69 6c ild['name']);.$dirTarget.=.$chil
25c80 64 5b 27 62 61 73 65 69 6e 73 74 61 6c 6c 64 69 72 27 5d 20 3f 20 3a 20 24 74 61 72 67 65 74 3b d['baseinstalldir'].?.:.$target;
25ca0 0a 24 64 69 72 52 6f 6c 65 20 3d 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 24 .$dirRole.=.$child['role'].?.:.$
25cc0 72 6f 6c 65 3b 0a 24 64 69 72 46 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f role;.$dirFiles.=.$this->buildSo
25ce0 75 72 63 65 4c 69 73 74 31 30 28 24 63 68 69 6c 64 2d 3e 63 68 69 6c 64 72 65 6e 28 29 2c 20 24 urceList10($child->children(),.$
25d00 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 64 69 72 53 6f 75 72 63 65 2c 20 24 64 69 72 54 61 72 targetRoles,.$dirSource,.$dirTar
25d20 67 65 74 2c 20 24 64 69 72 52 6f 6c 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 72 get,.$dirRole,.$packageName);.$r
25d40 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 69 esult.=.array_merge($result,.$di
25d60 72 46 69 6c 65 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 63 68 69 6c 64 2d 3e 67 65 74 4e 61 rFiles);.}.elseif.($child->getNa
25d80 6d 65 28 29 20 3d 3d 20 27 66 69 6c 65 27 29 20 7b 0a 24 66 69 6c 65 52 6f 6c 65 20 3d 20 28 73 me().==.'file').{.$fileRole.=.(s
25da0 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 72 6f 6c 65 27 5d 20 3f 20 3a 20 24 72 6f 6c 65 3b tring).$child['role'].?.:.$role;
25dc0 0a 69 66 20 28 69 73 73 65 74 28 24 74 61 72 67 65 74 52 6f 6c 65 73 5b 24 66 69 6c 65 52 6f 6c .if.(isset($targetRoles[$fileRol
25de0 65 5d 29 29 20 7b 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 28 24 63 68 e])).{.$fileName.=.(string).($ch
25e00 69 6c 64 5b 27 6e 61 6d 65 27 5d 20 3f 20 3a 20 24 63 68 69 6c 64 5b 30 5d 29 3b 20 0a 20 24 66 ild['name'].?.:.$child[0]);...$f
25e20 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 73 6f 75 72 ileSource.=.$this->combine($sour
25e40 63 65 2c 20 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 74 ce,.$fileName);.$fileTarget.=.$t
25e60 68 69 73 2d 3e 63 6f 6d 62 69 6e 65 28 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 62 61 his->combine((string).$child['ba
25e80 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 2c 20 24 66 69 6c seinstalldir'].?.:.$target,.$fil
25ea0 65 4e 61 6d 65 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 66 69 6c 65 52 6f 6c 65 2c eName);.if.(!in_array($fileRole,
25ec0 20 73 65 6c 66 3a 3a 24 72 6f 6c 65 73 57 69 74 68 6f 75 74 50 61 63 6b 61 67 65 4e 61 6d 65 50 .self::$rolesWithoutPackageNameP
25ee0 72 65 66 69 78 29 29 20 7b 0a 24 66 69 6c 65 54 61 72 67 65 74 20 3d 20 24 70 61 63 6b 61 67 65 refix)).{.$fileTarget.=.$package
25f00 4e 61 6d 65 20 2e 20 27 2f 27 20 2e 20 24 66 69 6c 65 54 61 72 67 65 74 3b 0a 7d 0a 24 72 65 73 Name...'/'...$fileTarget;.}.$res
25f20 75 6c 74 5b 28 73 74 72 69 6e 67 29 20 24 63 68 69 6c 64 5b 27 6e 61 6d 65 27 5d 5d 20 3d 20 61 ult[(string).$child['name']].=.a
25f40 72 72 61 79 28 27 66 72 6f 6d 27 20 3d 3e 20 24 66 69 6c 65 53 6f 75 72 63 65 2c 20 27 74 6f 27 rray('from'.=>.$fileSource,.'to'
25f60 20 3d 3e 20 24 66 69 6c 65 54 61 72 67 65 74 2c 20 27 72 6f 6c 65 27 20 3d 3e 20 24 66 69 6c 65 .=>.$fileTarget,.'role'.=>.$file
25f80 52 6f 6c 65 2c 20 27 74 61 73 6b 73 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 7d 0a 7d Role,.'tasks'.=>.array());.}.}.}
25fa0 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e ..return.$result;.}..private.fun
25fc0 63 74 69 6f 6e 20 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 ction.buildSourceList20($childre
25fe0 6e 2c 20 24 74 61 72 67 65 74 52 6f 6c 65 73 2c 20 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 n,.$targetRoles,.$source,.$targe
26000 74 2c 20 24 72 6f 6c 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c t,.$role,.$packageName).{.$resul
26020 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
26040 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
26060 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.=.
26080 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['
260a0 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
260c0 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
260e0 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;
26100 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
26120 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
26140 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,.
26160 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
26180 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
261a0 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->
261c0 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
261e0 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.(
26200 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])).
26220 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($
26240 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'])
26260 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((
26280 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'
262a0 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[
262c0 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();.
262e0 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:
26300 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
26320 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'.==.
26340 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
26360 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).
26380 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,.'
263a0 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
263c0 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(
263e0 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
26400 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.
26420 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
26440 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
26460 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
26480 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
264a0 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
264c0 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;.}
264e0 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
26500 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,.
26520 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,.'/');
26540 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.
26560 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
26580 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
265a0 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
265c0 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
265e0 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
26600 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 6c 73 ger.{.private.$preferDist.=.fals
26620 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 53 6f 75 72 63 65 20 3d 20 66 61 6c 73 65 e;.private.$preferSource.=.false
26640 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 65 20 24 ;.private.$filesystem;.private.$
26660 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 0a 70 75 downloaders.=.array();........pu
26680 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 65 66 65 blic.function.__construct($prefe
266a0 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 66 69 6c rSource.=.false,.Filesystem.$fil
266c0 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 65 72 53 esystem.=.null).{.$this->preferS
266e0 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 3e 66 69 ource.=.$preferSource;.$this->fi
26700 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 20 46 69 lesystem.=.$filesystem.?:.new.Fi
26720 6c 65 73 79 73 74 65 6d 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 lesystem();.}........public.func
26740 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 75 72 tion.setPreferSource($preferSour
26760 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 72 65 ce).{.$this->preferSource.=.$pre
26780 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 0a 0a ferSource;..return.$this;.}.....
267a0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 66 65 72 44 69 73 74 ...public.function.setPreferDist
267c0 28 24 70 72 65 66 65 72 44 69 73 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 ($preferDist).{.$this->preferDis
267e0 74 20 3d 20 24 70 72 65 66 65 72 44 69 73 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a t.=.$preferDist;..return.$this;.
26800 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 4f 75 74 }.........public.function.setOut
26820 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 0a 7b 0a 66 putProgress($outputProgress).{.f
26840 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 20 61 73 20 24 64 oreach.($this->downloaders.as.$d
26860 6f 77 6e 6c 6f 61 64 65 72 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 2d 3e 73 65 74 4f 75 74 ownloader).{.$downloader->setOut
26880 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 3b 0a 7d 0a putProgress($outputProgress);.}.
268a0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .return.$this;.}.........public.
268c0 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 74 79 70 65 2c 20 44 6f function.setDownloader($type,.Do
268e0 77 6e 6c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 20 24 64 6f 77 6e 6c 6f 61 64 65 72 29 0a 7b wnloaderInterface.$downloader).{
26900 0a 24 74 79 70 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 3b 0a 24 74 68 69 .$type.=.strtolower($type);.$thi
26920 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 5b 24 74 79 70 65 5d 20 3d 20 24 64 6f 77 6e 6c 6f 61 s->downloaders[$type].=.$downloa
26940 64 65 72 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 70 der;..return.$this;.}..........p
26960 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 74 79 ublic.function.getDownloader($ty
26980 70 65 29 0a 7b 0a 24 74 79 70 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 3b pe).{.$type.=.strtolower($type);
269a0 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 5b 24 .if.(!isset($this->downloaders[$
269c0 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 64 41 72 67 75 type])).{.throw.new.\InvalidArgu
269e0 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 6b 6e 6f 77 6e 20 64 mentException(sprintf('Unknown.d
26a00 6f 77 6e 6c 6f 61 64 65 72 20 74 79 70 65 3a 20 25 73 2e 20 41 76 61 69 6c 61 62 6c 65 20 74 79 ownloader.type:.%s..Available.ty
26a20 70 65 73 3a 20 25 73 2e 27 2c 20 24 74 79 70 65 2c 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 pes:.%s.',.$type,.implode(',.',.
26a40 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 29 29 29 array_keys($this->downloaders)))
26a60 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 65 72 73 5b );.}..return.$this->downloaders[
26a80 24 74 79 70 65 5d 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 $type];.}............public.func
26aa0 74 69 6f 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 tion.getDownloaderForInstalledPa
26ac0 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 29 ckage(PackageInterface.$package)
26ae0 0a 7b 0a 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d 20 24 70 61 63 6b 61 67 .{.$installationSource.=.$packag
26b00 65 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 3b 0a 0a 69 66 20 e->getInstallationSource();..if.
26b20 28 27 6d 65 74 61 70 61 63 6b 61 67 65 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ('metapackage'.===.$package->get
26b40 54 79 70 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 27 64 69 73 74 27 20 Type()).{.return;.}..if.('dist'.
26b60 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 24 64 6f 77 6e ===.$installationSource).{.$down
26b80 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 65 72 28 24 70 loader.=.$this->getDownloader($p
26ba0 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 6c 73 65 69 66 ackage->getDistType());.}.elseif
26bc0 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 6e 53 6f 75 72 .('source'.===.$installationSour
26be0 63 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f ce).{.$downloader.=.$this->getDo
26c00 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 65 54 79 70 65 wnloader($package->getSourceType
26c20 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 76 61 6c 69 64 ());.}.else.{.throw.new.\Invalid
26c40 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 20 27 2e 24 70 ArgumentException(.'Package.'.$p
26c60 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 74 61 6c 6c 65 ackage.'.seems.not.been.installe
26c80 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 61 6c 6c 61 74 d.properly'.);.}..if.($installat
26ca0 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 67 65 74 49 6e ionSource.!==.$downloader->getIn
26cc0 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 20 6e 65 77 20 stallationSource()).{.throw.new.
26ce0 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 6f 77 6e 6c 6f \LogicException(sprintf(.'Downlo
26d00 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 6c 6f 61 64 65 ader."%s".is.a.%s.type.downloade
26d20 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 77 6e 6c 6f 61 r.and.can.not.be.used.to.downloa
26d40 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 72 29 2c 20 24 d.%s',.get_class($downloader),.$
26d60 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 53 6f 75 72 63 downloader->getInstallationSourc
26d80 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 3b 0a 7d 0a 0a e(),.$installationSource.));.}..
26da0 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 0a 0a 0a 0a 0a return.$downloader;.}...........
26dc0 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 61 67 65 public.function.download(Package
26de0 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 44 69 72 2c 20 Interface.$package,.$targetDir,.
26e00 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 65 66 65 72 53 $preferSource.=.null).{.$preferS
26e20 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 72 63 65 20 3f ource.=.null.!==.$preferSource.?
26e40 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 66 65 72 53 6f .$preferSource.:.$this->preferSo
26e60 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 65 2d 3e 67 65 urce;.$sourceType.=.$package->ge
26e80 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 24 70 61 63 6b tSourceType();.$distType.=.$pack
26ea0 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 28 21 24 70 61 63 6b age->getDistType();..if.((!$pack
26ec0 61 67 65 2d 3e 69 73 44 65 76 28 29 20 7c 7c 20 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 age->isDev().||.$this->preferDis
26ee0 74 20 7c 7c 20 21 24 73 6f 75 72 63 65 54 79 70 65 29 20 26 26 20 21 28 24 70 72 65 66 65 72 53 t.||.!$sourceType).&&.!($preferS
26f00 6f 75 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 ource.&&.$sourceType).&&.$distTy
26f20 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
26f40 6f 75 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 ource('dist');.}.elseif.($source
26f60 54 79 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 Type).{.$package->setInstallatio
26f80 6e 53 6f 75 72 63 65 28 27 73 6f 75 72 63 65 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f nSource('source');.}.else.{.thro
26fa0 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(
26fc0 27 50 61 63 6b 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 'Package.'.$package.'.must.have.
26fe0 61 20 73 6f 75 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 a.source.or.dist.specified');.}.
27000 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 74 .$this->filesystem->ensureDirect
27020 6f 72 79 45 78 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 oryExists($targetDir);..$downloa
27040 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 der.=.$this->getDownloaderForIns
27060 74 61 6c 6c 65 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 talledPackage($package);.$downlo
27080 61 64 65 72 2d 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 ader->download($package,.$target
270a0 44 69 72 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 Dir);.}...........public.functio
270c0 6e 20 75 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 69 n.update(PackageInterface.$initi
270e0 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 74 al,.PackageInterface.$target,.$t
27100 61 72 67 65 74 44 69 72 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 20 3d 20 24 74 68 69 73 2d argetDir).{.$downloader.=.$this-
27120 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 65 72 46 6f 72 49 6e 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 >getDownloaderForInstalledPackag
27140 65 28 24 69 6e 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 e($initial);.$installationSource
27160 20 3d 20 24 69 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 .=.$initial->getInstallationSour
27180 63 65 28 29 3b 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 ce();..if.('dist'.===.$installat
271a0 69 6f 6e 53 6f 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 ionSource).{.$initialType.=.$ini
271c0 74 69 61 6c 2d 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 tial->getDistType();.$targetType
271e0 20 3d 20 24 74 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 .=.$target->getDistType();.}.els
27200 65 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 3e 67 65 74 e.{.$initialType.=.$initial->get
27220 53 6f 75 72 63 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 SourceType();.$targetType.=.$tar
27240 67 65 74 2d 3e 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 get->getSourceType();.}....if.($
27260 74 61 72 67 65 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 target->isDev().&&.'dist'.===.$i
27280 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 29 20 7b 0a 24 64 6f 77 6e 6c 6f 61 64 65 72 nstallationSource).{.$downloader
272a0 2d 3e 72 65 6d 6f 76 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 44 69 72 29 3b 0a ->remove($initial,.$targetDir);.
272c0 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 $this->download($target,.$target
272e0 44 69 72 29 3b 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 Dir);..return;.}..if.($initialTy
27300 70 65 20 3d 3d 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 pe.===.$targetType).{.$target->s
27320 65 74 49 6e 73 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 etInstallationSource($installati
27340 6f 6e 53 6f 75 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 onSource);.$downloader->update($
27360 69 6e 69 74 69 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 initial,.$target,.$targetDir);.}
27380 20 65 6c 73 65 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 .else.{.$downloader->remove($ini
273a0 74 69 61 6c 2c 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 tial,.$targetDir);.$this->downlo
273c0 61 64 28 24 74 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 ad($target,.$targetDir,.'source'
273e0 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 3b 0a 7d 0a 7d 0a 0a .===.$installationSource);.}.}..
27400 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 50 61 63 ......public.function.remove(Pac
27420 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 44 kageInterface.$package,.$targetD
27440 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 6f ir).{.$downloader.=.$this->getDo
27460 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 70 61 63 wnloaderForInstalledPackage($pac
27480 6b 61 67 65 29 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 kage);.$downloader->remove($pack
274a0 61 67 65 2c 20 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 age,.$targetDir);.}.}.<?php.....
274c0 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 6e 6c 6f .......namespace.Composer\Downlo
274e0 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 61 63 6b ader;..use.Composer\Package\Pack
27500 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 44 ageInterface;........interface.D
27520 6f 77 6e 6c 6f 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 ownloaderInterface.{......public
27540 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 72 63 65 28 .function.getInstallationSource(
27560 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 64 6f 77 6e 6c 6f );........public.function.downlo
27580 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 ad(PackageInterface.$package,.$p
275a0 61 74 68 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 75 70 ath);.........public.function.up
275c0 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 69 61 6c 2c 20 date(PackageInterface.$initial,.
275e0 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 70 61 74 68 29 PackageInterface.$target,.$path)
27600 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 72 65 6d 6f 76 65 28 ;........public.function.remove(
27620 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 PackageInterface.$package,.$path
27640 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 73 65 74 4f 75 74 );........public.function.setOut
27660 70 75 74 50 72 6f 67 72 65 73 73 28 24 6f 75 74 70 75 74 50 72 6f 67 72 65 73 73 29 3b 0a 7d 0a putProgress($outputProgress);.}.
27680 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
276a0 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
276c0 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.
276e0 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 65 61 64 65 72 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 {.protected.$headers;..public.fu
27700 6e 63 74 69 6f 6e 20 73 65 74 48 65 61 64 65 72 73 28 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 74 nction.setHeaders($headers).{.$t
27720 68 69 73 2d 3e 68 65 61 64 65 72 73 20 3d 20 24 68 65 61 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 6c his->headers.=.$headers;.}..publ
27740 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 61 64 65 72 73 28 29 0a 7b 0a 72 65 74 75 72 ic.function.getHeaders().{.retur
27760 6e 20 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a n.$this->headers;.}.}.<?php.....
27780 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 6e 6c 6f .......namespace.Composer\Downlo
277a0 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 ader;.......class.PharDownloader
277c0 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 0a 0a 0a .extends.ArchiveDownloader.{....
277e0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 28 24 66 69 6c 65 protected.function.extract($file
27800 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5c 50 68 61 ,.$path).{...$archive.=.new.\Pha
27820 72 28 24 66 69 6c 65 29 3b 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 r($file);.$archive->extractTo($p
27840 61 74 68 2c 20 6e 75 6c 6c 2c 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 7d 0a 7d 0a 3c 3f 70 68 70 ath,.null,.true);......}.}.<?php
27860 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 ............namespace.Composer\D
27880 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 72 44 6f 77 6e 6c 6f ownloader;.......class.TarDownlo
278a0 61 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 ader.extends.ArchiveDownloader.{
278c0 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 74 72 61 63 74 28 24 ....protected.function.extract($
278e0 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 61 72 63 68 69 76 65 20 3d 20 6e 65 77 20 file,.$path).{...$archive.=.new.
27900 5c 50 68 61 72 44 61 74 61 28 24 66 69 6c 65 29 3b 0a 24 61 72 63 68 69 76 65 2d 3e 65 78 74 72 \PharData($file);.$archive->extr
27920 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 7d 0a 7d 0a 3c 3f actTo($path,.null,.true);.}.}.<?
27940 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
27960 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b r\Downloader;..use.Composer\Pack
27980 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 63 6c 61 73 73 20 age\PackageInterface;.....class.
279a0 48 67 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 HgDownloader.extends.VcsDownload
279c0 65 72 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f er.{....public.function.doDownlo
279e0 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 ad(PackageInterface.$package,.$p
27a00 61 74 68 29 0a 7b 0a 24 75 72 6c 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 ath).{.$url.=.escapeshellarg($pa
27a20 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 29 3b 0a 24 72 65 66 20 3d 20 65 ckage->getSourceUrl());.$ref.=.e
27a40 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 scapeshellarg($package->getSourc
27a60 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 eReference());.$this->io->write(
27a80 22 20 20 20 20 43 6c 6f 6e 69 6e 67 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 "....Cloning.".$package->getSour
27aa0 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e ceReference());.$command.=.sprin
27ac0 74 66 28 27 68 67 20 63 6c 6f 6e 65 20 25 73 20 25 73 27 2c 20 24 75 72 6c 2c 20 65 73 63 61 70 tf('hg.clone.%s.%s',.$url,.escap
27ae0 65 73 68 65 6c 6c 61 72 67 28 24 70 61 74 68 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 eshellarg($path));.if.(0.!==.$th
27b00 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,.$
27b20 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 6e ignoredOutput)).{.throw.new.\Run
27b40 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 timeException('Failed.to.execute
27b60 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e .'...$command..."\n\n"...$this->
27b80 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 24 63 process->getErrorOutput());.}.$c
27ba0 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 75 70 20 25 73 27 2c 20 24 72 65 ommand.=.sprintf('hg.up.%s',.$re
27bc0 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 2d 3e 65 78 f);.if.(0.!==.$this->process->ex
27be0 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 75 74 2c 20 ecute($command,.$ignoredOutput,.
27c00 72 65 61 6c 70 61 74 68 28 24 70 61 74 68 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 realpath($path))).{.throw.new.\R
27c20 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 untimeException('Failed.to.execu
27c40 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 te.'...$command..."\n\n"...$this
27c60 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a ->process->getErrorOutput());.}.
27c80 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
27ca0 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
27cc0 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
27ce0 6c 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 l.=.escapeshellarg($target->getS
27d00 6f 75 72 63 65 55 72 6c 28 29 29 3b 0a 24 72 65 66 20 3d 20 65 73 63 61 70 65 73 68 65 6c 6c 61 ourceUrl());.$ref.=.escapeshella
27d20 72 67 28 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 rg($target->getSourceReference()
27d40 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 55 70 64 61 74 69 6e );.$this->io->write("....Updatin
27d60 67 20 74 6f 20 22 2e 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e g.to.".$target->getSourceReferen
27d80 63 65 28 29 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 68 67 27 ce());..if.(!is_dir($path.'/.hg'
27da0 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
27dc0 28 27 54 68 65 20 2e 68 67 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6d 69 73 73 69 6e 67 20 66 ('The..hg.directory.is.missing.f
27de0 72 6f 6d 20 27 2e 24 70 61 74 68 2e 27 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d rom.'.$path.',.see.http://getcom
27e00 70 6f 73 65 72 2e 6f 72 67 2f 63 6f 6d 6d 69 74 2d 64 65 70 73 20 66 6f 72 20 6d 6f 72 65 20 69 poser.org/commit-deps.for.more.i
27e20 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 nformation');.}..$command.=.spri
27e40 6e 74 66 28 27 68 67 20 70 75 6c 6c 20 25 73 20 26 26 20 68 67 20 75 70 20 25 73 27 2c 20 24 75 ntf('hg.pull.%s.&&.hg.up.%s',.$u
27e60 72 6c 2c 20 24 72 65 66 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 rl,.$ref);.if.(0.!==.$this->proc
27e80 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f ess->execute($command,.$ignoredO
27ea0 75 74 70 75 74 2c 20 72 65 61 6c 70 61 74 68 28 24 70 61 74 68 29 29 29 20 7b 0a 74 68 72 6f 77 utput,.realpath($path))).{.throw
27ec0 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
27ee0 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".
27f00 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
27f20 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ());.}.}.....public.function.get
27f40 4c 6f 63 61 6c 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 LocalChanges(PackageInterface.$p
27f60 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 ackage,.$path).{.if.(!is_dir($pa
27f80 74 68 2e 27 2f 2e 68 67 27 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e th.'/.hg')).{.return;.}..$this->
27fa0 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 73 74 27 2c 20 24 6f 75 74 70 75 process->execute('hg.st',.$outpu
27fc0 74 2c 20 72 65 61 6c 70 61 74 68 28 24 70 61 74 68 29 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 69 t,.realpath($path));..return.tri
27fe0 6d 28 24 6f 75 74 70 75 74 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 m($output).?:.null;.}.....protec
28000 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d ted.function.getCommitLogs($from
28020 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a Reference,.$toReference,.$path).
28040 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 68 67 20 6c 6f 67 20 2d 72 20 {.$command.=.sprintf('hg.log.-r.
28060 25 73 3a 25 73 20 2d 2d 73 74 79 6c 65 20 63 6f 6d 70 61 63 74 27 2c 20 24 66 72 6f 6d 52 65 66 %s:%s.--style.compact',.$fromRef
28080 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 69 66 20 28 30 20 21 3d erence,.$toReference);..if.(0.!=
280a0 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 =.$this->process->execute($comma
280c0 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 72 65 61 6c 70 61 74 68 28 24 70 61 74 68 29 29 29 20 7b nd,.$output,.realpath($path))).{
280e0 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
28100 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..."
28120 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
28140 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a Output());.}..return.$output;.}.
28160 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
28180 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c poser\Downloader;..use.Composer\
281a0 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a Package\PackageInterface;.......
281c0 69 6e 74 65 72 66 61 63 65 20 43 68 61 6e 67 65 52 65 70 6f 72 74 49 6e 74 65 72 66 61 63 65 0a interface.ChangeReportInterface.
281e0 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 {........public.function.getLoca
28200 6c 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 lChanges(PackageInterface.$packa
28220 67 65 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e ge,.$path);.}.<?php............n
28240 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 amespace.Composer\Downloader;..u
28260 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
28280 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 41 72 63 face;.........abstract.class.Arc
282a0 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 77 6e 6c hiveDownloader.extends.FileDownl
282c0 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 77 6e 6c oader.{....public.function.downl
282e0 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 oad(PackageInterface.$package,.$
28300 70 61 74 68 29 0a 7b 0a 24 74 65 6d 70 6f 72 61 72 79 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 path).{.$temporaryDir.=.$this->c
28320 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f onfig->get('vendor-dir').'/compo
28340 73 65 72 2f 27 2e 73 75 62 73 74 72 28 6d 64 35 28 75 6e 69 71 69 64 28 27 27 2c 20 74 72 75 65 ser/'.substr(md5(uniqid('',.true
28360 29 29 2c 20 30 2c 20 38 29 3b 0a 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 20 28 )),.0,.8);.$retries.=.3;.while.(
28380 24 72 65 74 72 69 65 73 2d 2d 29 20 7b 0a 24 66 69 6c 65 4e 61 6d 65 20 3d 20 70 61 72 65 6e 74 $retries--).{.$fileName.=.parent
283a0 3a 3a 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 69 66 ::download($package,.$path);..if
283c0 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 68 69 .($this->io->isVerbose()).{.$thi
283e0 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 45 78 74 72 61 63 74 69 6e 67 20 61 72 63 s->io->write('....Extracting.arc
28400 68 69 76 65 27 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 hive');.}..try.{.$this->filesyst
28420 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 65 6d 70 6f em->ensureDirectoryExists($tempo
28440 72 61 72 79 44 69 72 29 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 28 24 raryDir);.try.{.$this->extract($
28460 66 69 6c 65 4e 61 6d 65 2c 20 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 7d 20 63 61 74 63 fileName,.$temporaryDir);.}.catc
28480 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 70 61 72 65 6e 74 3a 3a 63 6c h.(\Exception.$e).{...parent::cl
284a0 65 61 72 43 61 63 68 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 74 68 72 6f 77 earCache($package,.$path);.throw
284c0 20 24 65 3b 0a 7d 0a 0a 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 4e 61 6d 65 29 3b 0a 0a 0a 20 24 63 .$e;.}..unlink($fileName);....$c
284e0 6f 6e 74 65 6e 74 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 6c 69 73 74 46 69 6c 65 73 28 24 74 65 ontentDir.=.$this->listFiles($te
28500 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 0a 0a 20 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 mporaryDir);....if.(1.===.count(
28520 24 63 6f 6e 74 65 6e 74 44 69 72 29 20 26 26 20 21 69 73 5f 66 69 6c 65 28 24 63 6f 6e 74 65 6e $contentDir).&&.!is_file($conten
28540 74 44 69 72 5b 30 5d 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 44 69 72 20 3d 20 24 74 68 69 73 2d tDir[0])).{.$contentDir.=.$this-
28560 3e 6c 69 73 74 46 69 6c 65 73 28 24 63 6f 6e 74 65 6e 74 44 69 72 5b 30 5d 29 3b 0a 7d 0a 0a 0a >listFiles($contentDir[0]);.}...
28580 20 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 65 6e 74 44 69 72 20 61 73 20 24 66 69 6c 65 29 20 .foreach.($contentDir.as.$file).
285a0 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6e 61 6d 65 28 24 66 69 6c {.$this->filesystem->rename($fil
285c0 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)
285e0 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 72 65 6d 6f 76 65 44 );.}..$this->filesystem->removeD
28600 69 72 65 63 74 6f 72 79 28 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 7d 20 63 61 74 63 68 irectory($temporaryDir);.}.catch
28620 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 66 69 6c 65 .(\Exception.$e).{...$this->file
28640 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);.
28660 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f $this->filesystem->removeDirecto
28680 72 79 28 24 74 65 6d 70 6f 72 61 72 79 44 69 72 29 3b 0a 0a 0a 20 69 66 20 28 24 72 65 74 72 69 ry($temporaryDir);....if.($retri
286a0 65 73 20 26 26 20 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 55 6e 65 78 70 65 63 74 65 64 56 es.&&.$e.instanceof.\UnexpectedV
286c0 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 26 26 20 63 6c 61 73 73 5f 65 78 69 73 74 73 28 27 5a alueException.&&.class_exists('Z
286e0 69 70 41 72 63 68 69 76 65 27 29 20 26 26 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 20 3d 3d 3d ipArchive').&&.$e->getCode().===
28700 20 5c 5a 69 70 41 72 63 68 69 76 65 3a 3a 45 52 5f 4e 4f 5a 49 50 29 20 7b 0a 24 74 68 69 73 2d .\ZipArchive::ER_NOZIP).{.$this-
28720 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 49 6e 76 61 6c 69 64 20 7a 69 70 20 66 69 6c 65 >io->write('....Invalid.zip.file
28740 2c 20 72 65 74 72 79 69 6e 67 2e 2e 2e 27 29 3b 0a 75 73 6c 65 65 70 28 35 30 30 30 30 30 29 3b ,.retrying...');.usleep(500000);
28760 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 62 72 65 61 6b .continue;.}..throw.$e;.}..break
28780 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 0a 0a 0a ;.}..$this->io->write('');.}....
287a0 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 61 6d 65 28 .protected.function.getFileName(
287c0 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 PackageInterface.$package,.$path
287e0 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 70 61 74 68 2e 27 2f 27 2e 6d 64 35 28 24 ).{.return.rtrim($path.'/'.md5($
28800 70 61 74 68 2e 73 70 6c 5f 6f 62 6a 65 63 74 5f 68 61 73 68 28 24 70 61 63 6b 61 67 65 29 29 2e path.spl_object_hash($package)).
28820 27 2e 27 2e 70 61 74 68 69 6e 66 6f 28 70 61 72 73 65 5f 75 72 6c 28 24 70 61 63 6b 61 67 65 2d '.'.pathinfo(parse_url($package-
28840 3e 67 65 74 44 69 73 74 55 72 6c 28 29 2c 20 50 48 50 5f 55 52 4c 5f 50 41 54 48 29 2c 20 50 41 >getDistUrl(),.PHP_URL_PATH),.PA
28860 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 2c 20 27 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 THINFO_EXTENSION),.'.');.}.....p
28880 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 55 72 6c 28 50 61 63 rotected.function.processUrl(Pac
288a0 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 75 72 6c 29 0a 7b 0a kageInterface.$package,.$url).{.
288c0 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 if.($package->getDistReference()
288e0 20 26 26 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 67 69 74 68 75 62 2e 63 6f 6d 27 29 29 20 .&&.strpos($url,.'github.com')).
28900 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 28 3f 3a {.if.(preg_match('{^https?://(?:
28920 77 77 77 5c 2e 29 3f 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d www\.)?github\.com/([^/]+)/([^/]
28940 2b 29 2f 28 7a 69 70 7c 74 61 72 29 62 61 6c 6c 2f 28 2e 2b 29 24 7d 69 27 2c 20 24 75 72 6c 2c +)/(zip|tar)ball/(.+)$}i',.$url,
28960 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 .$match)).{...$url.=.'https://ap
28980 69 2e 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d i.github.com/repos/'...$match[1]
289a0 20 2e 20 27 2f 27 2e 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 ...'/'..$match[2]...'/'...$match
289c0 5b 33 5d 20 2e 20 27 62 61 6c 6c 2f 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 [3]...'ball/'...$package->getDis
289e0 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 tReference();.}.elseif.($package
28a00 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 70 72 65 67 5f 6d 61 74 ->getDistReference().&&.preg_mat
28a20 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 28 3f 3a 77 77 77 5c 2e 29 3f 67 69 74 68 75 62 5c ch('{^https?://(?:www\.)?github\
28a40 2e 63 6f 6d 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 61 72 63 68 69 76 65 2f 2e 2b 5c .com/([^/]+)/([^/]+)/archive/.+\
28a60 2e 28 7a 69 70 7c 74 61 72 29 28 3f 3a 5c 2e 67 7a 29 3f 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 .(zip|tar)(?:\.gz)?$}i',.$url,.$
28a80 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 68 74 74 70 73 3a 2f 2f 61 70 69 2e match)).{...$url.=.'https://api.
28aa0 67 69 74 68 75 62 2e 63 6f 6d 2f 72 65 70 6f 73 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e github.com/repos/'...$match[1]..
28ac0 20 27 2f 27 2e 20 24 6d 61 74 63 68 5b 32 5d 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 33 .'/'..$match[2]...'/'...$match[3
28ae0 5d 20 2e 20 27 62 61 6c 6c 2f 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 ]...'ball/'...$package->getDistR
28b00 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e eference();.}.elseif.($package->
28b20 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 getDistReference().&&.preg_match
28b40 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 61 70 69 5c 2e 67 69 74 68 75 62 5c 2e 63 6f 6d 2f 72 65 ('{^https?://api\.github\.com/re
28b60 70 6f 73 2f 28 5b 5e 2f 5d 2b 29 2f 28 5b 5e 2f 5d 2b 29 2f 28 7a 69 70 7c 74 61 72 29 62 61 6c pos/([^/]+)/([^/]+)/(zip|tar)bal
28b80 6c 28 3f 3a 2f 2e 2b 29 3f 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a l(?:/.+)?$}i',.$url,.$match)).{.
28ba0 0a 20 24 75 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 ..$url.=.'https://api.github.com
28bc0 2f 72 65 70 6f 73 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f 27 2e 20 24 6d 61 74 /repos/'...$match[1]...'/'..$mat
28be0 63 68 5b 32 5d 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 33 5d 20 2e 20 27 62 61 6c 6c 2f ch[2]...'/'...$match[3]...'ball/
28c00 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 '...$package->getDistReference()
28c20 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 ;.}.}..if.(!extension_loaded('op
28c40 65 6e 73 73 6c 27 29 20 26 26 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 enssl').&&.(0.===.strpos($url,.'
28c60 68 74 74 70 73 3a 27 29 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 75 72 6c 2c 20 27 https:').||.0.===.strpos($url,.'
28c80 68 74 74 70 3a 2f 2f 67 69 74 68 75 62 2e 63 6f 6d 27 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 http://github.com'))).{.throw.ne
28ca0 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e w.\RuntimeException('You.must.en
28cc0 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 64 6f able.the.openssl.extension.to.do
28ce0 77 6e 6c 6f 61 64 20 66 69 6c 65 73 20 76 69 61 20 68 74 74 70 73 27 29 3b 0a 7d 0a 0a 72 65 74 wnload.files.via.https');.}..ret
28d00 75 72 6e 20 70 61 72 65 6e 74 3a 3a 70 72 6f 63 65 73 73 55 72 6c 28 24 70 61 63 6b 61 67 65 2c urn.parent::processUrl($package,
28d20 20 24 75 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 .$url);.}..........abstract.prot
28d40 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 20 24 70 ected.function.extract($file,.$p
28d60 61 74 68 29 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 69 73 74 46 ath);.....private.function.listF
28d80 69 6c 65 73 28 24 64 69 72 29 0a 7b 0a 24 66 69 6c 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 iles($dir).{.$files.=.array_merg
28da0 65 28 67 6c 6f 62 28 24 64 69 72 20 2e 20 27 2f 2e 2a 27 29 20 3f 3a 20 61 72 72 61 79 28 29 2c e(glob($dir...'/.*').?:.array(),
28dc0 20 67 6c 6f 62 28 24 64 69 72 20 2e 20 27 2f 2a 27 29 20 3f 3a 20 61 72 72 61 79 28 29 29 3b 0a .glob($dir...'/*').?:.array());.
28de0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 72 61 79 5f 66 69 6c 74 65 .return.array_values(array_filte
28e00 72 28 24 66 69 6c 65 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c 29 20 7b 0a 72 65 74 75 72 r($files,.function.($el).{.retur
28e20 6e 20 62 61 73 65 6e 61 6d 65 28 24 65 6c 29 20 21 3d 3d 20 27 2e 27 20 26 26 20 62 61 73 65 6e n.basename($el).!==.'.'.&&.basen
28e40 61 6d 65 28 24 65 6c 29 20 21 3d 3d 20 27 2e 2e 27 3b 0a 7d 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 ame($el).!==.'..';.}));.}.}.<?ph
28e60 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\
28e80 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 73 74 Downloader;.......class.Filesyst
28ea0 65 6d 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 7b emException.extends.\Exception.{
28ec0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6d 65 .public.function.__construct($me
28ee0 73 73 61 67 65 20 3d 20 6e 75 6c 6c 2c 20 24 63 6f 64 65 20 3d 20 6e 75 6c 6c 2c 20 5c 45 78 63 ssage.=.null,.$code.=.null,.\Exc
28f00 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f 75 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e eption.$previous.=.null).{.paren
28f20 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 22 46 69 6c 65 73 79 73 74 65 6d 20 65 78 63 65 70 t::__construct("Filesystem.excep
28f40 74 69 6f 6e 3a 20 5c 6e 22 2e 24 6d 65 73 73 61 67 65 2c 20 24 63 6f 64 65 2c 20 24 70 72 65 76 tion:.\n".$message,.$code,.$prev
28f60 69 6f 75 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 ious);.}.}.<?php............name
28f80 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.
28fa0 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
28fc0 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 56 63 73 52 65 e;.use.Composer\Repository\VcsRe
28fe0 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 50 65 72 66 pository;.use.Composer\Util\Perf
29000 6f 72 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 72 66 6f 72 63 65 44 6f 77 6e 6c 6f 61 64 orce;.....class.PerforceDownload
29020 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 6f 77 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 6f 74 65 er.extends.VcsDownloader.{.prote
29040 63 74 65 64 20 24 70 65 72 66 6f 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 65 72 66 6f cted.$perforce;.protected.$perfo
29060 72 63 65 49 6e 6a 65 63 74 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 rceInjected.=.false;.....public.
29080 66 75 6e 63 74 69 6f 6e 20 64 6f 44 6f 77 6e 6c 6f 61 64 28 50 61 63 6b 61 67 65 49 6e 74 65 72 function.doDownload(PackageInter
290a0 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 72 65 66 20 3d 20 24 face.$package,.$path).{.$ref.=.$
290c0 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 3b 0a 24 package->getSourceReference();.$
290e0 6c 61 62 65 6c 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 label.=.$package->getPrettyVersi
29100 6f 6e 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 43 6c 6f on();..$this->io->write('....Clo
29120 6e 69 6e 67 20 27 20 2e 20 24 72 65 66 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 50 65 72 66 6f ning.'...$ref);.$this->initPerfo
29140 72 63 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 rce($package,.$path);.$this->per
29160 66 6f 72 63 65 2d 3e 73 65 74 53 74 72 65 61 6d 28 24 72 65 66 29 3b 0a 24 74 68 69 73 2d 3e 70 force->setStream($ref);.$this->p
29180 65 72 66 6f 72 63 65 2d 3e 70 34 4c 6f 67 69 6e 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 74 68 erforce->p4Login($this->io);.$th
291a0 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 77 72 69 74 65 50 34 43 6c 69 65 6e 74 53 70 65 63 28 is->perforce->writeP4ClientSpec(
291c0 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 63 6f 6e 6e 65 63 74 43 6c 69 65 6e );.$this->perforce->connectClien
291e0 74 28 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 73 79 6e 63 43 6f 64 65 42 61 t();.$this->perforce->syncCodeBa
29200 73 65 28 24 6c 61 62 65 6c 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 63 6c 65 se($label);.$this->perforce->cle
29220 61 6e 75 70 43 6c 69 65 6e 74 53 70 65 63 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 anupClientSpec();.}..public.func
29240 74 69 6f 6e 20 69 6e 69 74 50 65 72 66 6f 72 63 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 tion.initPerforce($package,.$pat
29260 68 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 29 20 7b 0a 24 74 68 69 h).{.if.($this->perforce).{.$thi
29280 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 s->perforce->initializePath($pat
292a0 68 29 3b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 70 61 h);.return;.}..$repository.=.$pa
292c0 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 43 6f 6e ckage->getRepository();.$repoCon
292e0 66 69 67 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 72 65 70 6f 73 69 74 6f 72 79 20 69 6e 73 74 fig.=.null;.if.($repository.inst
29300 61 6e 63 65 6f 66 20 56 63 73 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 72 65 70 6f 43 6f 6e anceof.VcsRepository).{.$repoCon
29320 66 69 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6f 43 6f 6e 66 69 67 28 24 72 65 70 6f fig.=.$this->getRepoConfig($repo
29340 73 69 74 6f 72 79 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 20 3d 20 50 65 72 sitory);.}.$this->perforce.=.Per
29360 66 6f 72 63 65 3a 3a 63 72 65 61 74 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 70 61 63 6b force::create($repoConfig,.$pack
29380 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 0a age->getSourceUrl(),.$path);.}..
293a0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 43 6f 6e 66 69 67 28 56 private.function.getRepoConfig(V
293c0 63 73 52 65 70 6f 73 69 74 6f 72 79 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 72 65 74 75 csRepository.$repository).{.retu
293e0 72 6e 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 52 65 70 6f 43 6f 6e 66 69 67 28 29 3b rn.$repository->getRepoConfig();
29400 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 55 70 64 61 74 65 28 .}.....public.function.doUpdate(
29420 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
29440 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 geInterface.$target,.$path).{.$t
29460 68 69 73 2d 3e 64 6f 44 6f 77 6e 6c 6f 61 64 28 24 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 3b his->doDownload($target,.$path);
29480 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 61 6c 43 .}.....public.function.getLocalC
294a0 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 hanges(PackageInterface.$package
294c0 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 65 28 27 50 65 72 ,.$path).{.$this->io->write('Per
294e0 66 6f 72 63 65 20 64 72 69 76 65 72 20 64 6f 65 73 20 6e 6f 74 20 63 68 65 63 6b 20 66 6f 72 20 force.driver.does.not.check.for.
29500 6c 6f 63 61 6c 20 63 68 61 6e 67 65 73 20 62 65 66 6f 72 65 20 6f 76 65 72 72 69 64 69 6e 67 27 local.changes.before.overriding'
29520 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 ,.true);..return;.}.....protecte
29540 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 d.function.getCommitLogs($fromRe
29560 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a 7b 0a ference,.$toReference,.$path).{.
29580 24 63 6f 6d 6d 69 74 4c 6f 67 73 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 67 $commitLogs.=.$this->perforce->g
295a0 65 74 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f etCommitLogs($fromReference,.$to
295c0 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 69 74 4c 6f 67 73 3b Reference);..return.$commitLogs;
295e0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 65 72 66 6f 72 63 65 28 .}..public.function.setPerforce(
29600 24 70 65 72 66 6f 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 20 3d 20 24 $perforce).{.$this->perforce.=.$
29620 70 65 72 66 6f 72 63 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 perforce;.}.}.<?php............n
29640 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 amespace.Composer\Downloader;..u
29660 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 6f 6d 70 6f 73 65 72 se.Composer\Config;.use.Composer
29680 5c 43 61 63 68 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 \Cache;.use.Composer\EventDispat
296a0 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 cher\EventDispatcher;.use.Compos
296c0 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
296e0 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 5a 69 70 41 72 63 poser\IO\IOInterface;.use.ZipArc
29700 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 64 65 72 20 65 78 hive;.....class.ZipDownloader.ex
29720 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 70 72 6f 74 65 63 tends.ArchiveDownloader.{.protec
29740 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 74 69 6f 6e 20 5f ted.$process;..public.function._
29760 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 66 _construct(IOInterface.$io,.Conf
29780 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 65 76 65 ig.$config,.EventDispatcher.$eve
297a0 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 43 61 63 68 65 20 24 63 61 63 68 ntDispatcher.=.null,.Cache.$cach
297c0 65 20 3d 20 6e 75 6c 6c 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 e.=.null,.ProcessExecutor.$proce
297e0 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 ss.=.null).{.$this->process.=.$p
29800 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 rocess.?:.new.ProcessExecutor($i
29820 6f 29 3b 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 o);.parent::__construct($io,.$co
29840 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 3b nfig,.$eventDispatcher,.$cache);
29860 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 74 72 61 63 74 28 24 .}..protected.function.extract($
29880 66 69 6c 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 70 72 6f 63 65 73 73 45 72 72 6f 72 20 3d 20 6e file,.$path).{.$processError.=.n
298a0 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 ull;....if.(!defined('PHP_WINDOW
298c0 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 6e 64 20 3d 20 S_VERSION_BUILD')).{.$command.=.
298e0 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 6c 65 29 2e 27 'unzip.'.escapeshellarg($file).'
29900 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 20 2e 20 27 20 .-d.'.escapeshellarg($path)...'.
29920 26 26 20 63 68 6d 6f 64 20 2d 52 20 75 2b 77 20 27 20 2e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 &&.chmod.-R.u+w.'...escapeshella
29940 72 67 28 24 70 61 74 68 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 rg($path);.if.(0.===.$this->proc
29960 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 67 6e 6f 72 65 64 4f ess->execute($command,.$ignoredO
29980 75 74 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 72 72 utput)).{.return;.}..$processErr
299a0 6f 72 20 3d 20 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 or.=.'Failed.to.execute.'...$com
299c0 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 3e mand..."\n\n"...$this->process->
299e0 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 21 63 6c 61 73 73 5f getErrorOutput();.}..if.(!class_
29a00 65 78 69 73 74 73 28 27 5a 69 70 41 72 63 68 69 76 65 27 29 29 20 7b 0a 0a 20 24 69 6e 69 50 61 exists('ZipArchive')).{...$iniPa
29a20 74 68 20 3d 20 70 68 70 5f 69 6e 69 5f 6c 6f 61 64 65 64 5f 66 69 6c 65 28 29 3b 0a 0a 69 66 20 th.=.php_ini_loaded_file();..if.
29a40 28 24 69 6e 69 50 61 74 68 29 20 7b 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 54 68 65 20 ($iniPath).{.$iniMessage.=.'The.
29a60 70 68 70 2e 69 6e 69 20 75 73 65 64 20 62 79 20 79 6f 75 72 20 63 6f 6d 6d 61 6e 64 2d 6c 69 6e php.ini.used.by.your.command-lin
29a80 65 20 50 48 50 20 69 73 3a 20 27 20 2e 20 24 69 6e 69 50 61 74 68 3b 0a 7d 20 65 6c 73 65 20 7b e.PHP.is:.'...$iniPath;.}.else.{
29aa0 0a 24 69 6e 69 4d 65 73 73 61 67 65 20 3d 20 27 41 20 70 68 70 2e 69 6e 69 20 66 69 6c 65 20 64 .$iniMessage.=.'A.php.ini.file.d
29ac0 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 20 59 6f 75 20 77 69 6c 6c 20 68 61 76 65 20 74 6f 20 oes.not.exist..You.will.have.to.
29ae0 63 72 65 61 74 65 20 6f 6e 65 2e 27 3b 0a 7d 0a 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 create.one.';.}..$error.=."Could
29b00 20 6e 6f 74 20 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 .not.decompress.the.archive,.ena
29b20 62 6c 65 20 74 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 ble.the.PHP.zip.extension.or.ins
29b40 74 61 6c 6c 20 75 6e 7a 69 70 2e 5c 6e 22 0a 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 20 2e 20 22 tall.unzip.\n"...$iniMessage..."
29b60 5c 6e 22 20 2e 20 24 70 72 6f 63 65 73 73 45 72 72 6f 72 3b 0a 0a 69 66 20 28 21 64 65 66 69 6e \n"...$processError;..if.(!defin
29b80 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 ed('PHP_WINDOWS_VERSION_BUILD'))
29ba0 20 7b 0a 24 65 72 72 6f 72 20 3d 20 22 43 6f 75 6c 64 20 6e 6f 74 20 64 65 63 6f 6d 70 72 65 73 .{.$error.=."Could.not.decompres
29bc0 73 20 74 68 65 20 61 72 63 68 69 76 65 2c 20 65 6e 61 62 6c 65 20 74 68 65 20 50 48 50 20 7a 69 s.the.archive,.enable.the.PHP.zi
29be0 70 20 65 78 74 65 6e 73 69 6f 6e 2e 5c 6e 22 20 2e 20 24 69 6e 69 4d 65 73 73 61 67 65 3b 0a 7d p.extension.\n"...$iniMessage;.}
29c00 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 ..throw.new.\RuntimeException($e
29c20 72 72 6f 72 29 3b 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 20 3d 20 6e 65 77 20 5a 69 70 41 rror);.}..$zipArchive.=.new.ZipA
29c40 72 63 68 69 76 65 28 29 3b 0a 0a 69 66 20 28 74 72 75 65 20 21 3d 3d 20 28 24 72 65 74 76 61 6c rchive();..if.(true.!==.($retval
29c60 20 3d 20 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 6f 70 65 6e 28 24 66 69 6c 65 29 29 29 20 7b 0a .=.$zipArchive->open($file))).{.
29c80 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
29ca0 69 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 4d 65 73 73 61 67 65 28 24 72 65 74 76 ion($this->getErrorMessage($retv
29cc0 61 6c 2c 20 24 66 69 6c 65 29 2c 20 24 72 65 74 76 61 6c 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 al,.$file),.$retval);.}..if.(tru
29ce0 65 20 21 3d 3d 20 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 70 61 e.!==.$zipArchive->extractTo($pa
29d00 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 69 th)).{.throw.new.\RuntimeExcepti
29d20 6f 6e 28 22 54 68 65 72 65 20 77 61 73 20 61 6e 20 65 72 72 6f 72 20 65 78 74 72 61 63 74 69 6e on("There.was.an.error.extractin
29d40 67 20 74 68 65 20 5a 49 50 20 66 69 6c 65 2e 20 43 6f 72 72 75 70 74 20 66 69 6c 65 3f 22 29 3b g.the.ZIP.file..Corrupt.file?");
29d60 0a 7d 0a 0a 24 7a 69 70 41 72 63 68 69 76 65 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a .}..$zipArchive->close();.}.....
29d80 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 72 6f 72 4d ....protected.function.getErrorM
29da0 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 74 63 68 20 essage($retval,.$file).{.switch.
29dc0 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 3a 45 52 5f ($retval).{.case.ZipArchive::ER_
29de0 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 20 27 25 73 EXISTS:.return.sprintf("File.'%s
29e00 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 63 61 73 65 '.already.exists.",.$file);.case
29e20 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 72 6e 20 73 .ZipArchive::ER_INCONS:.return.s
29e40 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 69 6e 63 6f printf("Zip.archive.'%s'.is.inco
29e60 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 41 72 63 68 nsistent.",.$file);.case.ZipArch
29e80 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 66 28 22 49 ive::ER_INVAL:.return.sprintf("I
29ea0 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 29 3b 0a 63 nvalid.argument.(%s)",.$file);.c
29ec0 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 65 74 75 72 ase.ZipArchive::ER_MEMORY:.retur
29ee0 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 73 29 22 2c n.sprintf("Malloc.failure.(%s)",
29f00 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 4e 4f 45 .$file);.case.ZipArchive::ER_NOE
29f20 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 7a 69 70 20 NT:.return.sprintf("No.such.zip.
29f40 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 70 41 72 63 file:.'%s'",.$file);.case.ZipArc
29f60 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 74 66 28 22 hive::ER_NOZIP:.return.sprintf("
29f80 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 20 24 66 69 '%s'.is.not.a.zip.archive.",.$fi
29fa0 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 4e 3a 0a 72 le);.case.ZipArchive::ER_OPEN:.r
29fc0 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 70 20 66 69 eturn.sprintf("Can't.open.zip.fi
29fe0 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 68 69 76 65 le:.%s",.$file);.case.ZipArchive
2a000 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 69 70 20 72 ::ER_READ:.return.sprintf("Zip.r
2a020 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 65 20 5a 69 ead.error.(%s)",.$file);.case.Zi
2a040 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 72 69 6e 74 pArchive::ER_SEEK:.return.sprint
2a060 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 6c 65 29 3b f("Zip.seek.error.(%s)",.$file);
2a080 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 73 27 20 69 .default:.return.sprintf("'%s'.i
2a0a0 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 6f 74 20 65 s.not.a.valid.zip.archive,.got.e
2a0c0 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 61 6c 29 3b rror.code:.%s",.$file,.$retval);
2a0e0 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 .}.}.}.<?php............namespac
2a100 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 e.Composer\Downloader;..use.Comp
2a120 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
2a140 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 48 75 62 3b 0a 75 73 65 20 43 6f 6d se.Composer\Util\GitHub;.use.Com
2a160 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 20 61 73 20 47 69 74 55 74 69 6c 3b 0a 0a 0a 0a 0a 63 poser\Util\Git.as.GitUtil;.....c
2a180 6c 61 73 73 20 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 6f lass.GitDownloader.extends.VcsDo
2a1a0 77 6e 6c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 68 61 73 53 74 61 73 68 65 64 43 68 wnloader.{.private.$hasStashedCh
2a1c0 61 6e 67 65 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 anges.=.false;.....public.functi
2a1e0 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 65 20 24 on.doDownload(PackageInterface.$
2a200 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 45 6e package,.$path).{.$this->cleanEn
2a220 76 28 29 3b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 v();.$path.=.$this->normalizePat
2a240 68 28 24 70 61 74 68 29 3b 0a 0a 24 72 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 h($path);..$ref.=.$package->getS
2a260 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 24 66 6c 61 67 20 3d 20 64 65 66 69 6e 65 ourceReference();.$flag.=.define
2a280 64 28 27 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 20 3f d('PHP_WINDOWS_VERSION_MAJOR').?
2a2a0 20 27 2f 44 20 27 20 3a 20 27 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 69 74 20 63 6c 6f .'/D.'.:.'';.$command.=.'git.clo
2a2c0 6e 65 20 25 73 20 25 73 20 26 26 20 63 64 20 27 2e 24 66 6c 61 67 2e 27 25 32 24 73 20 26 26 20 ne.%s.%s.&&.cd.'.$flag.'%2$s.&&.
2a2e0 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 24 73 20 26 26 20 git.remote.add.composer.%1$s.&&.
2a300 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 2d 3e 69 6f 2d 3e git.fetch.composer';.$this->io->
2a320 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 3b 0a 0a 24 63 6f write("....Cloning.".$ref);..$co
2a340 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 6c 29 20 75 mmandCallable.=.function($url).u
2a360 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 0a 72 65 74 se.($ref,.$path,.$command).{.ret
2a380 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 73 68 65 6c urn.sprintf($command,.escapeshel
2a3a0 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 70 61 74 68 larg($url),.escapeshellarg($path
2a3c0 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 0a 0a 24 74 ),.escapeshellarg($ref));.};..$t
2a3e0 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 61 62 6c 65 his->runCommand($commandCallable
2a400 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 70 61 74 ,.$package->getSourceUrl(),.$pat
2a420 68 2c 20 74 72 75 65 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 h,.true);.$this->setPushUrl($pac
2a440 6b 61 67 65 2c 20 24 70 61 74 68 29 3b 0a 0a 69 66 20 28 24 6e 65 77 52 65 66 20 3d 20 24 74 68 kage,.$path);..if.($newRef.=.$th
2a460 69 73 2d 3e 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 is->updateToCommit($path,.$ref,.
2a480 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 2c 20 24 70 $package->getPrettyVersion(),.$p
2a4a0 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 29 20 7b 0a 69 66 20 ackage->getReleaseDate())).{.if.
2a4c0 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 3d 3d ($package->getDistReference().==
2a4e0 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 =.$package->getSourceReference()
2a500 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 ).{.$package->setDistReference($
2a520 6e 65 77 52 65 66 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 newRef);.}.$package->setSourceRe
2a540 66 65 72 65 6e 63 65 28 24 6e 65 77 52 65 66 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ference($newRef);.}.}.....public
2a560 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 74 65 72 66 .function.doUpdate(PackageInterf
2a580 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 ace.$initial,.PackageInterface.$
2a5a0 74 61 72 67 65 74 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 45 6e 76 target,.$path).{.$this->cleanEnv
2a5c0 28 29 3b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 ();.$path.=.$this->normalizePath
2a5e0 28 24 70 61 74 68 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 67 69 ($path);.if.(!is_dir($path.'/.gi
2a600 74 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 t')).{.throw.new.\RuntimeExcepti
2a620 6f 6e 28 27 54 68 65 20 2e 67 69 74 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6d 69 73 73 69 6e on('The..git.directory.is.missin
2a640 67 20 66 72 6f 6d 20 27 2e 24 70 61 74 68 2e 27 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 g.from.'.$path.',.see.http://get
2a660 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 63 6f 6d 6d 69 74 2d 64 65 70 73 20 66 6f 72 20 6d 6f 72 composer.org/commit-deps.for.mor
2a680 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 72 65 66 20 3d 20 24 74 61 72 67 e.information');.}..$ref.=.$targ
2a6a0 65 74 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 74 68 69 73 2d et->getSourceReference();.$this-
2a6c0 3e 69 6f 2d 3e 77 72 69 74 65 28 22 20 20 20 20 43 68 65 63 6b 69 6e 67 20 6f 75 74 20 22 2e 24 >io->write("....Checking.out.".$
2a6e0 72 65 66 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 69 74 20 72 65 6d 6f 74 65 20 73 65 74 ref);.$command.=.'git.remote.set
2a700 2d 75 72 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 -url.composer.%s.&&.git.fetch.co
2a720 6d 70 6f 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 mposer.&&.git.fetch.--tags.compo
2a740 73 65 72 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 ser';....$this->process->execute
2a760 28 27 67 69 74 20 72 65 6d 6f 74 65 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 ('git.remote.-v',.$output,.$path
2a780 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 63 6f 6d 70 6f 73 65 72 );.if.(preg_match('{^(?:composer
2a7a0 7c 6f 72 69 67 69 6e 29 5c 73 2b 68 74 74 70 73 3f 3a 2f 2f 28 2e 2b 29 3a 28 2e 2b 29 40 28 5b |origin)\s+https?://(.+):(.+)@([
2a7c0 5e 2f 5d 2b 29 7d 69 6d 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 ^/]+)}im',.$output,.$match)).{.$
2a7e0 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 this->io->setAuthentication($mat
2a800 63 68 5b 33 5d 2c 20 75 72 6c 64 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 31 5d 29 2c 20 75 72 6c ch[3],.urldecode($match[1]),.url
2a820 64 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 32 5d 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 43 decode($match[2]));.}..$commandC
2a840 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 28 24 63 allable.=.function($url).use.($c
2a860 6f 6d 6d 61 6e 64 29 20 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 24 63 6f 6d 6d 61 6e ommand).{.return.sprintf($comman
2a880 64 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 6c 29 29 3b 0a 7d 3b 0a 0a 24 74 d,.escapeshellarg($url));.};..$t
2a8a0 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 61 62 6c 65 his->runCommand($commandCallable
2a8c0 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 2c 20 24 70 61 74 68 ,.$target->getSourceUrl(),.$path
2a8e0 29 3b 0a 69 66 20 28 24 6e 65 77 52 65 66 20 3d 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 54 6f );.if.($newRef.=.$this->updateTo
2a900 43 6f 6d 6d 69 74 28 24 70 61 74 68 2c 20 24 72 65 66 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 Commit($path,.$ref,.$target->get
2a920 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 74 61 72 67 65 74 2d 3e 67 65 74 52 65 6c PrettyVersion(),.$target->getRel
2a940 65 61 73 65 44 61 74 65 28 29 29 29 20 7b 0a 69 66 20 28 24 74 61 72 67 65 74 2d 3e 67 65 74 44 easeDate())).{.if.($target->getD
2a960 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 3d 3d 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 53 istReference().===.$target->getS
2a980 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 24 74 61 72 67 65 74 2d 3e 73 65 74 ourceReference()).{.$target->set
2a9a0 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 6e 65 77 52 65 66 29 3b 0a 7d 0a 24 74 61 72 67 65 DistReference($newRef);.}.$targe
2a9c0 74 2d 3e 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 6e 65 77 52 65 66 29 3b 0a t->setSourceReference($newRef);.
2a9e0 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 4c 6f 63 61 6c }.}.....public.function.getLocal
2aa00 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 Changes(PackageInterface.$packag
2aa20 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 e,.$path).{.$this->cleanEnv();.$
2aa40 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 path.=.$this->normalizePath($pat
2aa60 68 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 70 61 74 68 2e 27 2f 2e 67 69 74 27 29 29 20 h);.if.(!is_dir($path.'/.git')).
2aa80 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 67 69 74 20 73 74 61 {.return;.}..$command.=.'git.sta
2aaa0 74 75 73 20 2d 2d 70 6f 72 63 65 6c 61 69 6e 20 2d 2d 75 6e 74 72 61 63 6b 65 64 2d 66 69 6c 65 tus.--porcelain.--untracked-file
2aac0 73 3d 6e 6f 27 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 s=no';.if.(0.!==.$this->process-
2aae0 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 61 74 >execute($command,.$output,.$pat
2ab00 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 69 6f h)).{.throw.new.\RuntimeExceptio
2ab20 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
2ab40 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
2ab60 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 69 6d 28 24 ErrorOutput());.}..return.trim($
2ab80 6f 75 74 70 75 74 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 output).?:.null;.}.....protected
2aba0 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 50 61 63 6b 61 67 65 49 6e .function.cleanChanges(PackageIn
2abc0 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 2c 20 24 75 70 64 61 74 65 terface.$package,.$path,.$update
2abe0 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 24 70 61 74 68 20 3d 20 24 ).{.$this->cleanEnv();.$path.=.$
2ac00 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 69 66 20 28 this->normalizePath($path);.if.(
2ac20 21 24 63 68 61 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 61 6c 43 68 61 6e 67 !$changes.=.$this->getLocalChang
2ac40 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d es($package,.$path)).{.return;.}
2ac60 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 ..if.(!$this->io->isInteractive(
2ac80 29 29 20 7b 0a 24 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f )).{.$discardChanges.=.$this->co
2aca0 6e 66 69 67 2d 3e 67 65 74 28 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 29 3b 0a 69 66 nfig->get('discard-changes');.if
2acc0 20 28 74 72 75 65 20 3d 3d 3d 20 24 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 29 20 7b 0a 72 65 .(true.===.$discardChanges).{.re
2ace0 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 70 61 74 68 turn.$this->discardChanges($path
2ad00 29 3b 0a 7d 0a 69 66 20 28 27 73 74 61 73 68 27 20 3d 3d 3d 20 24 64 69 73 63 61 72 64 43 68 61 );.}.if.('stash'.===.$discardCha
2ad20 6e 67 65 73 29 20 7b 0a 69 66 20 28 21 24 75 70 64 61 74 65 29 20 7b 0a 72 65 74 75 72 6e 20 70 nges).{.if.(!$update).{.return.p
2ad40 61 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 arent::cleanChanges($package,.$p
2ad60 61 74 68 2c 20 24 75 70 64 61 74 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ath,.$update);.}..return.$this->
2ad80 73 74 61 73 68 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 stashChanges($path);.}..return.p
2ada0 61 72 65 6e 74 3a 3a 63 6c 65 61 6e 43 68 61 6e 67 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 arent::cleanChanges($package,.$p
2adc0 61 74 68 2c 20 24 75 70 64 61 74 65 29 3b 0a 7d 0a 0a 24 63 68 61 6e 67 65 73 20 3d 20 61 72 72 ath,.$update);.}..$changes.=.arr
2ade0 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c 65 6d 29 20 7b 0a 72 65 74 75 72 6e ay_map(function.($elem).{.return
2ae00 20 27 20 20 20 20 27 2e 24 65 6c 65 6d 3b 0a 7d 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c .'....'.$elem;.},.preg_split('{\
2ae20 73 2a 5c 72 3f 5c 6e 5c 73 2a 7d 27 2c 20 24 63 68 61 6e 67 65 73 29 29 3b 0a 24 74 68 69 73 2d s*\r?\n\s*}',.$changes));.$this-
2ae40 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3c 65 72 72 6f 72 3e 54 68 65 20 70 61 63 6b 61 >io->write('....<error>The.packa
2ae60 67 65 20 68 61 73 20 6d 6f 64 69 66 69 65 64 20 66 69 6c 65 73 3a 3c 2f 65 72 72 6f 72 3e 27 29 ge.has.modified.files:</error>')
2ae80 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 61 72 72 61 79 5f 73 6c 69 63 65 28 24 ;.$this->io->write(array_slice($
2aea0 63 68 61 6e 67 65 73 2c 20 30 2c 20 31 30 29 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 63 68 61 changes,.0,.10));.if.(count($cha
2aec0 6e 67 65 73 29 20 3e 20 31 30 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 nges).>.10).{.$this->io->write('
2aee0 20 20 20 20 3c 69 6e 66 6f 3e 27 2e 63 6f 75 6e 74 28 24 63 68 61 6e 67 65 73 29 20 2d 20 31 30 ....<info>'.count($changes).-.10
2af00 20 2e 20 27 20 6d 6f 72 65 20 66 69 6c 65 73 20 6d 6f 64 69 66 69 65 64 2c 20 63 68 6f 6f 73 65 ...'.more.files.modified,.choose
2af20 20 22 76 22 20 74 6f 20 76 69 65 77 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 3c 2f 69 6e 66 6f ."v".to.view.the.full.list</info
2af40 3e 27 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 >');.}..while.(true).{.switch.($
2af60 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 3c 69 6e 66 6f 3e 44 69 73 63 61 72 64 this->io->ask('....<info>Discard
2af80 20 63 68 61 6e 67 65 73 20 5b 79 2c 6e 2c 76 2c 27 2e 28 24 75 70 64 61 74 65 20 3f 20 27 73 2c .changes.[y,n,v,'.($update.?.'s,
2afa0 27 20 3a 20 27 27 29 2e 27 3f 5d 3f 3c 2f 69 6e 66 6f 3e 20 27 2c 20 27 3f 27 29 29 20 7b 0a 63 '.:.'').'?]?</info>.',.'?')).{.c
2afc0 61 73 65 20 27 79 27 3a 0a 24 74 68 69 73 2d 3e 64 69 73 63 61 72 64 43 68 61 6e 67 65 73 28 24 ase.'y':.$this->discardChanges($
2afe0 70 61 74 68 29 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 61 73 65 20 27 73 27 3a 0a 69 66 20 28 21 path);.break.2;..case.'s':.if.(!
2b000 24 75 70 64 61 74 65 29 20 7b 0a 67 6f 74 6f 20 68 65 6c 70 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e $update).{.goto.help;.}..$this->
2b020 73 74 61 73 68 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 3b 0a 62 72 65 61 6b 20 32 3b 0a 0a 63 stashChanges($path);.break.2;..c
2b040 61 73 65 20 27 6e 27 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 ase.'n':.throw.new.\RuntimeExcep
2b060 74 69 6f 6e 28 27 55 70 64 61 74 65 20 61 62 6f 72 74 65 64 27 29 3b 0a 0a 63 61 73 65 20 27 76 tion('Update.aborted');..case.'v
2b080 27 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 63 68 61 6e 67 65 73 29 3b 0a 62 ':.$this->io->write($changes);.b
2b0a0 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 3f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 68 65 6c 70 3a 0a reak;..case.'?':.default:.help:.
2b0c0 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 61 72 72 61 79 28 0a 27 20 20 20 20 79 20 2d $this->io->write(array(.'....y.-
2b0e0 20 64 69 73 63 61 72 64 20 63 68 61 6e 67 65 73 20 61 6e 64 20 61 70 70 6c 79 20 74 68 65 20 27 .discard.changes.and.apply.the.'
2b100 2e 28 24 75 70 64 61 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c .($update.?.'update'.:.'uninstal
2b120 6c 27 29 2c 0a 27 20 20 20 20 6e 20 2d 20 61 62 6f 72 74 20 74 68 65 20 27 2e 28 24 75 70 64 61 l'),.'....n.-.abort.the.'.($upda
2b140 74 65 20 3f 20 27 75 70 64 61 74 65 27 20 3a 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 2e 27 20 61 te.?.'update'.:.'uninstall').'.a
2b160 6e 64 20 6c 65 74 20 79 6f 75 20 6d 61 6e 75 61 6c 6c 79 20 63 6c 65 61 6e 20 74 68 69 6e 67 73 nd.let.you.manually.clean.things
2b180 20 75 70 27 2c 0a 27 20 20 20 20 76 20 2d 20 76 69 65 77 20 6d 6f 64 69 66 69 65 64 20 66 69 6c .up',.'....v.-.view.modified.fil
2b1a0 65 73 27 2c 0a 29 29 3b 0a 69 66 20 28 24 75 70 64 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 es',.));.if.($update).{.$this->i
2b1c0 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 73 20 2d 20 73 74 61 73 68 20 63 68 61 6e 67 65 73 20 o->write('....s.-.stash.changes.
2b1e0 61 6e 64 20 74 72 79 20 74 6f 20 72 65 61 70 70 6c 79 20 74 68 65 6d 20 61 66 74 65 72 20 74 68 and.try.to.reapply.them.after.th
2b200 65 20 75 70 64 61 74 65 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 e.update');.}.$this->io->write('
2b220 20 20 20 20 3f 20 2d 20 70 72 69 6e 74 20 68 65 6c 70 27 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d ....?.-.print.help');.break;.}.}
2b240 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 72 65 61 70 70 6c .}.....protected.function.reappl
2b260 79 43 68 61 6e 67 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d yChanges($path).{.$path.=.$this-
2b280 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 69 66 20 28 24 74 68 69 73 >normalizePath($path);.if.($this
2b2a0 2d 3e 68 61 73 53 74 61 73 68 65 64 43 68 61 6e 67 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 68 61 ->hasStashedChanges).{.$this->ha
2b2c0 73 53 74 61 73 68 65 64 43 68 61 6e 67 65 73 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e sStashedChanges.=.false;.$this->
2b2e0 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 3c 69 6e 66 6f 3e 52 65 2d 61 70 70 6c 79 69 6e 67 io->write('....<info>Re-applying
2b300 20 73 74 61 73 68 65 64 20 63 68 61 6e 67 65 73 27 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 .stashed.changes');.if.(0.!==.$t
2b320 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 73 74 61 73 68 his->process->execute('git.stash
2b340 20 70 6f 70 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 .pop',.$output,.$path)).{.throw.
2b360 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 46 61 69 6c 65 64 20 74 6f new.\RuntimeException("Failed.to
2b380 20 61 70 70 6c 79 20 73 74 61 73 68 65 64 20 63 68 61 6e 67 65 73 3a 5c 6e 5c 6e 22 2e 24 74 68 .apply.stashed.changes:\n\n".$th
2b3a0 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a is->process->getErrorOutput());.
2b3c0 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 }.}.}...........protected.functi
2b3e0 6f 6e 20 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 65 72 65 on.updateToCommit($path,.$refere
2b400 6e 63 65 2c 20 24 62 72 61 6e 63 68 2c 20 24 64 61 74 65 29 0a 7b 0a 24 74 65 6d 70 6c 61 74 65 nce,.$branch,.$date).{.$template
2b420 20 3d 20 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 25 73 20 26 26 20 67 69 74 20 72 65 73 65 74 .=.'git.checkout.%s.&&.git.reset
2b440 20 2d 2d 68 61 72 64 20 25 31 24 73 27 3b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 .--hard.%1$s';.$branch.=.preg_re
2b460 70 6c 61 63 65 28 27 7b 28 3f 3a 5e 64 65 76 2d 7c 28 3f 3a 5c 2e 78 29 3f 2d 64 65 76 24 29 7d place('{(?:^dev-|(?:\.x)?-dev$)}
2b480 69 27 2c 20 27 27 2c 20 24 62 72 61 6e 63 68 29 3b 0a 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 6e i',.'',.$branch);..$branches.=.n
2b4a0 75 6c 6c 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 ull;.if.(0.===.$this->process->e
2b4c0 78 65 63 75 74 65 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 xecute('git.branch.-r',.$output,
2b4e0 20 24 70 61 74 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 6f 75 74 70 75 74 3b 0a .$path)).{.$branches.=.$output;.
2b500 7d 0a 0a 0a 20 24 67 69 74 52 65 66 20 3d 20 24 72 65 66 65 72 65 6e 63 65 3b 0a 69 66 20 28 21 }....$gitRef.=.$reference;.if.(!
2b520 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 preg_match('{^[a-f0-9]{40}$}',.$
2b540 72 65 66 65 72 65 6e 63 65 29 0a 26 26 20 24 62 72 61 6e 63 68 65 73 0a 26 26 20 70 72 65 67 5f reference).&&.$branches.&&.preg_
2b560 6d 61 74 63 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 72 65 67 5f 71 75 6f 74 match('{^\s+composer/'.preg_quot
2b580 65 28 24 72 65 66 65 72 65 6e 63 65 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 73 29 0a e($reference).'$}m',.$branches).
2b5a0 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 68 65 63 ).{.$command.=.sprintf('git.chec
2b5c0 6b 6f 75 74 20 2d 42 20 25 73 20 25 73 20 26 26 20 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 kout.-B.%s.%s.&&.git.reset.--har
2b5e0 64 20 25 32 24 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 72 61 6e 63 68 29 d.%2$s',.escapeshellarg($branch)
2b600 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 27 63 6f 6d 70 6f 73 65 72 2f 27 2e 24 72 65 ,.escapeshellarg('composer/'.$re
2b620 66 65 72 65 6e 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 ference));.if.(0.===.$this->proc
2b640 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 ess->execute($command,.$output,.
2b660 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 $path)).{.return;.}.}....if.(pre
2b680 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 72 65 66 g_match('{^[a-f0-9]{40}$}',.$ref
2b6a0 65 72 65 6e 63 65 29 29 20 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e erence)).{...if.(!preg_match('{^
2b6c0 5c 73 2b 63 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 \s+composer/'.preg_quote($branch
2b6e0 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 73 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 ).'$}m',.$branches).&&.preg_matc
2b700 68 28 27 7b 5e 5c 73 2b 63 6f 6d 70 6f 73 65 72 2f 76 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 h('{^\s+composer/v'.preg_quote($
2b720 62 72 61 6e 63 68 29 2e 27 24 7d 6d 27 2c 20 24 62 72 61 6e 63 68 65 73 29 29 20 7b 0a 24 62 72 branch).'$}m',.$branches)).{.$br
2b740 61 6e 63 68 20 3d 20 27 76 27 20 2e 20 24 62 72 61 6e 63 68 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e anch.=.'v'...$branch;.}..$comman
2b760 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 68 65 63 6b 6f 75 74 20 25 73 27 2c 20 65 d.=.sprintf('git.checkout.%s',.e
2b780 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 72 61 6e 63 68 29 29 3b 0a 24 66 61 6c 6c 62 61 scapeshellarg($branch));.$fallba
2b7a0 63 6b 43 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 68 65 63 6b 6f 75 ckCommand.=.sprintf('git.checkou
2b7c0 74 20 2d 42 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 62 72 61 t.-B.%s.%s',.escapeshellarg($bra
2b7e0 6e 63 68 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 27 63 6f 6d 70 6f 73 65 72 2f 27 nch),.escapeshellarg('composer/'
2b800 2e 24 62 72 61 6e 63 68 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f .$branch));.if.(0.===.$this->pro
2b820 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c cess->execute($command,.$output,
2b840 20 24 70 61 74 68 29 0a 7c 7c 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d .$path).||.0.===.$this->process-
2b860 3e 65 78 65 63 75 74 65 28 24 66 61 6c 6c 62 61 63 6b 43 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 >execute($fallbackCommand,.$outp
2b880 75 74 2c 20 24 70 61 74 68 29 0a 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 ut,.$path).).{.$command.=.sprint
2b8a0 66 28 27 67 69 74 20 72 65 73 65 74 20 2d 2d 68 61 72 64 20 25 73 27 2c 20 65 73 63 61 70 65 73 f('git.reset.--hard.%s',.escapes
2b8c0 68 65 6c 6c 61 72 67 28 24 72 65 66 65 72 65 6e 63 65 29 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 hellarg($reference));.if.(0.===.
2b8e0 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 $this->process->execute($command
2b900 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d ,.$output,.$path)).{.return;.}.}
2b920 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 74 65 .}..$command.=.sprintf($template
2b940 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 67 69 74 52 65 66 29 29 3b 0a 69 66 20 28 ,.escapeshellarg($gitRef));.if.(
2b960 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
2b980 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 ommand,.$output,.$path)).{.retur
2b9a0 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 64 61 74 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 n;.}....if.($date.&&.false.!==.s
2b9c0 74 72 70 6f 73 28 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 trpos($this->process->getErrorOu
2b9e0 74 70 75 74 28 29 2c 20 24 72 65 66 65 72 65 6e 63 65 29 29 20 7b 0a 24 64 61 74 65 20 3d 20 24 tput(),.$reference)).{.$date.=.$
2ba00 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 55 27 29 3b 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d date->format('U');....$command.=
2ba20 20 27 67 69 74 20 62 72 61 6e 63 68 20 2d 72 27 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 .'git.branch.-r';.if.(0.!==.$thi
2ba40 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 6f s->process->execute($command,.$o
2ba60 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 utput,.$path)).{.throw.new.\Runt
2ba80 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 imeException('Failed.to.execute.
2baa0 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 '...$command..."\n\n"...$this->p
2bac0 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 24 67 rocess->getErrorOutput());.}..$g
2bae0 75 65 73 73 54 65 6d 70 6c 61 74 65 20 3d 20 27 67 69 74 20 6c 6f 67 20 2d 2d 75 6e 74 69 6c 3d uessTemplate.=.'git.log.--until=
2bb00 25 73 20 2d 2d 64 61 74 65 3d 72 61 77 20 2d 6e 31 20 2d 2d 70 72 65 74 74 79 3d 25 25 48 20 25 %s.--date=raw.-n1.--pretty=%%H.%
2bb20 73 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c s';.foreach.($this->process->spl
2bb40 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 69 66 20 itLines($output).as.$line).{.if.
2bb60 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6d 70 6f 73 65 72 2f 27 2e 70 72 65 67 5f 71 (preg_match('{^composer/'.preg_q
2bb80 75 6f 74 65 28 24 62 72 61 6e 63 68 29 2e 27 28 3f 3a 5c 2e 78 29 3f 24 7d 69 27 2c 20 74 72 69 uote($branch).'(?:\.x)?$}i',.tri
2bba0 6d 28 24 6c 69 6e 65 29 29 29 20 7b 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e m($line))).{...if.(0.===.$this->
2bbc0 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 24 67 75 65 73 73 54 process->execute(sprintf($guessT
2bbe0 65 6d 70 6c 61 74 65 2c 20 24 64 61 74 65 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 74 emplate,.$date,.escapeshellarg(t
2bc00 72 69 6d 28 24 6c 69 6e 65 29 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b rim($line))),.$output,.$path)).{
2bc20 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 70 75 74 29 3b 0a .$newReference.=.trim($output);.
2bc40 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6e 65 77 52 65 66 }..break;.}.}..if.(empty($newRef
2bc60 65 72 65 6e 63 65 29 29 20 7b 0a 0a 20 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 erence)).{...if.(0.!==.$this->pr
2bc80 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 24 67 75 65 73 73 54 65 6d ocess->execute(sprintf($guessTem
2bca0 70 6c 61 74 65 2c 20 24 64 61 74 65 2c 20 27 2d 2d 61 6c 6c 27 29 2c 20 24 6f 75 74 70 75 74 2c plate,.$date,.'--all'),.$output,
2bcc0 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 .$path)).{.throw.new.\RuntimeExc
2bce0 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 74 eption('Failed.to.execute.'...$t
2bd00 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e his->sanitizeUrl($command)..."\n
2bd20 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 \n"...$this->process->getErrorOu
2bd40 74 70 75 74 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 tput());.}.$newReference.=.trim(
2bd60 24 6f 75 74 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 $output);.}....$command.=.sprint
2bd80 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 6e 65 77 f($template,.escapeshellarg($new
2bda0 52 65 66 65 72 65 6e 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 Reference));.if.(0.===.$this->pr
2bdc0 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 ocess->execute($command,.$output
2bde0 2c 20 24 70 61 74 68 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 ,.$path)).{.$this->io->write('..
2be00 20 20 27 2e 24 72 65 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 ..'.$reference.'.is.gone.(histor
2be20 79 20 77 61 73 20 72 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 y.was.rewritten?),.recovered.by.
2be40 63 68 65 63 6b 69 6e 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 checking.out.'.$newReference);..
2be60 72 65 74 75 72 6e 20 24 6e 65 77 52 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 return.$newReference;.}.}..throw
2be80 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
2bea0 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 74 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 6c o.execute.'...$this->sanitizeUrl
2bec0 28 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f ($command)..."\n\n"...$this->pro
2bee0 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 0a 0a 0a 0a cess->getErrorOutput());.}......
2bf00 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 6f 6d 6d ......protected.function.runComm
2bf20 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 63 77 64 and($commandCallable,.$url,.$cwd
2bf40 2c 20 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 ,.$initialClone.=.false).{.if.($
2bf60 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 24 6f 72 69 67 43 77 64 20 3d 20 24 63 77 64 3b initialClone).{.$origCwd.=.$cwd;
2bf80 0a 24 63 77 64 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 .$cwd.=.null;.}..if.(preg_match(
2bfa0 27 7b 5e 73 73 68 3a 2f 2f 5b 5e 40 5d 2b 40 5b 5e 3a 5d 2b 3a 5b 5e 30 2d 39 5d 2b 7d 27 2c 20 '{^ssh://[^@]+@[^:]+:[^0-9]+}',.
2bfc0 24 75 72 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d $url)).{.throw.new.\InvalidArgum
2bfe0 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 73 6f 75 72 63 65 20 55 52 4c 20 27 2e 24 entException('The.source.URL.'.$
2c000 75 72 6c 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 73 73 68 20 55 52 4c 73 20 73 68 6f 75 6c url.'.is.invalid,.ssh.URLs.shoul
2c020 64 20 68 61 76 65 20 61 20 70 6f 72 74 20 6e 75 6d 62 65 72 20 61 66 74 65 72 20 22 3a 22 2e 27 d.have.a.port.number.after.":".'
2c040 2e 22 5c 6e 22 2e 27 55 73 65 20 73 73 68 3a 2f 2f 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d ."\n".'Use.ssh://git@example.com
2c060 3a 32 32 2f 70 61 74 68 20 6f 72 20 6a 75 73 74 20 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d :22/path.or.just.git@example.com
2c080 3a 70 61 74 68 20 69 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 70 72 6f 76 :path.if.you.do.not.want.to.prov
2c0a0 69 64 65 20 61 20 70 61 73 73 77 6f 72 64 20 6f 72 20 63 75 73 74 6f 6d 20 70 6f 72 74 2e 27 29 ide.a.password.or.custom.port.')
2c0c0 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 68 74 74 70 ;.}....if.(preg_match('{^(?:http
2c0e0 73 3f 7c 67 69 74 29 28 3a 2f 2f 27 2e 24 74 68 69 73 2d 3e 67 65 74 47 69 74 48 75 62 44 6f 6d s?|git)(://'.$this->getGitHubDom
2c100 61 69 6e 73 52 65 67 65 78 28 29 2e 27 2f 2e 2a 29 7d 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 ainsRegex().'/.*)}',.$url,.$matc
2c120 68 29 29 20 7b 0a 24 70 72 6f 74 6f 63 6f 6c 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 h)).{.$protocols.=.$this->config
2c140 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 29 3b 0a 69 66 20 28 21 ->get('github-protocols');.if.(!
2c160 69 73 5f 61 72 72 61 79 28 24 70 72 6f 74 6f 63 6f 6c 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 is_array($protocols)).{.throw.ne
2c180 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 6e 66 69 67 20 76 61 6c 75 w.\RuntimeException('Config.valu
2c1a0 65 20 22 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 22 20 6d 75 73 74 20 62 65 20 61 6e 20 e."github-protocols".must.be.an.
2c1c0 61 72 72 61 79 2c 20 67 6f 74 20 27 2e 67 65 74 74 79 70 65 28 24 70 72 6f 74 6f 63 6f 6c 73 29 array,.got.'.gettype($protocols)
2c1e0 29 3b 0a 7d 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 );.}.$messages.=.array();.foreac
2c200 68 20 28 24 70 72 6f 74 6f 63 6f 6c 73 20 61 73 20 24 70 72 6f 74 6f 63 6f 6c 29 20 7b 0a 24 75 h.($protocols.as.$protocol).{.$u
2c220 72 6c 20 3d 20 24 70 72 6f 74 6f 63 6f 6c 20 2e 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 69 66 20 28 rl.=.$protocol...$match[1];.if.(
2c240 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 63 61 0.===.$this->process->execute(ca
2c260 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 ll_user_func($commandCallable,.$
2c280 75 72 6c 29 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 63 77 64 29 29 20 7b 0a 72 url),.$ignoredOutput,.$cwd)).{.r
2c2a0 65 74 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 eturn;.}.$messages[].=.'-.'...$u
2c2c0 72 6c 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 rl..."\n"...preg_replace('#^#m',
2c2e0 20 27 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 .'..',.$this->process->getErrorO
2c300 75 74 70 75 74 28 29 29 3b 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 24 utput());.if.($initialClone).{.$
2c320 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
2c340 79 28 24 6f 72 69 67 43 77 64 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 74 68 72 6f 77 y($origCwd);.}.}....$this->throw
2c360 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 20 2e 20 24 Exception('Failed.to.clone.'...$
2c380 74 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 75 72 6c 29 20 2e 27 20 76 69 61 20 27 this->sanitizeUrl($url)..'.via.'
2c3a0 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 72 6f 74 6f 63 6f 6c 73 29 2e 27 20 70 72 6f .implode(',.',.$protocols).'.pro
2c3c0 74 6f 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 tocols,.aborting.'..."\n\n"...im
2c3e0 70 6c 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 plode("\n",.$messages),.$url);.}
2c400 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 6e 63 28 24 63 6f 6d ..$command.=.call_user_func($com
2c420 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 30 20 21 3d 3d 20 24 mandCallable,.$url);.if.(0.!==.$
2c440 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c this->process->execute($command,
2c460 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 2c 20 24 63 77 64 29 29 20 7b 0a 0a 20 69 66 20 28 .$ignoredOutput,.$cwd)).{...if.(
2c480 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 67 69 74 40 27 2e 24 74 68 69 73 2d 3e 67 65 74 47 69 preg_match('{^git@'.$this->getGi
2c4a0 74 48 75 62 44 6f 6d 61 69 6e 73 52 65 67 65 78 28 29 2e 27 3a 28 2e 2b 3f 29 5c 2e 67 69 74 24 tHubDomainsRegex().':(.+?)\.git$
2c4c0 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 }i',.$url,.$match)).{.if.(!$this
2c4e0 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 ->io->hasAuthentication($match[1
2c500 5d 29 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 48 75 62 28 24 ])).{.$gitHubUtil.=.new.GitHub($
2c520 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e this->io,.$this->config,.$this->
2c540 70 72 6f 63 65 73 73 29 3b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6c 6f 6e 69 6e 67 20 66 61 process);.$message.=.'Cloning.fa
2c560 69 6c 65 64 20 75 73 69 6e 67 20 61 6e 20 73 73 68 20 6b 65 79 20 66 6f 72 20 61 75 74 68 65 6e iled.using.an.ssh.key.for.authen
2c580 74 69 63 61 74 69 6f 6e 2c 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 tication,.enter.your.GitHub.cred
2c5a0 65 6e 74 69 61 6c 73 20 74 6f 20 61 63 63 65 73 73 20 70 72 69 76 61 74 65 20 72 65 70 6f 73 27 entials.to.access.private.repos'
2c5c0 3b 0a 0a 69 66 20 28 21 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 ;..if.(!$gitHubUtil->authorizeOA
2c5e0 75 74 68 28 24 6d 61 74 63 68 5b 31 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 uth($match[1]).&&.$this->io->isI
2c600 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 nteractive()).{.$gitHubUtil->aut
2c620 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 6d 61 74 63 68 5b horizeOAuthInteractively($match[
2c640 31 5d 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 1],.$message);.}.}..if.($this->i
2c660 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 29 o->hasAuthentication($match[1]))
2c680 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 65 6e 74 .{.$auth.=.$this->io->getAuthent
2c6a0 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 75 72 6c 20 3d 20 27 68 74 74 70 ication($match[1]);.$url.=.'http
2c6c0 73 3a 2f 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 s://'.urlencode($auth['username'
2c6e0 5d 29 20 2e 20 27 3a 27 20 2e 20 75 72 6c 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 70 61 73 73 ])...':'...urlencode($auth['pass
2c700 77 6f 72 64 27 5d 29 20 2e 20 27 40 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 2f 27 2e 24 6d 61 74 word'])...'@'.$match[1].'/'.$mat
2c720 63 68 5b 32 5d 2e 27 2e 67 69 74 27 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f 75 ch[2].'.git';..$command.=.call_u
2c740 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c 29 ser_func($commandCallable,.$url)
2c760 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
2c780 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 2c 20 24 63 ute($command,.$ignoredOutput,.$c
2c7a0 77 64 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 20 0a 20 wd)).{.return;.}.}.}.elseif.(...
2c7c0 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 26 26 0a 70 72 $this->io->isInteractive().&&.pr
2c7e0 65 67 5f 6d 61 74 63 68 28 27 7b 28 68 74 74 70 73 3f 3a 2f 2f 29 28 5b 5e 2f 5d 2b 29 28 2e 2a eg_match('{(https?://)([^/]+)(.*
2c800 29 24 7d 69 27 2c 20 24 75 72 6c 2c 20 24 6d 61 74 63 68 29 20 26 26 0a 73 74 72 70 6f 73 28 24 )$}i',.$url,.$match).&&.strpos($
2c820 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 2c this->process->getErrorOutput(),
2c840 20 27 66 61 74 61 6c 3a 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 66 61 69 6c 65 64 27 29 .'fatal:.Authentication.failed')
2c860 20 21 3d 3d 20 66 61 6c 73 65 0a 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e .!==.false.).{...if.($this->io->
2c880 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6d 61 74 63 68 5b 32 5d 29 29 20 7b 0a hasAuthentication($match[2])).{.
2c8a0 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 65 6e 74 69 63 61 $auth.=.$this->io->getAuthentica
2c8c0 74 69 6f 6e 28 24 6d 61 74 63 68 5b 32 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d tion($match[2]);.}.else.{.$this-
2c8e0 3e 69 6f 2d 3e 77 72 69 74 65 28 24 75 72 6c 2e 27 20 72 65 71 75 69 72 65 73 20 41 75 74 68 65 >io->write($url.'.requires.Authe
2c900 6e 74 69 63 61 74 69 6f 6e 27 29 3b 0a 24 61 75 74 68 20 3d 20 61 72 72 61 79 28 0a 27 75 73 65 ntication');.$auth.=.array(.'use
2c920 72 6e 61 6d 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 55 73 65 72 6e 61 rname'.=>.$this->io->ask('Userna
2c940 6d 65 3a 20 27 29 2c 0a 27 70 61 73 73 77 6f 72 64 27 20 3d 3e 20 24 74 68 69 73 2d 3e 69 6f 2d me:.'),.'password'.=>.$this->io-
2c960 3e 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 50 61 73 73 77 6f 72 64 3a 20 27 29 2c >askAndHideAnswer('Password:.'),
2c980 0a 29 3b 0a 7d 0a 0a 24 75 72 6c 20 3d 20 24 6d 61 74 63 68 5b 31 5d 2e 75 72 6c 65 6e 63 6f 64 .);.}..$url.=.$match[1].urlencod
2c9a0 65 28 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 29 2e 27 3a 27 2e 75 72 6c 65 6e 63 6f e($auth['username']).':'.urlenco
2c9c0 64 65 28 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 2e 27 40 27 2e 24 6d 61 74 63 68 de($auth['password']).'@'.$match
2c9e0 5b 32 5d 2e 24 6d 61 74 63 68 5b 33 5d 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 63 61 6c 6c 5f [2].$match[3];..$command.=.call_
2ca00 75 73 65 72 5f 66 75 6e 63 28 24 63 6f 6d 6d 61 6e 64 43 61 6c 6c 61 62 6c 65 2c 20 24 75 72 6c user_func($commandCallable,.$url
2ca20 29 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 );.if.(0.===.$this->process->exe
2ca40 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 75 74 2c 20 24 cute($command,.$ignoredOutput,.$
2ca60 63 77 64 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 cwd)).{.$this->io->setAuthentica
2ca80 74 69 6f 6e 28 24 6d 61 74 63 68 5b 32 5d 2c 20 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 tion($match[2],.$auth['username'
2caa0 5d 2c 20 24 61 75 74 68 5b 27 70 61 73 73 77 6f 72 64 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a ],.$auth['password']);..return;.
2cac0 7d 0a 7d 0a 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 43 6c 6f 6e 65 29 20 7b 0a 24 74 68 69 73 2d }.}..if.($initialClone).{.$this-
2cae0 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 6f 72 >filesystem->removeDirectory($or
2cb00 69 67 43 77 64 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 74 68 72 6f 77 45 78 63 65 70 74 69 6f 6e 28 igCwd);.}.$this->throwException(
2cb20 27 46 61 69 6c 65 64 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 74 68 69 73 2d 3e 73 61 'Failed.to.execute.'...$this->sa
2cb40 6e 69 74 69 7a 65 55 72 6c 28 24 63 6f 6d 6d 61 6e 64 29 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 nitizeUrl($command)..."\n\n"...$
2cb60 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 2c this->process->getErrorOutput(),
2cb80 20 24 75 72 6c 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 .$url);.}.}..protected.function.
2cba0 67 65 74 47 69 74 48 75 62 44 6f 6d 61 69 6e 73 52 65 67 65 78 28 29 0a 7b 0a 72 65 74 75 72 6e getGitHubDomainsRegex().{.return
2cbc0 20 27 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f 6d 61 70 28 27 70 72 65 .'('.implode('|',.array_map('pre
2cbe0 67 5f 71 75 6f 74 65 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 g_quote',.$this->config->get('gi
2cc00 74 68 75 62 2d 64 6f 6d 61 69 6e 73 27 29 29 29 2e 27 29 27 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 thub-domains'))).')';.}..protect
2cc20 65 64 20 66 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 ed.function.throwException($mess
2cc40 61 67 65 2c 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 age,.$url).{.if.(0.!==.$this->pr
2cc60 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',.
2cc80 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
2cca0 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.
2ccc0 27 2e 24 74 68 69 73 2d 3e 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 75 72 6c 29 2e 27 2c 20 67 69 '.$this->sanitizeUrl($url).',.gi
2cce0 74 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 t.was.not.found,.check.that.it.i
2cd00 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 s.installed.and.in.your.PATH.env
2cd20 2e 27 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 .'..."\n\n"...$this->process->ge
2cd40 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 tErrorOutput());.}..throw.new.\R
2cd60 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 72 untimeException($message);.}..pr
2cd80 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 61 6e 69 74 69 7a 65 55 72 6c 28 24 6d 65 otected.function.sanitizeUrl($me
2cda0 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 65 28 27 7b 3a ssage).{.return.preg_replace('{:
2cdc0 2f 2f 28 5b 5e 40 5d 2b 3f 29 3a 2e 2b 3f 40 7d 27 2c 20 27 3a 2f 2f 24 31 3a 2a 2a 2a 40 27 2c //([^@]+?):.+?@}',.'://$1:***@',
2cde0 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f .$message);.}..protected.functio
2ce00 6e 20 73 65 74 50 75 73 68 55 72 6c 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 n.setPushUrl(PackageInterface.$p
2ce20 61 63 6b 61 67 65 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 ackage,.$path).{...if.(preg_matc
2ce40 68 28 27 7b 5e 28 3f 3a 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 27 2e 24 74 68 69 73 2d 3e 67 h('{^(?:https?|git)://'.$this->g
2ce60 65 74 47 69 74 48 75 62 44 6f 6d 61 69 6e 73 52 65 67 65 78 28 29 2e 27 2f 28 5b 5e 2f 5d 2b 29 etGitHubDomainsRegex().'/([^/]+)
2ce80 2f 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 /([^/]+?)(?:\.git)?$}',.$package
2cea0 2d 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 72 ->getSourceUrl(),.$match)).{.$pr
2cec0 6f 74 6f 63 6f 6c 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 otocols.=.$this->config->get('gi
2cee0 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 29 3b 0a 24 70 75 73 68 55 72 6c 20 3d 20 27 67 69 thub-protocols');.$pushUrl.=.'gi
2cf00 74 40 27 2e 24 6d 61 74 63 68 5b 31 5d 2e 27 3a 27 2e 24 6d 61 74 63 68 5b 32 5d 2e 27 2f 27 2e t@'.$match[1].':'.$match[2].'/'.
2cf20 24 6d 61 74 63 68 5b 33 5d 2e 27 2e 67 69 74 27 3b 0a 69 66 20 28 24 70 72 6f 74 6f 63 6f 6c 73 $match[3].'.git';.if.($protocols
2cf40 5b 30 5d 20 21 3d 3d 20 27 67 69 74 27 29 20 7b 0a 24 70 75 73 68 55 72 6c 20 3d 20 27 68 74 74 [0].!==.'git').{.$pushUrl.=.'htt
2cf60 70 73 3a 2f 2f 27 20 2e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 27 2f 27 2e 24 6d 61 74 63 68 5b ps://'...$match[1]...'/'.$match[
2cf80 32 5d 2e 27 2f 27 2e 24 6d 61 74 63 68 5b 33 5d 2e 27 2e 67 69 74 27 3b 0a 7d 0a 24 63 6d 64 20 2].'/'.$match[3].'.git';.}.$cmd.
2cfa0 3d 20 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 =.sprintf('git.remote.set-url.--
2cfc0 70 75 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 push.origin.%s',.escapeshellarg(
2cfe0 24 70 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 $pushUrl));.$this->process->exec
2d000 75 74 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 ute($cmd,.$ignoredOutput,.$path)
2d020 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ;.}.}.....protected.function.get
2d040 43 6f 6d 6d 69 74 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 CommitLogs($fromReference,.$toRe
2d060 66 65 72 65 6e 63 65 2c 20 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d ference,.$path).{.$path.=.$this-
2d080 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 >normalizePath($path);.$command.
2d0a0 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 6c 6f 67 20 25 73 2e 2e 25 73 20 2d 2d 70 72 65 74 =.sprintf('git.log.%s..%s.--pret
2d0c0 74 79 3d 66 6f 72 6d 61 74 3a 22 25 25 68 20 2d 20 25 25 61 6e 3a 20 25 25 73 22 27 2c 20 24 66 ty=format:"%%h.-.%%an:.%%s"',.$f
2d0e0 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 0a 69 66 romReference,.$toReference);..if
2d100 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 .(0.!==.$this->process->execute(
2d120 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 $command,.$output,.$path)).{.thr
2d140 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 ow.new.\RuntimeException('Failed
2d160 20 74 6f 20 65 78 65 63 75 74 65 20 27 20 2e 20 24 63 6f 6d 6d 61 6e 64 20 2e 20 22 5c 6e 5c 6e .to.execute.'...$command..."\n\n
2d180 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 "...$this->process->getErrorOutp
2d1a0 75 74 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a ut());.}..return.$output;.}.....
2d1c0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 63 61 72 64 43 68 61 6e 67 .protected.function.discardChang
2d1e0 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 es($path).{.$path.=.$this->norma
2d200 6c 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 lizePath($path);.if.(0.!==.$this
2d220 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 72 65 73 65 74 20 2d 2d ->process->execute('git.reset.--
2d240 68 61 72 64 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 hard',.$output,.$path)).{.throw.
2d260 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 new.\RuntimeException("Could.not
2d280 20 72 65 73 65 74 20 63 68 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 .reset.changes\n\n:".$this->proc
2d2a0 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a ess->getErrorOutput());.}.}.....
2d2c0 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 73 68 43 68 61 6e 67 65 73 .protected.function.stashChanges
2d2e0 28 24 70 61 74 68 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 ($path).{.$path.=.$this->normali
2d300 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e zePath($path);.if.(0.!==.$this->
2d320 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 73 74 61 73 68 27 2c 20 24 6f process->execute('git.stash',.$o
2d340 75 74 70 75 74 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 utput,.$path)).{.throw.new.\Runt
2d360 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f 74 20 73 74 61 73 68 20 63 68 imeException("Could.not.stash.ch
2d380 61 6e 67 65 73 5c 6e 5c 6e 3a 22 2e 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 anges\n\n:".$this->process->getE
2d3a0 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 68 61 73 53 74 61 73 rrorOutput());.}..$this->hasStas
2d3c0 68 65 64 43 68 61 6e 67 65 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 hedChanges.=.true;.}..protected.
2d3e0 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 45 6e 76 28 29 0a 7b 0a 24 75 74 69 6c 20 3d 20 6e 65 function.cleanEnv().{.$util.=.ne
2d400 77 20 47 69 74 55 74 69 6c 3b 0a 24 75 74 69 6c 2d 3e 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 7d 0a w.GitUtil;.$util->cleanEnv();.}.
2d420 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 .protected.function.normalizePat
2d440 68 28 24 70 61 74 68 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 h($path).{.if.(defined('PHP_WIND
2d460 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 4d 41 4a 4f 52 27 29 20 26 26 20 73 74 72 6c 65 6e 28 24 70 OWS_VERSION_MAJOR').&&.strlen($p
2d480 61 74 68 29 20 3e 20 30 29 20 7b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 24 70 61 74 68 3b 0a 24 ath).>.0).{.$basePath.=.$path;.$
2d4a0 72 65 6d 6f 76 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 77 68 69 6c 65 20 28 21 69 73 5f 64 removed.=.array();..while.(!is_d
2d4c0 69 72 28 24 62 61 73 65 50 61 74 68 29 20 26 26 20 24 62 61 73 65 50 61 74 68 20 21 3d 3d 20 27 ir($basePath).&&.$basePath.!==.'
2d4e0 5c 5c 27 29 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 72 65 6d 6f 76 65 64 2c 20 62 \\').{.array_unshift($removed,.b
2d500 61 73 65 6e 61 6d 65 28 24 62 61 73 65 50 61 74 68 29 29 3b 0a 24 62 61 73 65 50 61 74 68 20 3d asename($basePath));.$basePath.=
2d520 20 64 69 72 6e 61 6d 65 28 24 62 61 73 65 50 61 74 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 62 61 73 .dirname($basePath);.}..if.($bas
2d540 65 50 61 74 68 20 3d 3d 3d 20 27 5c 5c 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a ePath.===.'\\').{.return.$path;.
2d560 7d 0a 0a 24 70 61 74 68 20 3d 20 72 74 72 69 6d 28 72 65 61 6c 70 61 74 68 28 24 62 61 73 65 50 }..$path.=.rtrim(realpath($baseP
2d580 61 74 68 29 20 2e 20 27 2f 27 20 2e 20 69 6d 70 6c 6f 64 65 28 27 2f 27 2c 20 24 72 65 6d 6f 76 ath)...'/'...implode('/',.$remov
2d5a0 65 64 29 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 7d 0a ed),.'/');.}..return.$path;.}.}.
2d5c0 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
2d5e0 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 61 ser\Repository;.......class.Inva
2d600 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c lidRepositoryException.extends.\
2d620 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e Exception.{.}.<?php............n
2d640 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 amespace.Composer\Repository;..u
2d660 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 se.Composer\Package\AliasPackage
2d680 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
2d6a0 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 43 6f terface;.use.Composer\Package\Co
2d6c0 6d 70 6c 65 74 65 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 mpletePackageInterface;.use.Comp
2d6e0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 oser\Package\Version\VersionPars
2d700 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 er;.......class.ArrayRepository.
2d720 69 6d 70 6c 65 6d 65 6e 74 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b implements.RepositoryInterface.{
2d740 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 .protected.$packages;..public.fu
2d760 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 70 61 63 6b 61 67 nction.__construct(array.$packag
2d780 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 es.=.array()).{.foreach.($packag
2d7a0 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b es.as.$package).{.$this->addPack
2d7c0 61 67 65 28 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 age($package);.}.}.....public.fu
2d7e0 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 73 69 nction.findPackage($name,.$versi
2d800 6f 6e 29 0a 7b 0a 0a 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 on).{...$versionParser.=.new.Ver
2d820 73 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 sionParser();.$version.=.$versio
2d840 6e 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 24 6e nParser->normalize($version);.$n
2d860 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 0a 66 6f 72 65 61 63 ame.=.strtolower($name);..foreac
2d880 68 20 28 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b h.($this->getPackages().as.$pack
2d8a0 61 67 65 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 age).{.if.($name.===.$package->g
2d8c0 65 74 4e 61 6d 65 28 29 20 26 26 20 24 76 65 72 73 69 6f 6e 20 3d 3d 3d 20 24 70 61 63 6b 61 67 etName().&&.$version.===.$packag
2d8e0 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 e->getVersion()).{.return.$packa
2d900 67 65 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 20 66 69 ge;.}.}.}.....public.function.fi
2d920 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 75 6c ndPackages($name,.$version.=.nul
2d940 6c 29 0a 7b 0a 0a 20 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 l).{...$name.=.strtolower($name)
2d960 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 ;....if.(null.!==.$version).{.$v
2d980 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 ersionParser.=.new.VersionParser
2d9a0 28 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 72 2d 3e 6e ();.$version.=.$versionParser->n
2d9c0 6f 72 6d 61 6c 69 7a 65 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 73 ormalize($version);.}..$packages
2d9e0 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 67 65 74 .=.array();..foreach.($this->get
2da00 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 70 Packages().as.$package).{.if.($p
2da20 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 28 ackage->getName().===.$name.&&.(
2da40 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 20 7c 7c 20 24 76 65 72 73 69 6f 6e 20 3d 3d null.===.$version.||.$version.==
2da60 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 29 20 7b 0a 24 70 61 =.$package->getVersion())).{.$pa
2da80 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e ckages[].=.$package;.}.}..return
2daa0 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .$packages;.}.....public.functio
2dac0 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 6d 6f 64 65 20 3d 20 30 29 0a 7b 0a 24 72 n.search($query,.$mode.=.0).{.$r
2dae0 65 67 65 78 20 3d 20 27 7b 28 3f 3a 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 70 72 65 67 5f egex.=.'{(?:'.implode('|',.preg_
2db00 73 70 6c 69 74 28 27 7b 5c 73 2b 7d 27 2c 20 24 71 75 65 72 79 29 29 2e 27 29 7d 69 27 3b 0a 0a split('{\s+}',.$query)).')}i';..
2db20 24 6d 61 74 63 68 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 $matches.=.array();.foreach.($th
2db40 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 20 7b is->getPackages().as.$package).{
2db60 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 69 66 .$name.=.$package->getName();.if
2db80 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 63 6f 6e 74 .(isset($matches[$name])).{.cont
2dba0 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 inue;.}.if.(preg_match($regex,.$
2dbc0 6e 61 6d 65 29 0a 7c 7c 20 28 24 6d 6f 64 65 20 3d 3d 3d 20 73 65 6c 66 3a 3a 53 45 41 52 43 48 name).||.($mode.===.self::SEARCH
2dbe0 5f 46 55 4c 4c 54 45 58 54 20 26 26 20 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 _FULLTEXT.&&.$package.instanceof
2dc00 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 26 26 20 70 72 65 .CompletePackageInterface.&&.pre
2dc20 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 28 61 72 g_match($regex,.implode('.',.(ar
2dc40 72 61 79 29 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4b 65 79 77 6f 72 64 73 28 29 29 20 2e 20 ray).$package->getKeywords())...
2dc60 27 20 27 20 2e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 '.'...$package->getDescription()
2dc80 29 29 0a 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 0a )).).{.$matches[$name].=.array(.
2dca0 27 6e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 'name'.=>.$package->getPrettyNam
2dcc0 65 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e e(),.'description'.=>.$package->
2dce0 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e getDescription(),.);.}.}..return
2dd00 20 24 6d 61 74 63 68 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 .$matches;.}.....public.function
2dd20 20 68 61 73 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 .hasPackage(PackageInterface.$pa
2dd40 63 6b 61 67 65 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e ckage).{.$packageId.=.$package->
2dd60 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 getUniqueName();..foreach.($this
2dd80 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 72 65 70 6f 50 61 63 6b 61 67 65 29 ->getPackages().as.$repoPackage)
2dda0 20 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 .{.if.($packageId.===.$repoPacka
2ddc0 67 65 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 ge->getUniqueName()).{.return.tr
2dde0 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 ue;.}.}..return.false;.}.......p
2de00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 ublic.function.addPackage(Packag
2de20 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 6e 75 6c 6c 20 eInterface.$package).{.if.(null.
2de40 3d 3d 3d 20 24 74 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 ===.$this->packages).{.$this->in
2de60 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6f 73 itialize();.}.$package->setRepos
2de80 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 itory($this);.$this->packages[].
2dea0 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e =.$package;..if.($package.instan
2dec0 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 65 64 50 61 63 ceof.AliasPackage).{.$aliasedPac
2dee0 6b 61 67 65 20 3d 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 69 kage.=.$package->getAliasOf();.i
2df00 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 61 6c 69 61 73 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 f.(null.===.$aliasedPackage->get
2df20 52 65 70 6f 73 69 74 6f 72 79 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 Repository()).{.$this->addPackag
2df40 65 28 24 61 6c 69 61 73 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 e($aliasedPackage);.}.}.}..prote
2df60 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 67 65 cted.function.createAliasPackage
2df80 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 61 6c 69 (PackageInterface.$package,.$ali
2dfa0 61 73 2c 20 24 70 72 65 74 74 79 41 6c 69 61 73 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 41 as,.$prettyAlias).{.return.new.A
2dfc0 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 liasPackage($package.instanceof.
2dfe0 41 6c 69 61 73 50 61 63 6b 61 67 65 20 3f 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 AliasPackage.?.$package->getAlia
2e000 73 4f 66 28 29 20 3a 20 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 2c 20 24 70 72 65 74 74 sOf().:.$package,.$alias,.$prett
2e020 79 41 6c 69 61 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 yAlias);.}.......public.function
2e040 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 65 20 .removePackage(PackageInterface.
2e060 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 24 70 61 63 6b 61 67 $package).{.$packageId.=.$packag
2e080 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 61 63 68 20 28 24 74 e->getUniqueName();..foreach.($t
2e0a0 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 72 his->getPackages().as.$key.=>.$r
2e0c0 65 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 epoPackage).{.if.($packageId.===
2e0e0 20 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 .$repoPackage->getUniqueName()).
2e100 7b 0a 61 72 72 61 79 5f 73 70 6c 69 63 65 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 2c 20 {.array_splice($this->packages,.
2e120 24 6b 65 79 2c 20 31 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 $key,.1);..return;.}.}.}.....pub
2e140 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 69 66 20 lic.function.getPackages().{.if.
2e160 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 0a 24 74 68 (null.===.$this->packages).{.$th
2e180 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 is->initialize();.}..return.$thi
2e1a0 73 2d 3e 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 s->packages;.}.......public.func
2e1c0 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 63 6f 75 6e 74 28 24 74 68 69 tion.count().{.return.count($thi
2e1e0 73 2d 3e 70 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 s->packages);.}.....protected.fu
2e200 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 69 73 2d 3e 70 61 63 nction.initialize().{.$this->pac
2e220 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a kages.=.array();.}.}.<?php......
2e240 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 ......namespace.Composer\Reposit
2e260 6f 72 79 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 6c 65 ory;..use.Composer\Json\JsonFile
2e280 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 ;.use.Composer\Package\Loader\Ar
2e2a0 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c rayLoader;.use.Composer\Package\
2e2c0 44 75 6d 70 65 72 5c 41 72 72 61 79 44 75 6d 70 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 Dumper\ArrayDumper;........class
2e2e0 20 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 57 72 .FilesystemRepository.extends.Wr
2e300 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 70 72 69 76 61 74 65 20 itableArrayRepository.{.private.
2e320 24 66 69 6c 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 5f 5f 63 $file;.......public.function.__c
2e340 6f 6e 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 6c onstruct(JsonFile.$repositoryFil
2e360 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 46 69 e).{.$this->file.=.$repositoryFi
2e380 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 le;.}.....protected.function.ini
2e3a0 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 tialize().{.parent::initialize()
2e3c0 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b ;..if.(!$this->file->exists()).{
2e3e0 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 .return;.}..try.{.$packages.=.$t
2e400 68 69 73 2d 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 61 72 72 61 his->file->read();..if.(!is_arra
2e420 79 28 24 70 61 63 6b 61 67 65 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 y($packages)).{.throw.new.\Unexp
2e440 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 20 70 ectedValueException('Could.not.p
2e460 61 72 73 65 20 70 61 63 6b 61 67 65 20 6c 69 73 74 20 66 72 6f 6d 20 74 68 65 20 72 65 70 6f 73 arse.package.list.from.the.repos
2e480 69 74 6f 72 79 27 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 itory');.}.}.catch.(\Exception.$
2e4a0 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 e).{.throw.new.InvalidRepository
2e4c0 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 72 65 70 6f 73 69 74 6f 72 79 20 64 61 Exception('Invalid.repository.da
2e4e0 74 61 20 69 6e 20 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2e 27 ta.in.'.$this->file->getPath().'
2e500 2c 20 70 61 63 6b 61 67 65 73 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f 61 64 65 64 3a 20 ,.packages.could.not.be.loaded:.
2e520 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 ['.get_class($e).'].'.$e->getMes
2e540 73 61 67 65 28 29 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c sage());.}..$loader.=.new.ArrayL
2e560 6f 61 64 65 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 oader();.foreach.($packages.as.$
2e580 70 61 63 6b 61 67 65 44 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6c 6f 61 64 65 packageData).{.$package.=.$loade
2e5a0 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 44 61 74 61 29 3b 0a 24 74 68 69 73 2d 3e 61 64 r->load($packageData);.$this->ad
2e5c0 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 dPackage($package);.}.}..public.
2e5e0 66 75 6e 63 74 69 6f 6e 20 72 65 6c 6f 61 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 function.reload().{.$this->packa
2e600 67 65 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b ges.=.null;.$this->initialize();
2e620 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 29 0a 7b .}.....public.function.write().{
2e640 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 64 75 6d 70 65 72 20 3d 20 6e 65 77 20 .$data.=.array();.$dumper.=.new.
2e660 41 72 72 61 79 44 75 6d 70 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e ArrayDumper();..foreach.($this->
2e680 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 getCanonicalPackages().as.$packa
2e6a0 67 65 29 20 7b 0a 24 64 61 74 61 5b 5d 20 3d 20 24 64 75 6d 70 65 72 2d 3e 64 75 6d 70 28 24 70 ge).{.$data[].=.$dumper->dump($p
2e6c0 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 ackage);.}..$this->file->write($
2e6e0 64 61 74 61 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 data);.}.}.<?php............name
2e700 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 75 73 65 20 space.Composer\Repository;..use.
2e720 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
2e740 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 57 72 69 74 61 62 6c 65 52 65 70 6f 73 e;.......interface.WritableRepos
2e760 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 52 65 70 6f 73 69 74 6f 72 itoryInterface.extends.Repositor
2e780 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 yInterface.{....public.function.
2e7a0 77 72 69 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 write();.......public.function.a
2e7c0 64 64 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b ddPackage(PackageInterface.$pack
2e7e0 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f age);.......public.function.remo
2e800 76 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b vePackage(PackageInterface.$pack
2e820 61 67 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 age);.......public.function.getC
2e840 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 anonicalPackages();.....public.f
2e860 75 6e 63 74 69 6f 6e 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 unction.reload();.}.<?php.......
2e880 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
2e8a0 72 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 ry;..use.Composer\IO\IOInterface
2e8c0 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 56 ;.use.Composer\Package\Version\V
2e8e0 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 52 65 70 6f 73 ersionParser;.use.Composer\Repos
2e900 69 74 6f 72 79 5c 50 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 itory\Pear\ChannelReader;.use.Co
2e920 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 3b 0a mposer\Package\CompletePackage;.
2e940 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 5c 43 68 61 use.Composer\Repository\Pear\Cha
2e960 6e 6e 65 6c 49 6e 66 6f 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 nnelInfo;.use.Composer\EventDisp
2e980 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 atcher\EventDispatcher;.use.Comp
2e9a0 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c oser\Package\Link;.use.Composer\
2e9c0 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 6f 6e 43 6f Package\LinkConstraint\VersionCo
2e9e0 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f nstraint;.use.Composer\Util\Remo
2ea00 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 teFilesystem;.use.Composer\Confi
2ea20 67 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 61 72 52 65 70 6f 73 69 74 6f 72 g;...........class.PearRepositor
2ea40 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 72 69 76 y.extends.ArrayRepository.{.priv
2ea60 61 74 65 20 24 75 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 ate.$url;.private.$io;.private.$
2ea80 72 66 73 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a rfs;.private.$versionParser;....
2eaa0 0a 70 72 69 76 61 74 65 20 24 76 65 6e 64 6f 72 41 6c 69 61 73 3b 0a 0a 70 75 62 6c 69 63 20 66 .private.$vendorAlias;..public.f
2eac0 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 43 unction.__construct(array.$repoC
2eae0 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 24 onfig,.IOInterface.$io,.Config.$
2eb00 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 64 69 73 70 61 74 63 config,.EventDispatcher.$dispatc
2eb20 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 her.=.null,.RemoteFilesystem.$rf
2eb40 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 68 s.=.null).{.if.(!preg_match('{^h
2eb60 74 74 70 73 3f 3a 2f 2f 7d 27 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 29 ttps?://}',.$repoConfig['url']))
2eb80 20 7b 0a 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 27 68 74 74 70 3a 2f 2f .{.$repoConfig['url'].=.'http://
2eba0 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 24 75 72 6c 42 69 74 '.$repoConfig['url'];.}..$urlBit
2ebc0 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d s.=.parse_url($repoConfig['url']
2ebe0 29 3b 0a 69 66 20 28 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 29 );.if.(empty($urlBits['scheme'])
2ec00 20 7c 7c 20 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 68 6f 73 74 27 5d 29 29 20 7b 0a 74 .||.empty($urlBits['host'])).{.t
2ec20 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 hrow.new.\UnexpectedValueExcepti
2ec40 6f 6e 28 27 49 6e 76 61 6c 69 64 20 75 72 6c 20 67 69 76 65 6e 20 66 6f 72 20 50 45 41 52 20 72 on('Invalid.url.given.for.PEAR.r
2ec60 65 70 6f 73 69 74 6f 72 79 3a 20 27 2e 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 epository:.'.$repoConfig['url'])
2ec80 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 72 65 70 6f 43 6f 6e ;.}..$this->url.=.rtrim($repoCon
2eca0 66 69 67 5b 27 75 72 6c 27 5d 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 fig['url'],.'/');.$this->io.=.$i
2ecc0 6f 3b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 20 3f 3a 20 6e 65 77 20 52 65 6d 6f o;.$this->rfs.=.$rfs.?:.new.Remo
2ece0 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 74 68 69 73 2d 3e teFilesystem($this->io);.$this->
2ed00 76 65 6e 64 6f 72 41 6c 69 61 73 20 3d 20 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b vendorAlias.=.isset($repoConfig[
2ed20 27 76 65 6e 64 6f 72 2d 61 6c 69 61 73 27 5d 29 20 3f 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 'vendor-alias']).?.$repoConfig['
2ed40 76 65 6e 64 6f 72 2d 61 6c 69 61 73 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 76 65 vendor-alias'].:.null;.$this->ve
2ed60 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 rsionParser.=.new.VersionParser(
2ed80 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 69 74 69 61 6c );.}..protected.function.initial
2eda0 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 ize().{.parent::initialize();..$
2edc0 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6e 69 74 69 61 6c 69 7a 69 6e 67 20 50 45 this->io->write('Initializing.PE
2ede0 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 0a 24 72 AR.repository.'.$this->url);..$r
2ee00 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 28 24 74 68 69 73 2d eader.=.new.ChannelReader($this-
2ee20 3e 72 66 73 29 3b 0a 74 72 79 20 7b 0a 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 20 3d 20 24 72 65 61 >rfs);.try.{.$channelInfo.=.$rea
2ee40 64 65 72 2d 3e 72 65 61 64 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 63 61 74 63 68 20 28 der->read($this->url);.}.catch.(
2ee60 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 \Exception.$e).{.$this->io->writ
2ee80 65 28 27 3c 77 61 72 6e 69 6e 67 3e 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 66 72 6f 6d e('<warning>PEAR.repository.from
2eea0 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6c 6f 61 .'.$this->url.'.could.not.be.loa
2eec0 64 65 64 2e 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 6e 69 ded..'.$e->getMessage().'</warni
2eee0 6e 67 3e 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 ng>');..return;.}.$packages.=.$t
2ef00 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 73 28 24 63 68 61 6e his->buildComposerPackages($chan
2ef20 6e 65 6c 49 6e 66 6f 2c 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 29 3b 0a nelInfo,.$this->versionParser);.
2ef40 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 foreach.($packages.as.$package).
2ef60 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d {.$this->addPackage($package);.}
2ef80 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
2efa0 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 73 28 43 68 61 6e 6e 65 6c 49 6e 66 6f 20 24 63 dComposerPackages(ChannelInfo.$c
2efc0 68 61 6e 6e 65 6c 49 6e 66 6f 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 76 65 72 73 69 hannelInfo,.VersionParser.$versi
2efe0 6f 6e 50 61 72 73 65 72 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 onParser).{.$result.=.array();.f
2f000 6f 72 65 61 63 68 20 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 oreach.($channelInfo->getPackage
2f020 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 66 6f 72 s().as.$packageDefinition).{.for
2f040 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 52 65 6c each.($packageDefinition->getRel
2f060 65 61 73 65 73 28 29 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 72 65 6c 65 61 73 65 49 eases().as.$version.=>.$releaseI
2f080 6e 66 6f 29 20 7b 0a 74 72 79 20 7b 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 69 6f 6e 20 nfo).{.try.{.$normalizedVersion.
2f0a0 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
2f0c0 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 75 65 sion);.}.catch.(\UnexpectedValue
2f0e0 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 Exception.$e).{.if.($this->io->i
2f100 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 27 sVerbose()).{.$this->io->write('
2f120 43 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 27 2e 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 Could.not.load.'.$packageDefinit
2f140 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 2e 27 20 27 2e 24 76 65 72 73 69 ion->getPackageName().'.'.$versi
2f160 6f 6e 2e 27 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 3b 0a 7d 0a 63 6f 6e on.':.'.$e->getMessage());.}.con
2f180 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d tinue;.}..$composerPackageName.=
2f1a0 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 65 .$this->buildComposerPackageName
2f1c0 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e ($packageDefinition->getChannelN
2f1e0 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 ame(),.$packageDefinition->getPa
2f200 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 0a 0a 20 0a 20 24 75 72 6c 42 69 74 73 20 3d 20 70 61 ckageName());......$urlBits.=.pa
2f220 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 24 73 63 68 65 6d 65 20 3d 20 28 rse_url($this->url);.$scheme.=.(
2f240 69 73 73 65 74 28 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 29 20 26 26 20 27 68 74 isset($urlBits['scheme']).&&.'ht
2f260 74 70 73 27 20 3d 3d 3d 20 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 20 26 26 20 65 tps'.===.$urlBits['scheme'].&&.e
2f280 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 3f 20 27 68 xtension_loaded('openssl')).?.'h
2f2a0 74 74 70 73 27 20 3a 20 27 68 74 74 70 27 3b 0a 24 64 69 73 74 55 72 6c 20 3d 20 22 7b 24 73 63 ttps'.:.'http';.$distUrl.=."{$sc
2f2c0 68 65 6d 65 7d 3a 2f 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 heme}://{$packageDefinition->get
2f2e0 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 7d 2f 67 65 74 2f 7b 24 70 61 63 6b 61 67 65 44 65 66 69 ChannelName()}/get/{$packageDefi
2f300 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 7d 2d 7b 24 76 65 72 73 nition->getPackageName()}-{$vers
2f320 69 6f 6e 7d 2e 74 67 7a 22 3b 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b ion}.tgz";..$requires.=.array();
2f340 0a 24 73 75 67 67 65 73 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 63 6f 6e 66 6c 69 63 74 73 .$suggests.=.array();.$conflicts
2f360 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 70 6c 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b .=.array();.$replaces.=.array();
2f380 0a 0a 0a 20 0a 20 69 66 20 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 4e 61 6d 65 28 ......if.($channelInfo->getName(
2f3a0 29 20 3d 3d 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e ).==.$packageDefinition->getChan
2f3c0 6e 65 6c 4e 61 6d 65 28 29 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 6c 69 nelName()).{.$composerPackageAli
2f3e0 61 73 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 as.=.$this->buildComposerPackage
2f400 4e 61 6d 65 28 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 41 6c 69 61 73 28 29 2c 20 24 Name($channelInfo->getAlias(),.$
2f420 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d packageDefinition->getPackageNam
2f440 65 28 29 29 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 e());.$aliasConstraint.=.new.Ver
2f460 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 sionConstraint('==',.$normalized
2f480 56 65 72 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b Version);.$replaces[].=.new.Link
2f4a0 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 ($composerPackageName,.$composer
2f4c0 50 61 63 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 2c 20 PackageAlias,.$aliasConstraint,.
2f4e0 27 72 65 70 6c 61 63 65 73 27 2c 20 28 73 74 72 69 6e 67 29 20 24 61 6c 69 61 73 43 6f 6e 73 74 'replaces',.(string).$aliasConst
2f500 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 76 raint);.}....if.(!empty($this->v
2f520 65 6e 64 6f 72 41 6c 69 61 73 29 0a 26 26 20 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 endorAlias).&&.($this->vendorAli
2f540 61 73 20 21 3d 20 27 70 65 61 72 2d 27 2e 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 41 as.!=.'pear-'.$channelInfo->getA
2f560 6c 69 61 73 28 29 20 7c 7c 20 24 63 68 61 6e 6e 65 6c 49 6e 66 6f 2d 3e 67 65 74 4e 61 6d 65 28 lias().||.$channelInfo->getName(
2f580 29 20 21 3d 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 43 68 61 6e ).!=.$packageDefinition->getChan
2f5a0 6e 65 6c 4e 61 6d 65 28 29 29 0a 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 41 nelName()).).{.$composerPackageA
2f5c0 6c 69 61 73 20 3d 20 22 7b 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 41 6c 69 61 73 7d 2f 7b 24 70 lias.=."{$this->vendorAlias}/{$p
2f5e0 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 ackageDefinition->getPackageName
2f600 28 29 7d 22 3b 0a 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 ()}";.$aliasConstraint.=.new.Ver
2f620 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 sionConstraint('==',.$normalized
2f640 56 65 72 73 69 6f 6e 29 3b 0a 24 72 65 70 6c 61 63 65 73 5b 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b Version);.$replaces[].=.new.Link
2f660 28 24 63 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 ($composerPackageName,.$composer
2f680 50 61 63 6b 61 67 65 41 6c 69 61 73 2c 20 24 61 6c 69 61 73 43 6f 6e 73 74 72 61 69 6e 74 2c 20 PackageAlias,.$aliasConstraint,.
2f6a0 27 72 65 70 6c 61 63 65 73 27 2c 20 28 73 74 72 69 6e 67 29 20 24 61 6c 69 61 73 43 6f 6e 73 74 'replaces',.(string).$aliasConst
2f6c0 72 61 69 6e 74 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 49 6e 66 6f raint);.}..foreach.($releaseInfo
2f6e0 2d 3e 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 2d 3e 67 65 74 52 65 71 75 69 72 ->getDependencyInfo()->getRequir
2f700 65 73 28 29 20 61 73 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b es().as.$dependencyConstraint).{
2f720 0a 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d .$dependencyPackageName.=.$this-
2f740 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 64 65 70 65 6e >buildComposerPackageName($depen
2f760 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 dencyConstraint->getChannelName(
2f780 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 61 63 ),.$dependencyConstraint->getPac
2f7a0 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 76 65 72 73 kageName());.$constraint.=.$vers
2f7c0 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 ionParser->parseConstraints($dep
2f7e0 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 endencyConstraint->getConstraint
2f800 28 29 29 3b 0a 24 6c 69 6e 6b 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 63 6f 6d 70 6f 73 65 72 50 ());.$link.=.new.Link($composerP
2f820 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 50 61 63 6b 61 67 65 4e 61 ackageName,.$dependencyPackageNa
2f840 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 me,.$constraint,.$dependencyCons
2f860 74 72 61 69 6e 74 2d 3e 67 65 74 54 79 70 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f traint->getType(),.$dependencyCo
2f880 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 73 77 69 74 nstraint->getConstraint());.swit
2f8a0 63 68 20 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 54 79 ch.($dependencyConstraint->getTy
2f8c0 70 65 28 29 29 20 7b 0a 63 61 73 65 20 27 72 65 71 75 69 72 65 64 27 3a 0a 24 72 65 71 75 69 72 pe()).{.case.'required':.$requir
2f8e0 65 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 63 6f 6e 66 6c es[].=.$link;.break;.case.'confl
2f900 69 63 74 73 27 3a 0a 24 63 6f 6e 66 6c 69 63 74 73 5b 5d 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 icts':.$conflicts[].=.$link;.bre
2f920 61 6b 3b 0a 63 61 73 65 20 27 72 65 70 6c 61 63 65 73 27 3a 0a 24 72 65 70 6c 61 63 65 73 5b 5d ak;.case.'replaces':.$replaces[]
2f940 20 3d 20 24 6c 69 6e 6b 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 .=.$link;.break;.}.}..foreach.($
2f960 72 65 6c 65 61 73 65 49 6e 66 6f 2d 3e 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 releaseInfo->getDependencyInfo()
2f980 2d 3e 67 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 20 61 73 20 24 67 72 6f 75 70 20 3d 3e 20 24 64 ->getOptionals().as.$group.=>.$d
2f9a0 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 ependencyConstraints).{.foreach.
2f9c0 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 64 65 70 65 ($dependencyConstraints.as.$depe
2f9e0 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 64 65 70 65 6e 64 65 6e 63 79 50 ndencyConstraint).{.$dependencyP
2fa00 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6d 70 6f 73 65 ackageName.=.$this->buildCompose
2fa20 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 rPackageName($dependencyConstrai
2fa40 6e 74 2d 3e 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 2c 20 24 64 65 70 65 6e 64 65 6e 63 nt->getChannelName(),.$dependenc
2fa60 79 43 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 29 3b 0a yConstraint->getPackageName());.
2fa80 24 73 75 67 67 65 73 74 73 5b 24 67 72 6f 75 70 2e 27 2d 27 2e 24 64 65 70 65 6e 64 65 6e 63 79 $suggests[$group.'-'.$dependency
2faa0 50 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 PackageName].=.$dependencyConstr
2fac0 61 69 6e 74 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 24 70 61 63 aint->getConstraint();.}.}..$pac
2fae0 6b 61 67 65 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 24 63 6f 6d 70 kage.=.new.CompletePackage($comp
2fb00 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 56 65 72 73 oserPackageName,.$normalizedVers
2fb20 69 6f 6e 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 54 79 70 ion,.$version);.$package->setTyp
2fb40 65 28 27 70 65 61 72 2d 6c 69 62 72 61 72 79 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 e('pear-library');.$package->set
2fb60 44 65 73 63 72 69 70 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 2d 3e Description($packageDefinition->
2fb80 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 getDescription());.$package->set
2fba0 44 69 73 74 54 79 70 65 28 27 66 69 6c 65 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 DistType('file');.$package->setD
2fbc0 69 73 74 55 72 6c 28 24 64 69 73 74 55 72 6c 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 istUrl($distUrl);.$package->setA
2fbe0 75 74 6f 6c 6f 61 64 28 61 72 72 61 79 28 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 61 72 72 61 utoload(array('classmap'.=>.arra
2fc00 79 28 27 27 29 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 y('')));.$package->setIncludePat
2fc20 68 73 28 61 72 72 61 79 28 27 2f 27 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 hs(array('/'));.$package->setReq
2fc40 75 69 72 65 73 28 24 72 65 71 75 69 72 65 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 43 uires($requires);.$package->setC
2fc60 6f 6e 66 6c 69 63 74 73 28 24 63 6f 6e 66 6c 69 63 74 73 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e onflicts($conflicts);.$package->
2fc80 73 65 74 53 75 67 67 65 73 74 73 28 24 73 75 67 67 65 73 74 73 29 3b 0a 24 70 61 63 6b 61 67 65 setSuggests($suggests);.$package
2fca0 2d 3e 73 65 74 52 65 70 6c 61 63 65 73 28 24 72 65 70 6c 61 63 65 73 29 3b 0a 24 72 65 73 75 6c ->setReplaces($replaces);.$resul
2fcc0 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 t[].=.$package;.}.}..return.$res
2fce0 75 6c 74 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f ult;.}..private.function.buildCo
2fd00 6d 70 6f 73 65 72 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 mposerPackageName($channelName,.
2fd20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 69 66 20 28 27 70 68 70 27 20 3d 3d 3d 20 24 63 $packageName).{.if.('php'.===.$c
2fd40 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 65 74 75 72 6e 20 22 70 68 70 22 3b 0a 7d 0a 69 66 hannelName).{.return."php";.}.if
2fd60 20 28 27 65 78 74 27 20 3d 3d 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 29 20 7b 0a 72 65 74 75 .('ext'.===.$channelName).{.retu
2fd80 72 6e 20 22 65 78 74 2d 7b 24 70 61 63 6b 61 67 65 4e 61 6d 65 7d 22 3b 0a 7d 0a 0a 72 65 74 75 rn."ext-{$packageName}";.}..retu
2fda0 72 6e 20 22 70 65 61 72 2d 7b 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 7d 2f 7b 24 70 61 63 6b 61 67 rn."pear-{$channelName}/{$packag
2fdc0 65 4e 61 6d 65 7d 22 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 eName}";.}.}.<?php............na
2fde0 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
2fe00 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
2fe20 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 45 76 65 omposer\Config;.use.Composer\Eve
2fe40 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a ntDispatcher\EventDispatcher;...
2fe60 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 0a 7b 0a ......class.RepositoryManager.{.
2fe80 70 72 69 76 61 74 65 20 24 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 69 76 61 74 private.$localRepository;.privat
2fea0 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 e.$repositories.=.array();.priva
2fec0 74 65 20 24 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b te.$repositoryClasses.=.array();
2fee0 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 .private.$io;.private.$config;.p
2ff00 72 69 76 61 74 65 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 70 75 62 6c 69 63 rivate.$eventDispatcher;..public
2ff20 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 61 63 .function.__construct(IOInterfac
2ff40 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 e.$io,.Config.$config,.EventDisp
2ff60 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 29 0a atcher.$eventDispatcher.=.null).
2ff80 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 {.$this->io.=.$io;.$this->config
2ffa0 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 .=.$config;.$this->eventDispatch
2ffc0 65 72 20 3d 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a er.=.$eventDispatcher;.}........
2ffe0 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 28 24 6e ..public.function.findPackage($n
30000 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d ame,.$version).{.foreach.($this-
30020 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a >repositories.as.$repository).{.
30040 69 66 20 28 24 70 61 63 6b 61 67 65 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 if.($package.=.$repository->find
30060 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a 72 65 74 75 Package($name,.$version)).{.retu
30080 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c rn.$package;.}.}.}..........publ
300a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 ic.function.findPackages($name,.
300c0 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b $version).{.$packages.=.array();
300e0 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 ..foreach.($this->repositories.a
30100 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 s.$repository).{.$packages.=.arr
30120 61 79 5f 6d 65 72 67 65 28 24 70 61 63 6b 61 67 65 73 2c 20 24 72 65 70 6f 73 69 74 6f 72 79 2d ay_merge($packages,.$repository-
30140 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 29 3b >findPackages($name,.$version));
30160 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 .}..return.$packages;.}.......pu
30180 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 52 65 70 6f blic.function.addRepository(Repo
301a0 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 24 sitoryInterface.$repository).{.$
301c0 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f this->repositories[].=.$reposito
301e0 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 ry;.}..........public.function.c
30200 72 65 61 74 65 52 65 70 6f 73 69 74 6f 72 79 28 24 74 79 70 65 2c 20 24 63 6f 6e 66 69 67 29 0a reateRepository($type,.$config).
30220 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 43 6c {.if.(!isset($this->repositoryCl
30240 61 73 73 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 asses[$type])).{.throw.new.\Inva
30260 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 52 65 70 6f 73 69 74 6f 72 79 lidArgumentException('Repository
30280 20 74 79 70 65 20 69 73 20 6e 6f 74 20 72 65 67 69 73 74 65 72 65 64 3a 20 27 2e 24 74 79 70 65 .type.is.not.registered:.'.$type
302a0 29 3b 0a 7d 0a 0a 24 63 6c 61 73 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 );.}..$class.=.$this->repository
302c0 43 6c 61 73 73 65 73 5b 24 74 79 70 65 5d 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 24 63 6c 61 Classes[$type];..return.new.$cla
302e0 73 73 28 24 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f ss($config,.$this->io,.$this->co
30300 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 29 3b 0a 7d nfig,.$this->eventDispatcher);.}
30320 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 ........public.function.setRepos
30340 69 74 6f 72 79 43 6c 61 73 73 28 24 74 79 70 65 2c 20 24 63 6c 61 73 73 29 0a 7b 0a 24 74 68 69 itoryClass($type,.$class).{.$thi
30360 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 65 73 5b 24 74 79 70 65 5d 20 3d 20 24 63 s->repositoryClasses[$type].=.$c
30380 6c 61 73 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 lass;.}.......public.function.ge
303a0 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 2d 3e tRepositories().{.return.$this->
303c0 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e repositories;.}.......public.fun
303e0 63 74 69 6f 6e 20 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 57 72 69 74 61 62 6c ction.setLocalRepository(Writabl
30400 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 eRepositoryInterface.$repository
30420 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 72 65 ).{.$this->localRepository.=.$re
30440 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f pository;.}.......public.functio
30460 6e 20 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 n.getLocalRepository().{.return.
30480 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a $this->localRepository;.}.......
304a0 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 52 65 70 6f 73 69 74 .public.function.getLocalReposit
304c0 6f 72 69 65 73 28 29 0a 7b 0a 74 72 69 67 67 65 72 5f 65 72 72 6f 72 28 27 54 68 69 73 20 6d 65 ories().{.trigger_error('This.me
304e0 74 68 6f 64 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2c 20 75 73 65 20 67 65 74 4c 6f 63 61 6c thod.is.deprecated,.use.getLocal
30500 52 65 70 6f 73 69 74 6f 72 79 20 69 6e 73 74 65 61 64 20 73 69 6e 63 65 20 74 68 65 20 67 65 74 Repository.instead.since.the.get
30520 4c 6f 63 61 6c 44 65 76 52 65 70 6f 73 69 74 6f 72 79 20 69 73 20 6e 6f 77 20 67 6f 6e 65 27 2c LocalDevRepository.is.now.gone',
30540 20 45 5f 55 53 45 52 5f 44 45 50 52 45 43 41 54 45 44 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 .E_USER_DEPRECATED);..return.arr
30560 61 79 28 24 74 68 69 73 2d 3e 6c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d 0a ay($this->localRepository);.}.}.
30580 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
305a0 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
305c0 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.
305e0 57 72 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 WritableArrayRepository.extends.
30600 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 57 72 69 74 61 ArrayRepository.implements.Writa
30620 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 0a 0a 0a 70 75 62 6c bleRepositoryInterface.{....publ
30640 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 6c ic.function.write().{.}.....publ
30660 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 0a 0a 0a 0a 70 75 62 ic.function.reload().{.}.....pub
30680 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 lic.function.getCanonicalPackage
306a0 73 28 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b s().{.$packages.=.$this->getPack
306c0 61 67 65 73 28 29 3b 0a 0a 0a 20 24 70 61 63 6b 61 67 65 73 42 79 4e 61 6d 65 20 3d 20 61 72 72 ages();....$packagesByName.=.arr
306e0 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 ay();.foreach.($packages.as.$pac
30700 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 73 42 79 4e 61 kage).{.if.(!isset($packagesByNa
30720 6d 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 20 7c 7c 20 24 70 61 63 me[$package->getName()]).||.$pac
30740 6b 61 67 65 73 42 79 4e 61 6d 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d kagesByName[$package->getName()]
30760 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 70 61 63 .instanceof.AliasPackage).{.$pac
30780 6b 61 67 65 73 42 79 4e 61 6d 65 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d kagesByName[$package->getName()]
307a0 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 0a 24 63 61 6e 6f 6e 69 63 61 6c 50 61 63 6b .=.$package;.}.}..$canonicalPack
307c0 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 70 61 63 ages.=.array();....foreach.($pac
307e0 6b 61 67 65 73 42 79 4e 61 6d 65 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 77 68 69 6c 65 kagesByName.as.$package).{.while
30800 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
30820 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
30840 69 61 73 4f 66 28 29 3b 0a 7d 0a 0a 24 63 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 5b 5d iasOf();.}..$canonicalPackages[]
30860 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 61 6e 6f 6e 69 63 61 .=.$package;.}..return.$canonica
30880 6c 50 61 63 6b 61 67 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a lPackages;.}.}.<?php............
308a0 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 56 63 namespace.Composer\Repository\Vc
308c0 73 3b 0a 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 6f 6d s;..use.Composer\Config;.use.Com
308e0 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 poser\Downloader\TransportExcept
30900 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b ion;.use.Composer\Json\JsonFile;
30920 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 6d 70 6f 73 65 .use.Composer\Cache;.use.Compose
30940 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 5c 55 r\IO\IOInterface;.use.Composer\U
30960 74 69 6c 5c 47 69 74 48 75 62 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 48 75 62 44 72 69 76 til\GitHub;.....class.GitHubDriv
30980 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 er.extends.VcsDriver.{.protected
309a0 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 77 6e 65 72 3b 0a 70 72 6f 74 65 .$cache;.protected.$owner;.prote
309c0 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 cted.$repository;.protected.$tag
309e0 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 s;.protected.$branches;.protecte
30a00 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 61 d.$rootIdentifier;.protected.$ha
30a20 73 49 73 73 75 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 63 68 65 20 3d 20 sIssues;.protected.$infoCache.=.
30a40 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 73 50 72 69 76 61 74 65 20 3d 20 array();.protected.$isPrivate.=.
30a60 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 67 69 74 44 72 69 76 65 false;.......protected.$gitDrive
30a80 72 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a r;.....public.function.initializ
30aa0 65 28 29 0a 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 3f 3a 28 3f 3a 68 74 74 70 73 3f e().{.preg_match('#^(?:(?:https?
30ac0 7c 67 69 74 29 3a 2f 2f 28 5b 5e 2f 5d 2b 29 2f 7c 67 69 74 40 28 5b 5e 3a 5d 2b 29 3a 29 28 5b |git)://([^/]+)/|git@([^:]+):)([
30ae0 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 74 68 69 73 2d ^/]+)/(.+?)(?:\.git)?$#',.$this-
30b00 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 24 6d >url,.$match);.$this->owner.=.$m
30b20 61 74 63 68 5b 33 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 6d 61 atch[3];.$this->repository.=.$ma
30b40 74 63 68 5b 34 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 21 65 6d 70 74 tch[4];.$this->originUrl.=.!empt
30b60 79 28 24 6d 61 74 63 68 5b 31 5d 29 20 3f 20 24 6d 61 74 63 68 5b 31 5d 20 3a 20 24 6d 61 74 63 y($match[1]).?.$match[1].:.$matc
30b80 68 5b 32 5d 3b 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 h[2];.$this->cache.=.new.Cache($
30ba0 74 68 69 73 2d 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 63 61 this->io,.$this->config->get('ca
30bc0 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e che-repo-dir').'/'.$this->origin
30be0 55 72 6c 2e 27 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 Url.'/'.$this->owner.'/'.$this->
30c00 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 49 64 repository);..$this->fetchRootId
30c20 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 69 6f entifier();.}.....public.functio
30c40 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 68 69 n.getRootIdentifier().{.if.($thi
30c60 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
30c80 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 7d 0a tDriver->getRootIdentifier();.}.
30ca0 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 0a 7d .return.$this->rootIdentifier;.}
30cc0 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 7b 0a .....public.function.getUrl().{.
30ce0 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 if.($this->gitDriver).{.return.$
30d00 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 72 65 this->gitDriver->getUrl();.}..re
30d20 74 75 72 6e 20 27 68 74 74 70 73 3a 2f 2f 27 20 2e 20 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 turn.'https://'...$this->originU
30d40 72 6c 20 2e 20 27 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 rl...'/'.$this->owner.'/'.$this-
30d60 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2e 67 69 74 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 >repository.'.git';.}.....protec
30d80 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 70 69 55 72 6c 28 29 0a 7b 0a 69 66 20 28 27 ted.function.getApiUrl().{.if.('
30da0 67 69 74 68 75 62 2e 63 6f 6d 27 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c github.com'.===.$this->originUrl
30dc0 29 20 7b 0a 24 61 70 69 55 72 6c 20 3d 20 27 61 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 27 3b 0a ).{.$apiUrl.=.'api.github.com';.
30de0 7d 20 65 6c 73 65 20 7b 0a 24 61 70 69 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e }.else.{.$apiUrl.=.$this->origin
30e00 55 72 6c 20 2e 20 27 2f 61 70 69 2f 76 33 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 68 74 74 70 Url...'/api/v3';.}..return.'http
30e20 73 3a 2f 2f 27 20 2e 20 24 61 70 69 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 s://'...$apiUrl;.}.....public.fu
30e40 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 0a nction.getSource($identifier).{.
30e60 69 66 20 28 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 if.($this->gitDriver).{.return.$
30e80 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 65 6e this->gitDriver->getSource($iden
30ea0 74 69 66 69 65 72 29 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 29 tifier);.}.if.($this->isPrivate)
30ec0 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 72 61 74 65 53 73 68 .{.....$url.=.$this->generateSsh
30ee0 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 68 69 73 2d 3e 67 65 Url();.}.else.{.$url.=.$this->ge
30f00 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 74 79 70 65 27 20 3d tUrl();.}..return.array('type'.=
30f20 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 72 65 66 65 72 65 6e >.'git',.'url'.=>.$url,.'referen
30f40 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ce'.=>.$identifier);.}.....publi
30f60 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 29 0a c.function.getDist($identifier).
30f80 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
30fa0 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 65 6e .$this->gitDriver->getDist($iden
30fc0 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 69 tifier);.}..$url.=.$this->getApi
30fe0 55 72 6c 28 29 20 2e 20 27 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 Url()...'/repos/'.$this->owner.'
31000 2f 27 2e 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 /'.$this->repository.'/zipball/'
31020 2e 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 28 27 74 79 70 .$identifier;..return.array('typ
31040 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 e'.=>.'zip',.'url'.=>.$url,.'ref
31060 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 73 68 61 73 75 6d 27 erence'.=>.$identifier,.'shasum'
31080 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
310a0 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
310c0 72 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 r).{.if.($this->gitDriver).{.ret
310e0 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 43 6f 6d 70 6f 73 65 urn.$this->gitDriver->getCompose
31100 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 3b 0a 7d 0a 0a 69 66 rInformation($identifier);.}..if
31120 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 7d 69 27 2c 20 .(preg_match('{[a-f0-9]{40}}i',.
31140 24 69 64 65 6e 74 69 66 69 65 72 29 20 26 26 20 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 $identifier).&&.$res.=.$this->ca
31160 63 68 65 2d 3e 72 65 61 64 28 24 69 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d che->read($identifier)).{.$this-
31180 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 6f 6e 46 69 >infoCache[$identifier].=.JsonFi
311a0 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 21 69 73 73 le::parseJson($res);.}..if.(!iss
311c0 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 69 65 72 5d et($this->infoCache[$identifier]
311e0 29 29 20 7b 0a 24 6e 6f 74 46 6f 75 6e 64 52 65 74 72 69 65 73 20 3d 20 32 3b 0a 77 68 69 6c 65 )).{.$notFoundRetries.=.2;.while
31200 20 28 24 6e 6f 74 46 6f 75 6e 64 52 65 74 72 69 65 73 29 20 7b 0a 74 72 79 20 7b 0a 24 72 65 73 .($notFoundRetries).{.try.{.$res
31220 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 20 2e 20 27 2f 72 ource.=.$this->getApiUrl()...'/r
31240 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 72 epos/'.$this->owner.'/'.$this->r
31260 65 70 6f 73 69 74 6f 72 79 2e 27 2f 63 6f 6e 74 65 6e 74 73 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 epository.'/contents/composer.js
31280 6f 6e 3f 72 65 66 3d 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b on?ref='.urlencode($identifier);
312a0 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 73 6f 6e .$composer.=.JsonFile::parseJson
312c0 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 29 3b ($this->getContents($resource));
312e0 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 70 6f 73 65 72 5b 27 63 6f 6e 74 65 6e 74 27 5d 29 .if.(empty($composer['content'])
31300 20 7c 7c 20 24 63 6f 6d 70 6f 73 65 72 5b 27 65 6e 63 6f 64 69 6e 67 27 5d 20 21 3d 3d 20 27 62 .||.$composer['encoding'].!==.'b
31320 61 73 65 36 34 27 20 7c 7c 20 21 28 24 63 6f 6d 70 6f 73 65 72 20 3d 20 62 61 73 65 36 34 5f 64 ase64'.||.!($composer.=.base64_d
31340 65 63 6f 64 65 28 24 63 6f 6d 70 6f 73 65 72 5b 27 63 6f 6e 74 65 6e 74 27 5d 29 29 29 20 7b 0a ecode($composer['content']))).{.
31360 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 throw.new.\RuntimeException('Cou
31380 6c 64 20 6e 6f 74 20 72 65 74 72 69 65 76 65 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 72 ld.not.retrieve.composer.json.fr
313a0 6f 6d 20 27 2e 24 72 65 73 6f 75 72 63 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 om.'.$resource);.}.break;.}.catc
313c0 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 h.(TransportException.$e).{.if.(
313e0 34 30 34 20 21 3d 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 24 404.!==.$e->getCode()).{.throw.$
31400 65 3b 0a 7d 0a 0a 0a 20 0a 20 24 6e 6f 74 46 6f 75 6e 64 52 65 74 72 69 65 73 2d 2d 3b 0a 24 63 e;.}......$notFoundRetries--;.$c
31420 6f 6d 70 6f 73 65 72 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 70 6f omposer.=.false;.}.}..if.($compo
31440 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
31460 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
31480 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'])).{.
314a0 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 20 2e $resource.=.$this->getApiUrl()..
314c0 20 27 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 69 .'/repos/'.$this->owner.'/'.$thi
314e0 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 75 72 6c 65 6e 63 s->repository.'/commits/'.urlenc
31500 6f 64 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 24 63 6f 6d 6d 69 74 20 3d 20 4a 73 6f 6e ode($identifier);.$commit.=.Json
31520 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 65 6e File::parseJson($this->getConten
31540 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 63 6f 6d 70 ts($resource),.$resource);.$comp
31560 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 63 6f 6d 6d 69 74 5b 27 63 6f 6d 6d 69 74 27 5d oser['time'].=.$commit['commit']
31580 5b 27 63 6f 6d 6d 69 74 74 65 72 27 5d 5b 27 64 61 74 65 27 5d 3b 0a 7d 0a 69 66 20 28 21 69 73 ['committer']['date'];.}.if.(!is
315a0 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 set($composer['support']['source
315c0 27 5d 29 29 20 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 '])).{.$label.=.array_search($id
315e0 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 29 20 3f 3a 20 61 entifier,.$this->getTags()).?:.a
31600 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 24 74 68 69 73 2d 3e rray_search($identifier,.$this->
31620 67 65 74 42 72 61 6e 63 68 65 73 28 29 29 20 3f 3a 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 getBranches()).?:.$identifier;.$
31640 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 73 6f 75 72 63 65 27 5d 20 3d 20 composer['support']['source'].=.
31660 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 25 73 2f 25 73 2f 25 73 2f 74 72 65 65 2f 25 sprintf('https://%s/%s/%s/tree/%
31680 73 27 2c 20 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 6f 77 6e s',.$this->originUrl,.$this->own
316a0 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2c 20 24 6c 61 62 65 6c 29 3b 0a er,.$this->repository,.$label);.
316c0 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 }.if.(!isset($composer['support'
316e0 5d 5b 27 69 73 73 75 65 73 27 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 73 49 73 73 75 65 73 ]['issues']).&&.$this->hasIssues
31700 29 20 7b 0a 24 63 6f 6d 70 6f 73 65 72 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 73 73 75 65 73 ).{.$composer['support']['issues
31720 27 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 68 74 74 70 73 3a 2f 2f 25 73 2f 25 73 2f 25 73 2f 69 '].=.sprintf('https://%s/%s/%s/i
31740 73 73 75 65 73 27 2c 20 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d ssues',.$this->originUrl,.$this-
31760 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 7d 0a >owner,.$this->repository);.}.}.
31780 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 7d 69 .if.(preg_match('{[a-f0-9]{40}}i
317a0 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 65 2d ',.$identifier)).{.$this->cache-
317c0 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 65 28 >write($identifier,.json_encode(
317e0 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 68 65 $composer));.}..$this->infoCache
31800 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 [$identifier].=.$composer;.}..re
31820 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 turn.$this->infoCache[$identifie
31840 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 r];.}.....public.function.getTag
31860 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 72 65 s().{.if.($this->gitDriver).{.re
31880 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 28 29 turn.$this->gitDriver->getTags()
318a0 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 7b 0a ;.}.if.(null.===.$this->tags).{.
318c0 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 20 2e $resource.=.$this->getApiUrl()..
318e0 20 27 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 69 .'/repos/'.$this->owner.'/'.$thi
31900 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 74 61 67 73 27 3b 0a 24 74 61 67 73 44 61 74 61 s->repository.'/tags';.$tagsData
31920 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 .=.JsonFile::parseJson($this->ge
31940 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 tContents($resource),.$resource)
31960 3b 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 ;.$this->tags.=.array();.foreach
31980 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 3e 74 61 .($tagsData.as.$tag).{.$this->ta
319a0 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 69 74 27 gs[$tag['name']].=.$tag['commit'
319c0 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 74 61 67 ]['sha'];.}.}..return.$this->tag
319e0 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 72 61 6e s;.}.....public.function.getBran
31a00 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 29 20 7b ches().{.if.($this->gitDriver).{
31a20 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 42 72 61 .return.$this->gitDriver->getBra
31a40 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 2d 3e 62 nches();.}.if.(null.===.$this->b
31a60 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 65 ranches).{.$resource.=.$this->ge
31a80 74 41 70 69 55 72 6c 28 29 20 2e 20 27 2f 72 65 70 6f 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e tApiUrl()...'/repos/'.$this->own
31aa0 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 69 74 2f 72 er.'/'.$this->repository.'/git/r
31ac0 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 6f 6e 46 69 efs/heads';.$branchData.=.JsonFi
31ae0 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 le::parseJson($this->getContents
31b00 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e ($resource),.$resource);.$this->
31b20 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 28 24 62 72 branches.=.array();.foreach.($br
31b40 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 20 3d 20 73 anchData.as.$branch).{.$name.=.s
31b60 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 74 68 69 73 ubstr($branch['ref'],.11);.$this
31b80 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 27 6f 62 6a ->branches[$name].=.$branch['obj
31ba0 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 68 69 73 2d ect']['sha'];.}.}..return.$this-
31bc0 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 69 63 20 66 >branches;.}.....public.static.f
31be0 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f unction.supports(IOInterface.$io
31c00 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 ,.Config.$config,.$url,.$deep.=.
31c20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 28 3f 3a false).{.if.(!preg_match('#^((?:
31c40 68 74 74 70 73 3f 7c 67 69 74 29 3a 2f 2f 28 5b 5e 2f 5d 2b 29 2f 7c 67 69 74 40 28 5b 5e 3a 5d https?|git)://([^/]+)/|git@([^:]
31c60 2b 29 3a 29 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 28 3f 3a 5c 2e 67 69 74 29 3f 24 23 27 2c 20 +):)([^/]+)/(.+?)(?:\.git)?$#',.
31c80 24 75 72 6c 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b $url,.$matches)).{.return.false;
31ca0 0a 7d 0a 0a 24 6f 72 69 67 69 6e 55 72 6c 20 3d 20 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 .}..$originUrl.=.!empty($matches
31cc0 5b 32 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 3a 20 24 6d 61 74 63 68 65 73 5b 33 5d [2]).?.$matches[2].:.$matches[3]
31ce0 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 63 6f 6e ;.if.(!in_array($originUrl,.$con
31d00 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 64 6f 6d 61 69 6e 73 27 29 29 29 20 7b 0a 72 fig->get('github-domains'))).{.r
31d20 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 73 69 6f 6e 5f 6c eturn.false;.}..if.(!extension_l
31d40 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 6f 2d 3e 69 73 56 oaded('openssl')).{.if.($io->isV
31d60 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 69 70 70 69 6e 67 erbose()).{.$io->write('Skipping
31d80 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 27 20 62 65 63 61 .GitHub.driver.for.'.$url.'.beca
31da0 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 6f 6e 20 69 73 use.the.OpenSSL.PHP.extension.is
31dc0 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 65 3b 0a 7d 0a .missing.');.}..return.false;.}.
31de0 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 65 63 74 65 64 20 .return.true;.}.......protected.
31e00 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 7b 0a 72 65 74 75 function.generateSshUrl().{.retu
31e20 72 6e 20 27 67 69 74 40 27 20 2e 20 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 2e 20 27 rn.'git@'...$this->originUrl...'
31e40 3a 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 :'.$this->owner.'/'.$this->repos
31e60 69 74 6f 72 79 2e 27 2e 67 69 74 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 itory.'.git';.}.....protected.fu
31e80 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 2c 20 24 66 65 74 63 68 69 nction.getContents($url,.$fetchi
31ea0 6e 67 52 65 70 6f 44 61 74 61 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 ngRepoData.=.false).{.try.{.retu
31ec0 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 20 rn.parent::getContents($url);.}.
31ee0 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a catch.(TransportException.$e).{.
31f00 24 67 69 74 48 75 62 55 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 48 75 62 28 24 74 68 69 73 2d 3e $gitHubUtil.=.new.GitHub($this->
31f20 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 io,.$this->config,.$this->proces
31f40 73 2c 20 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 29 3b 0a 0a 73 77 s,.$this->remoteFilesystem);..sw
31f60 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 34 30 31 3a itch.($e->getCode()).{.case.401:
31f80 0a 63 61 73 65 20 34 30 34 3a 0a 0a 20 69 66 20 28 21 24 66 65 74 63 68 69 6e 67 52 65 70 6f 44 .case.404:...if.(!$fetchingRepoD
31fa0 61 74 61 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 28 24 67 69 74 48 75 62 55 ata).{.throw.$e;.}..if.($gitHubU
31fc0 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 til->authorizeOAuth($this->origi
31fe0 6e 55 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 nUrl)).{.return.parent::getConte
32000 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 nts($url);.}..if.(!$this->io->is
32020 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 Interactive()).{.return.$this->a
32040 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 63 6b 28 29 3b 0a 7d 0a 0a 24 67 69 74 48 75 ttemptCloneFallback();.}..$gitHu
32060 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 bUtil->authorizeOAuthInteractive
32080 6c 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 27 59 6f 75 72 20 47 69 74 48 75 ly($this->originUrl,.'Your.GitHu
320a0 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 66 65 b.credentials.are.required.to.fe
320c0 74 63 68 20 70 72 69 76 61 74 65 20 72 65 70 6f 73 69 74 6f 72 79 20 6d 65 74 61 64 61 74 61 20 tch.private.repository.metadata.
320e0 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 6f 3e 29 27 29 3b (<info>'.$this->url.'</info>)');
32100 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 ..return.parent::getContents($ur
32120 6c 29 3b 0a 0a 63 61 73 65 20 34 30 33 3a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 l);..case.403:.if.(!$this->io->h
32140 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 asAuthentication($this->originUr
32160 6c 29 20 26 26 20 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 l).&&.$gitHubUtil->authorizeOAut
32180 68 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 70 61 h($this->originUrl)).{.return.pa
321a0 72 65 6e 74 3a 3a 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 rent::getContents($url);.}..if.(
321c0 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 26 26 20 24 !$this->io->isInteractive().&&.$
321e0 66 65 74 63 68 69 6e 67 52 65 70 6f 44 61 74 61 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 fetchingRepoData).{.return.$this
32200 2d 3e 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 63 6b 28 29 3b 0a 7d 0a 0a 24 72 61 ->attemptCloneFallback();.}..$ra
32220 74 65 4c 69 6d 69 74 65 64 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 65 2d 3e teLimited.=.false;.foreach.($e->
32240 67 65 74 48 65 61 64 65 72 73 28 29 20 61 73 20 24 68 65 61 64 65 72 29 20 7b 0a 69 66 20 28 70 getHeaders().as.$header).{.if.(p
32260 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 58 2d 52 61 74 65 4c 69 6d 69 74 2d 52 65 6d 61 69 6e 69 reg_match('{^X-RateLimit-Remaini
32280 6e 67 3a 20 2a 30 24 7d 69 27 2c 20 74 72 69 6d 28 24 68 65 61 64 65 72 29 29 29 20 7b 0a 24 72 ng:.*0$}i',.trim($header))).{.$r
322a0 61 74 65 4c 69 6d 69 74 65 64 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 74 68 ateLimited.=.true;.}.}..if.(!$th
322c0 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 74 68 69 73 2d is->io->hasAuthentication($this-
322e0 3e 6f 72 69 67 69 6e 55 72 6c 29 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 >originUrl)).{.if.(!$this->io->i
32300 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 sInteractive()).{.$this->io->wri
32320 74 65 28 27 3c 65 72 72 6f 72 3e 47 69 74 48 75 62 20 41 50 49 20 6c 69 6d 69 74 20 65 78 68 61 te('<error>GitHub.API.limit.exha
32340 75 73 74 65 64 2e 20 46 61 69 6c 65 64 20 74 6f 20 67 65 74 20 6d 65 74 61 64 61 74 61 20 66 6f usted..Failed.to.get.metadata.fo
32360 72 20 74 68 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 72 65 70 6f 73 69 74 6f 72 79 2c r.the.'.$this->url.'.repository,
32380 20 74 72 79 20 72 75 6e 6e 69 6e 67 20 69 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 .try.running.in.interactive.mode
323a0 20 73 6f 20 74 68 61 74 20 79 6f 75 20 63 61 6e 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 .so.that.you.can.enter.your.GitH
323c0 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 69 6e 63 72 65 61 73 65 20 74 68 65 20 41 ub.credentials.to.increase.the.A
323e0 50 49 20 6c 69 6d 69 74 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a PI.limit</error>');.throw.$e;.}.
32400 0a 24 67 69 74 48 75 62 55 74 69 6c 2d 3e 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 .$gitHubUtil->authorizeOAuthInte
32420 72 61 63 74 69 76 65 6c 79 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 2c 20 27 41 50 49 ractively($this->originUrl,.'API
32440 20 6c 69 6d 69 74 20 65 78 68 61 75 73 74 65 64 2e 20 45 6e 74 65 72 20 79 6f 75 72 20 47 69 74 .limit.exhausted..Enter.your.Git
32460 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 74 6f 20 67 65 74 20 61 20 6c 61 72 67 65 72 20 Hub.credentials.to.get.a.larger.
32480 41 50 49 20 6c 69 6d 69 74 20 28 3c 69 6e 66 6f 3e 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3c API.limit.(<info>'.$this->url.'<
324a0 2f 69 6e 66 6f 3e 29 27 29 3b 0a 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 6f /info>)');..return.parent::getCo
324c0 6e 74 65 6e 74 73 28 24 75 72 6c 29 3b 0a 7d 0a 0a 69 66 20 28 24 72 61 74 65 4c 69 6d 69 74 65 ntents($url);.}..if.($rateLimite
324e0 64 29 20 7b 0a 24 72 61 74 65 4c 69 6d 69 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 61 74 65 d).{.$rateLimit.=.$this->getRate
32500 4c 69 6d 69 74 28 24 65 2d 3e 67 65 74 48 65 61 64 65 72 73 28 29 29 3b 0a 24 74 68 69 73 2d 3e Limit($e->getHeaders());.$this->
32520 69 6f 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 0a 27 3c 65 72 72 6f 72 3e 47 69 74 48 75 io->write(sprintf(.'<error>GitHu
32540 62 20 41 50 49 20 6c 69 6d 69 74 20 28 25 64 20 63 61 6c 6c 73 2f 68 72 29 20 69 73 20 65 78 68 b.API.limit.(%d.calls/hr).is.exh
32560 61 75 73 74 65 64 2e 20 59 6f 75 20 61 72 65 20 61 6c 72 65 61 64 79 20 61 75 74 68 6f 72 69 7a austed..You.are.already.authoriz
32580 65 64 20 73 6f 20 79 6f 75 20 68 61 76 65 20 74 6f 20 77 61 69 74 20 75 6e 74 69 6c 20 25 73 20 ed.so.you.have.to.wait.until.%s.
325a0 62 65 66 6f 72 65 20 64 6f 69 6e 67 20 6d 6f 72 65 20 72 65 71 75 65 73 74 73 3c 2f 65 72 72 6f before.doing.more.requests</erro
325c0 72 3e 27 2c 0a 24 72 61 74 65 4c 69 6d 69 74 5b 27 6c 69 6d 69 74 27 5d 2c 0a 24 72 61 74 65 4c r>',.$rateLimit['limit'],.$rateL
325e0 69 6d 69 74 5b 27 72 65 73 65 74 27 5d 0a 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 0a imit['reset'].));.}..throw.$e;..
32600 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a default:.throw.$e;.}.}.}........
32620 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 61 74 65 4c 69 6d 69 74 .protected.function.getRateLimit
32640 28 61 72 72 61 79 20 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 72 61 74 65 4c 69 6d 69 74 20 3d 20 (array.$headers).{.$rateLimit.=.
32660 61 72 72 61 79 28 0a 27 6c 69 6d 69 74 27 20 3d 3e 20 27 3f 27 2c 0a 27 72 65 73 65 74 27 20 3d array(.'limit'.=>.'?',.'reset'.=
32680 3e 20 27 3f 27 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 68 65 61 64 65 72 73 20 61 73 20 >.'?',.);..foreach.($headers.as.
326a0 24 68 65 61 64 65 72 29 20 7b 0a 24 68 65 61 64 65 72 20 3d 20 74 72 69 6d 28 24 68 65 61 64 65 $header).{.$header.=.trim($heade
326c0 72 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 68 65 61 64 65 72 r);.if.(false.===.strpos($header
326e0 2c 20 27 58 2d 52 61 74 65 4c 69 6d 69 74 2d 27 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d ,.'X-RateLimit-')).{.continue;.}
32700 0a 6c 69 73 74 28 24 74 79 70 65 2c 20 24 76 61 6c 75 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 .list($type,.$value).=.explode('
32720 3a 27 2c 20 24 68 65 61 64 65 72 2c 20 32 29 3b 0a 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 :',.$header,.2);.switch.($type).
32740 7b 0a 63 61 73 65 20 27 58 2d 52 61 74 65 4c 69 6d 69 74 2d 4c 69 6d 69 74 27 3a 0a 24 72 61 74 {.case.'X-RateLimit-Limit':.$rat
32760 65 4c 69 6d 69 74 5b 27 6c 69 6d 69 74 27 5d 20 3d 20 28 69 6e 74 29 20 74 72 69 6d 28 24 76 61 eLimit['limit'].=.(int).trim($va
32780 6c 75 65 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 58 2d 52 61 74 65 4c 69 6d 69 74 2d 52 lue);.break;.case.'X-RateLimit-R
327a0 65 73 65 74 27 3a 0a 24 72 61 74 65 4c 69 6d 69 74 5b 27 72 65 73 65 74 27 5d 20 3d 20 64 61 74 eset':.$rateLimit['reset'].=.dat
327c0 65 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 2c 20 28 69 6e 74 29 20 74 72 69 6d 28 24 76 61 6c e('Y-m-d.H:i:s',.(int).trim($val
327e0 75 65 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 61 74 65 4c 69 ue));.break;.}.}..return.$rateLi
32800 6d 69 74 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 20 mit;.}.......protected.function.
32820 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 74 fetchRootIdentifier().{.$repoDat
32840 61 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 41 70 69 55 72 6c 28 29 20 2e 20 27 2f 72 65 aUrl.=.$this->getApiUrl()...'/re
32860 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 72 65 pos/'.$this->owner.'/'.$this->re
32880 70 6f 73 69 74 6f 72 79 3b 0a 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a pository;..$repoData.=.JsonFile:
328a0 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 72 :parseJson($this->getContents($r
328c0 65 70 6f 44 61 74 61 55 72 6c 2c 20 74 72 75 65 29 2c 20 24 72 65 70 6f 44 61 74 61 55 72 6c 29 epoDataUrl,.true),.$repoDataUrl)
328e0 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 65 70 6f 44 61 74 61 20 26 26 20 6e 75 6c 6c ;.if.(null.===.$repoData.&&.null
32900 20 21 3d 3d 20 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 3b .!==.$this->gitDriver).{.return;
32920 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 20 3d 20 21 65 6d 70 74 79 28 24 72 .}..$this->isPrivate.=.!empty($r
32940 65 70 6f 44 61 74 61 5b 27 70 72 69 76 61 74 65 27 5d 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 epoData['private']);.if.(isset($
32960 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 29 29 20 7b 0a 24 repoData['default_branch'])).{.$
32980 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 72 65 70 6f 44 61 74 61 this->rootIdentifier.=.$repoData
329a0 5b 27 64 65 66 61 75 6c 74 5f 62 72 61 6e 63 68 27 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 ['default_branch'];.}.elseif.(is
329c0 73 65 74 28 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 29 29 set($repoData['master_branch']))
329e0 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 72 65 70 6f .{.$this->rootIdentifier.=.$repo
32a00 44 61 74 61 5b 27 6d 61 73 74 65 72 5f 62 72 61 6e 63 68 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a Data['master_branch'];.}.else.{.
32a20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 27 6d 61 73 74 65 72 27 $this->rootIdentifier.=.'master'
32a40 3b 0a 7d 0a 24 74 68 69 73 2d 3e 68 61 73 49 73 73 75 65 73 20 3d 20 21 65 6d 70 74 79 28 24 72 ;.}.$this->hasIssues.=.!empty($r
32a60 65 70 6f 44 61 74 61 5b 27 68 61 73 5f 69 73 73 75 65 73 27 5d 29 3b 0a 7d 0a 0a 70 72 6f 74 65 epoData['has_issues']);.}..prote
32a80 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 74 74 65 6d 70 74 43 6c 6f 6e 65 46 61 6c 6c 62 61 cted.function.attemptCloneFallba
32aa0 63 6b 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 73 50 72 69 76 61 74 65 20 3d 20 74 72 75 65 3b 0a ck().{.$this->isPrivate.=.true;.
32ac0 0a 74 72 79 20 7b 0a 0a 20 0a 20 0a 20 0a 20 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 20 .try.{.........$this->gitDriver.
32ae0 3d 20 6e 65 77 20 47 69 74 44 72 69 76 65 72 28 0a 61 72 72 61 79 28 27 75 72 6c 27 20 3d 3e 20 =.new.GitDriver(.array('url'.=>.
32b00 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 53 73 68 55 72 6c 28 29 29 2c 0a 24 74 68 69 73 2d $this->generateSshUrl()),.$this-
32b20 3e 69 6f 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 >io,.$this->config,.$this->proce
32b40 73 73 2c 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 29 3b 0a 24 ss,.$this->remoteFilesystem.);.$
32b60 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a this->gitDriver->initialize();..
32b80 72 65 74 75 72 6e 3b 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 return;.}.catch.(\RuntimeExcepti
32ba0 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 67 69 74 44 72 69 76 65 72 20 3d 20 6e 75 6c 6c on.$e).{.$this->gitDriver.=.null
32bc0 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 46 61 69 6c ;..$this->io->write('<error>Fail
32be0 65 64 20 74 6f 20 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 ed.to.clone.the.'.$this->generat
32c00 65 53 73 68 55 72 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 eSshUrl().'.repository,.try.runn
32c20 69 6e 67 20 69 6e 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 ing.in.interactive.mode.so.that.
32c40 79 6f 75 20 63 61 6e 20 65 6e 74 65 72 20 79 6f 75 72 20 47 69 74 48 75 62 20 63 72 65 64 65 6e you.can.enter.your.GitHub.creden
32c60 74 69 61 6c 73 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 tials</error>');.throw.$e;.}.}.}
32c80 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
32ca0 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
32cc0 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f er\Config;.use.Composer\Json\Jso
32ce0 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 nFile;.use.Composer\IO\IOInterfa
32d00 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 69 76 65 72 ce;.....class.GitBitbucketDriver
32d20 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 73 20 56 63 .extends.VcsDriver.implements.Vc
32d40 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 20 24 6f 77 sDriverInterface.{.protected.$ow
32d60 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 70 72 6f 74 ner;.protected.$repository;.prot
32d80 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 65 73 ected.$tags;.protected.$branches
32da0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f ;.protected.$rootIdentifier;.pro
32dc0 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 0a 0a 0a 0a tected.$infoCache.=.array();....
32de0 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 29 0a 7b 0a .public.function.initialize().{.
32e00 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 6b 65 74 5c preg_match('#^https://bitbucket\
32e20 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 24 74 68 69 .org/([^/]+)/(.+?)\.git$#',.$thi
32e40 73 2d 3e 75 72 6c 2c 20 24 6d 61 74 63 68 29 3b 0a 24 74 68 69 73 2d 3e 6f 77 6e 65 72 20 3d 20 s->url,.$match);.$this->owner.=.
32e60 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 $match[1];.$this->repository.=.$
32e80 6d 61 74 63 68 5b 32 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 27 62 69 match[2];.$this->originUrl.=.'bi
32ea0 74 62 75 63 6b 65 74 2e 6f 72 67 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 tbucket.org';.}.....public.funct
32ec0 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 6e 75 ion.getRootIdentifier().{.if.(nu
32ee0 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 7b 0a ll.===.$this->rootIdentifier).{.
32f00 24 72 65 73 6f 75 72 63 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e $resource.=.$this->getScheme()..
32f20 20 27 3a 2f 2f 61 70 69 2e 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 31 2e 30 2f 72 65 70 6f 73 .'://api.bitbucket.org/1.0/repos
32f40 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 itories/'.$this->owner.'/'.$this
32f60 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 6f 6e 46 69 ->repository;.$repoData.=.JsonFi
32f80 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 le::parseJson($this->getContents
32fa0 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e ($resource),.$resource);.$this->
32fc0 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 6f 44 61 74 rootIdentifier.=.!empty($repoDat
32fe0 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 61 5b 27 6d a['main_branch']).?.$repoData['m
33000 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 72 65 74 75 ain_branch'].:.'master';.}..retu
33020 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a 0a rn.$this->rootIdentifier;.}.....
33040 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 public.function.getUrl().{.retur
33060 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 n.$this->url;.}.....public.funct
33080 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 74 ion.getSource($identifier).{.ret
330a0 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 27 urn.array('type'.=>.'git',.'url'
330c0 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'
330e0 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .=>.$identifier);.}.....public.f
33100 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 unction.getDist($identifier).{.$
33120 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 url.=.$this->getScheme()...'://b
33140 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 27 2f 27 2e itbucket.org/'.$this->owner.'/'.
33160 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 65 74 2f 27 2e 24 69 64 65 6e 74 $this->repository.'/get/'.$ident
33180 69 66 69 65 72 2e 27 2e 7a 69 70 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 ifier.'.zip';..return.array('typ
331a0 65 27 20 3d 3e 20 27 7a 69 70 27 2c 20 27 75 72 6c 27 20 3d 3e 20 24 75 72 6c 2c 20 27 72 65 66 e'.=>.'zip',.'url'.=>.$url,.'ref
331c0 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 73 68 61 73 75 6d 27 erence'.=>.$identifier,.'shasum'
331e0 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
33200 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
33220 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
33240 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
33260 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
33280 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
332a0 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.'/
332c0 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
332e0 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.(!
33300 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
33320 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
33340 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
33360 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
33380 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
333a0 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
333c0 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.'/
333e0 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
33400 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
33420 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
33440 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
33460 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
33480 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;.
334a0 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
334c0 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
334e0 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
33500 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
33520 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.
33540 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.'/
33560 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
33580 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
335a0 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
335c0 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
335e0 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
33600 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[
33620 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->
33640 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
33660 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->
33680 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
336a0 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
336c0 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
336e0 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
33700 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
33720 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
33740 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
33760 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
33780 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-
337a0 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_
337c0 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
337e0 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
33800 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 43 6f 6e 66 n.supports(IOInterface.$io,.Conf
33820 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 ig.$config,.$url,.$deep.=.false)
33840 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3a 2f 2f 62 69 .{.if.(!preg_match('#^https://bi
33860 74 62 75 63 6b 65 74 5c 2e 6f 72 67 2f 28 5b 5e 2f 5d 2b 29 2f 28 2e 2b 3f 29 5c 2e 67 69 74 24 tbucket\.org/([^/]+)/(.+?)\.git$
33880 23 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 #',.$url)).{.return.false;.}..if
338a0 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 29 20 .(!extension_loaded('openssl')).
338c0 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 {.if.($io->isVerbose()).{.$io->w
338e0 72 69 74 65 28 27 53 6b 69 70 70 69 6e 67 20 42 69 74 62 75 63 6b 65 74 20 67 69 74 20 64 72 69 rite('Skipping.Bitbucket.git.dri
33900 76 65 72 20 66 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 ver.for.'.$url.'.because.the.Ope
33920 6e 53 53 4c 20 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 nSSL.PHP.extension.is.missing.')
33940 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 ;.}..return.false;.}..return.tru
33960 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 63 e;.}.}.<?php............namespac
33980 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 e.Composer\Repository\Vcs;..use.
339a0 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 Composer\Json\JsonFile;.use.Comp
339c0 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 73 65 20 43 oser\Util\ProcessExecutor;.use.C
339e0 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 65 20 43 6f 6d omposer\Util\Filesystem;.use.Com
33a00 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 20 61 73 20 47 69 74 55 74 69 6c 3b 0a 75 73 65 20 43 poser\Util\Git.as.GitUtil;.use.C
33a20 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 omposer\IO\IOInterface;.use.Comp
33a40 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 43 6f 6e 66 69 67 3b oser\Cache;.use.Composer\Config;
33a60 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 73 20 56 63 73 .....class.GitDriver.extends.Vcs
33a80 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 74 65 Driver.{.protected.$cache;.prote
33aa0 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;
33ac0 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
33ae0 65 63 74 65 64 20 24 72 65 70 6f 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 ected.$repoDir;.protected.$infoC
33b00 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ache.=.array();.....public.funct
33b20 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 69 ion.initialize().{.if.(static::i
33b40 73 4c 6f 63 61 6c 55 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 74 68 69 73 2d 3e sLocalUrl($this->url)).{.$this->
33b60 72 65 70 6f 44 69 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c 65 3a 2f 2f 27 2c repoDir.=.str_replace('file://',
33b80 20 27 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 .'',.$this->url);.}.else.{.$this
33ba0 2d 3e 72 65 70 6f 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 ->repoDir.=.$this->config->get('
33bc0 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 29 20 2e 20 27 2f 27 20 2e 20 70 72 65 67 5f 72 65 70 cache-vcs-dir')...'/'...preg_rep
33be0 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 74 68 69 73 lace('{[^a-z0-9.]}i',.'-',.$this
33c00 2d 3e 75 72 6c 29 20 2e 20 27 2f 27 3b 0a 0a 24 75 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 55 74 ->url)...'/';..$util.=.new.GitUt
33c20 69 6c 3b 0a 24 75 74 69 6c 2d 3e 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 0a 24 66 73 20 3d 20 6e 65 il;.$util->cleanEnv();..$fs.=.ne
33c40 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 w.Filesystem();.$fs->ensureDirec
33c60 74 6f 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 toryExists(dirname($this->repoDi
33c80 72 29 29 3b 0a 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e 61 6d 65 28 24 r));..if.(!is_writable(dirname($
33ca0 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 this->repoDir))).{.throw.new.\Ru
33cc0 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 63 6c 6f 6e 65 20 27 2e ntimeException('Can.not.clone.'.
33ce0 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 74 6f 20 61 63 63 65 73 73 20 70 61 63 6b 61 67 65 20 69 $this->url.'.to.access.package.i
33d00 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 54 68 65 20 22 27 2e 64 69 72 6e 61 6d 65 28 24 74 68 69 73 nformation..The."'.dirname($this
33d20 2d 3e 72 65 70 6f 44 69 72 29 2e 27 22 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 74 20 77 ->repoDir).'".directory.is.not.w
33d40 72 69 74 61 62 6c 65 20 62 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 75 73 65 72 2e 27 29 3b 0a ritable.by.the.current.user.');.
33d60 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 73 73 68 3a 2f 2f 5b 5e 40 5d 2b }..if.(preg_match('{^ssh://[^@]+
33d80 40 5b 5e 3a 5d 2b 3a 5b 5e 30 2d 39 5d 2b 7d 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b @[^:]+:[^0-9]+}',.$this->url)).{
33da0 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
33dc0 74 69 6f 6e 28 27 54 68 65 20 73 6f 75 72 63 65 20 55 52 4c 20 27 2e 24 74 68 69 73 2d 3e 75 72 tion('The.source.URL.'.$this->ur
33de0 6c 2e 27 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 73 73 68 20 55 52 4c 73 20 73 68 6f 75 6c 64 20 l.'.is.invalid,.ssh.URLs.should.
33e00 68 61 76 65 20 61 20 70 6f 72 74 20 6e 75 6d 62 65 72 20 61 66 74 65 72 20 22 3a 22 2e 27 2e 22 have.a.port.number.after.":".'."
33e20 5c 6e 22 2e 27 55 73 65 20 73 73 68 3a 2f 2f 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 32 \n".'Use.ssh://git@example.com:2
33e40 32 2f 70 61 74 68 20 6f 72 20 6a 75 73 74 20 67 69 74 40 65 78 61 6d 70 6c 65 2e 63 6f 6d 3a 70 2/path.or.just.git@example.com:p
33e60 61 74 68 20 69 66 20 79 6f 75 20 64 6f 20 6e 6f 74 20 77 61 6e 74 20 74 6f 20 70 72 6f 76 69 64 ath.if.you.do.not.want.to.provid
33e80 65 20 61 20 70 61 73 73 77 6f 72 64 20 6f 72 20 63 75 73 74 6f 6d 20 70 6f 72 74 2e 27 29 3b 0a e.a.password.or.custom.port.');.
33ea0 7d 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).
33ec0 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
33ee0 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
33f00 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
33f20 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.
33f40 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-
33f60 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('<
33f80 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->
33fa0 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.
33fc0 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.
33fe0 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
34000 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.{...$
34020 66 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 fs->removeDirectory($this->repoD
34040 69 72 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 67 69 74 20 63 6c ir);..$command.=.sprintf('git.cl
34060 6f 6e 65 20 2d 2d 6d 69 72 72 6f 72 20 25 73 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c one.--mirror.%s.%s',.escapeshell
34080 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 28 arg($this->url),.escapeshellarg(
340a0 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 3b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 $this->repoDir));.if.(0.!==.$thi
340c0 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 6f s->process->execute($command,.$o
340e0 75 74 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 utput)).{.$output.=.$this->proce
34100 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d ss->getErrorOutput();..if.(0.!==
34120 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 2d 2d .$this->process->execute('git.--
34140 76 65 72 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 29 29 20 7b 0a 74 68 72 version',.$ignoredOutput)).{.thr
34160 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 ow.new.\RuntimeException('Failed
34180 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 67 69 74 20 77 61 .to.clone.'.$this->url.',.git.wa
341a0 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e s.not.found,.check.that.it.is.in
341c0 73 74 61 6c 6c 65 64 20 61 6e 64 20 69 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e stalled.and.in.your.PATH.env.'..
341e0 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
34200 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 orOutput());.}..throw.new.\Runti
34220 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 46 61 69 6c 65 64 20 74 6f 20 63 6c 6f 6e 65 20 27 2e 24 meException('Failed.to.clone.'.$
34240 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 70 61 63 6b this->url.',.could.not.read.pack
34260 61 67 65 73 20 66 72 6f 6d 20 69 74 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 24 6f 75 74 70 75 74 29 ages.from.it'..."\n\n"..$output)
34280 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 3b 0a 24 74 68 69 73 ;.}.}.}..$this->getTags();.$this
342a0 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 20 3d ->getBranches();..$this->cache.=
342c0 20 6e 65 77 20 43 61 63 68 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e .new.Cache($this->io,.$this->con
342e0 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e 70 fig->get('cache-repo-dir').'/'.p
34300 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',.'-'
34320 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ,.$this->url));.}.....public.fun
34340 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 69 66 20 28 ction.getRootIdentifier().{.if.(
34360 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).
34380 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 27 6d 61 73 74 65 {.$this->rootIdentifier.=.'maste
343a0 72 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 27 r';....$this->process->execute('
343c0 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 27 2c 20 24 6f 75 74 70 75 74 2c git.branch.--no-color',.$output,
343e0 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 74 .$this->repoDir);.$branches.=.$t
34400 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 74 his->process->splitLines($output
34420 29 3b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 27 2a 20 6d 61 73 74 65 72 27 2c 20 24 62 72 );.if.(!in_array('*.master',.$br
34440 61 6e 63 68 65 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 65 73 20 61 73 anches)).{.foreach.($branches.as
34460 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 20 70 72 65 67 5f .$branch).{.if.($branch.&&.preg_
34480 6d 61 74 63 68 28 27 7b 5e 5c 2a 20 2b 28 5c 53 2b 29 7d 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 match('{^\*.+(\S+)}',.$branch,.$
344a0 6d 61 74 63 68 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 match)).{.$this->rootIdentifier.
344c0 3d 20 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 0a 72 65 74 =.$match[1];.break;.}.}.}.}..ret
344e0 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 7d 0a 0a 0a 0a urn.$this->rootIdentifier;.}....
34500 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 6c 28 29 0a 7b 0a 72 65 74 75 .public.function.getUrl().{.retu
34520 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rn.$this->url;.}.....public.func
34540 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 72 65 tion.getSource($identifier).{.re
34560 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
34580 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
345a0 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 '.=>.$identifier);.}.....public.
345c0 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a function.getDist($identifier).{.
345e0 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 return.null;.}.....public.functi
34600 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 on.getComposerInformation($ident
34620 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d ifier).{.if.(preg_match('{[a-f0-
34640 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 26 26 20 24 72 65 73 20 9]{40}}i',.$identifier).&&.$res.
34660 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 64 65 6e 74 69 66 69 65 72 =.$this->cache->read($identifier
34680 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 )).{.$this->infoCache[$identifie
346a0 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 73 29 3b 0a r].=.JsonFile::parseJson($res);.
346c0 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 }..if.(!isset($this->infoCache[$
346e0 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 69 identifier])).{.$resource.=.spri
34700 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 68 ntf('%s:composer.json',.escapesh
34720 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 6f ellarg($identifier));.$this->pro
34740 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 20 cess->execute(sprintf('git.show.
34760 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 69 %s',.$resource),.$composer,.$thi
34780 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 65 s->repoDir);..if.(!trim($compose
347a0 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 6f r)).{.return;.}..$composer.=.Jso
347c0 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 72 65 73 nFile::parseJson($composer,.$res
347e0 6f 75 72 63 65 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6d 70 6f 73 65 72 5b 27 74 ource);..if.(!isset($composer['t
34800 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 74 ime'])).{.$this->process->execut
34820 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 25 e(sprintf('git.log.-1.--format=%
34840 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 66 %at.%s',.escapeshellarg($identif
34860 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 3b ier)),.$output,.$this->repoDir);
34880 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 28 .$date.=.new.\DateTime('@'.trim(
348a0 24 6f 75 74 70 75 74 29 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 $output),.new.\DateTimeZone('UTC
348c0 27 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 '));.$composer['time'].=.$date->
348e0 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 0a 69 66 20 28 70 72 format('Y-m-d.H:i:s');.}..if.(pr
34900 65 67 5f 6d 61 74 63 68 28 27 7b 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 7d 69 27 2c 20 24 69 64 65 eg_match('{[a-f0-9]{40}}i',.$ide
34920 6e 74 69 66 69 65 72 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 77 72 69 74 65 28 ntifier)).{.$this->cache->write(
34940 24 69 64 65 6e 74 69 66 69 65 72 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6d 70 6f 73 $identifier,.json_encode($compos
34960 65 72 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 er));.}..$this->infoCache[$ident
34980 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 ifier].=.$composer;.}..return.$t
349a0 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 3b 0a 7d 0a 0a his->infoCache[$identifier];.}..
349c0 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 0a 7b 0a 69 ...public.function.getTags().{.i
349e0 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 7b 0a 24 74 68 69 73 f.(null.===.$this->tags).{.$this
34a00 2d 3e 74 61 67 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 73 ->tags.=.array();..$this->proces
34a20 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 73 68 6f 77 2d 72 65 66 20 2d 2d 74 61 67 73 27 s->execute('git.show-ref.--tags'
34a40 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 ,.$output,.$this->repoDir);.fore
34a60 61 63 68 20 28 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 73 ach.($output.=.$this->process->s
34a80 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 74 61 67 29 20 7b 0a 69 66 plitLines($output).as.$tag).{.if
34aa0 20 28 24 74 61 67 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 61 2d 66 30 2d 39 .($tag.&&.preg_match('{^([a-f0-9
34ac0 5d 7b 34 30 7d 29 20 72 65 66 73 2f 74 61 67 73 2f 28 5c 53 2b 29 24 7d 27 2c 20 24 74 61 67 2c ]{40}).refs/tags/(\S+)$}',.$tag,
34ae0 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 24 6d 61 74 63 68 5b 32 .$match)).{.$this->tags[$match[2
34b00 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 ]].=.$match[1];.}.}.}..return.$t
34b20 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 6e 63 74 69 6f 6e his->tags;.}.....public.function
34b40 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 3d 3d 3d 20 24 74 .getBranches().{.if.(null.===.$t
34b60 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 his->branches).{.$branches.=.arr
34b80 61 79 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 ay();..$this->process->execute('
34ba0 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 20 2d 2d 6e 6f 2d 61 62 62 72 65 git.branch.--no-color.--no-abbre
34bc0 76 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b v.-v',.$output,.$this->repoDir);
34be0 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 70 6c 69 74 4c .foreach.($this->process->splitL
34c00 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 ines($output).as.$branch).{.if.(
34c20 24 62 72 61 6e 63 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 2f 5d $branch.&&.!preg_match('{^.*[^/]
34c40 2b 2f 48 45 41 44 20 7d 27 2c 20 24 62 72 61 6e 63 68 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f +/HEAD.}',.$branch)).{.if.(preg_
34c60 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 3f 20 2a 28 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 match('{^(?:\*.)?.*(\S+).*([a-f0
34c80 2d 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 -9]+)..*$}',.$branch,.$match)).{
34ca0 0a 24 62 72 61 6e 63 68 65 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 63 68 5b 32 .$branches[$match[1]].=.$match[2
34cc0 5d 3b 0a 7d 0a 7d 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 ];.}.}.}..$this->branches.=.$bra
34ce0 6e 63 68 65 73 3b 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 nches;.}..return.$this->branches
34d00 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 ;.}.....public.static.function.s
34d20 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 43 6f 6e 66 69 67 20 upports(IOInterface.$io,.Config.
34d40 24 63 6f 6e 66 69 67 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 $config,.$url,.$deep.=.false).{.
34d60 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 67 69 74 3a 2f 2f 7c 5c 2e 67 69 74 24 if.(preg_match('#(^git://|\.git$
34d80 7c 67 69 74 28 3f 3a 6f 6c 69 74 65 29 3f 40 7c 2f 2f 67 69 74 5c 2e 7c 2f 2f 67 69 74 68 75 62 |git(?:olite)?@|//git\.|//github
34da0 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;
34dc0 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
34de0 6c 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 75 72 6c 29 29 20 7b 0a 74 68 72 6f 77 l)).{.if.(!is_dir($url)).{.throw
34e00 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 44 69 72 65 63 74 6f 72 .new.\RuntimeException('Director
34e20 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 3a 20 27 2e 24 75 72 6c 29 3b 0a 7d 0a 0a 24 70 y.does.not.exist:.'.$url);.}..$p
34e40 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a rocess.=.new.ProcessExecutor();.
34e60 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c 65 3a 2f 2f 27 2c 20 27 27 $url.=.str_replace('file://',.''
34e80 2c 20 24 75 72 6c 29 3b 0a 0a 20 69 66 20 28 24 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 ,.$url);...if.($process->execute
34ea0 28 27 67 69 74 20 74 61 67 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 75 72 6c 29 20 3d 3d 3d 20 30 ('git.tag',.$output,.$url).===.0
34ec0 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 64 65 65 70 ).{.return.true;.}.}..if.(!$deep
34ee0 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 66 61 ).{.return.false;.}....return.fa
34f00 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 lse;.}.}.<?php............namesp
34f20 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
34f40 65 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 e.Composer\Config;.use.Composer\
34f60 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 69 IO\IOInterface;.use.Composer\Uti
34f80 6c 5c 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c l\ProcessExecutor;.use.Composer\
34fa0 55 74 69 6c 5c 50 65 72 66 6f 72 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 72 66 6f 72 63 Util\Perforce;.....class.Perforc
34fc0 65 44 72 69 76 65 72 20 65 78 74 65 6e 64 73 20 56 63 73 44 72 69 76 65 72 0a 7b 0a 70 72 6f 74 eDriver.extends.VcsDriver.{.prot
34fe0 65 63 74 65 64 20 24 64 65 70 6f 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 68 3b ected.$depot;.protected.$branch;
35000 0a 70 72 6f 74 65 63 74 65 64 20 24 70 65 72 66 6f 72 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 .protected.$perforce;.protected.
35020 24 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 $composerInfo;.protected.$compos
35040 65 72 49 6e 66 6f 49 64 65 6e 74 69 66 69 65 72 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e erInfoIdentifier;.....public.fun
35060 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 70 6f ction.initialize().{.$this->depo
35080 74 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 64 65 70 6f 74 27 5d 3b 0a t.=.$this->repoConfig['depot'];.
350a0 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 20 3d 20 27 27 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 $this->branch.=.'';.if.(isset($t
350c0 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 his->repoConfig['branch'])).{.$t
350e0 68 69 73 2d 3e 62 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b his->branch.=.$this->repoConfig[
35100 27 62 72 61 6e 63 68 27 5d 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 50 65 72 66 6f 72 63 'branch'];.}..$this->initPerforc
35120 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 e($this->repoConfig);.$this->per
35140 66 6f 72 63 65 2d 3e 70 34 4c 6f 67 69 6e 28 24 74 68 69 73 2d 3e 69 6f 29 3b 0a 24 74 68 69 73 force->p4Login($this->io);.$this
35160 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 63 68 65 63 6b 53 74 72 65 61 6d 28 24 74 68 69 73 2d 3e 64 ->perforce->checkStream($this->d
35180 65 70 6f 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 77 72 69 74 65 50 34 epot);..$this->perforce->writeP4
351a0 43 6c 69 65 6e 74 53 70 65 63 28 29 3b 0a 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 63 ClientSpec();.$this->perforce->c
351c0 6f 6e 6e 65 63 74 43 6c 69 65 6e 74 28 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a onnectClient();..return.true;.}.
351e0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 50 65 72 66 6f 72 63 65 28 24 .private.function.initPerforce($
35200 72 65 70 6f 43 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 repoConfig).{.if.(isset($this->p
35220 65 72 66 6f 72 63 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 70 6f 44 69 72 20 erforce)).{.return;.}..$repoDir.
35240 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 76 63 73 2d =.$this->config->get('cache-vcs-
35260 64 69 72 27 29 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 64 65 70 6f 74 3b 0a 24 74 68 69 dir')...'/'...$this->depot;.$thi
35280 73 2d 3e 70 65 72 66 6f 72 63 65 20 3d 20 50 65 72 66 6f 72 63 65 3a 3a 63 72 65 61 74 65 28 24 s->perforce.=.Perforce::create($
352a0 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 24 72 65 repoConfig,.$this->getUrl(),.$re
352c0 70 6f 44 69 72 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 poDir,.$this->process);.}.....pu
352e0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 blic.function.getComposerInforma
35300 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 tion($identifier).{.if.(isset($t
35320 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 49 64 65 6e 74 69 66 69 65 72 29 29 20 7b 0a his->composerInfoIdentifier)).{.
35340 69 66 20 28 73 74 72 63 6d 70 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 74 68 69 73 2d 3e 63 if.(strcmp($identifier,.$this->c
35360 6f 6d 70 6f 73 65 72 49 6e 66 6f 49 64 65 6e 74 69 66 69 65 72 29 20 3d 3d 3d 20 30 29 20 7b 0a omposerInfoIdentifier).===.0).{.
35380 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 3b 0a 7d 0a 7d 0a return.$this->composerInfo;.}.}.
353a0 24 63 6f 6d 70 6f 73 65 72 5f 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 $composer_info.=.$this->perforce
353c0 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 ->getComposerInformation($identi
353e0 66 69 65 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 5f 69 6e 66 6f 3b 0a 7d fier);..return.$composer_info;.}
35400 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 65 6e .....public.function.getRootIden
35420 74 69 66 69 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 3b tifier().{.return.$this->branch;
35440 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 .}.....public.function.getBranch
35460 65 73 28 29 0a 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 es().{.$branches.=.$this->perfor
35480 63 65 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 62 72 61 6e ce->getBranches();..return.$bran
354a0 63 68 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 54 ches;.}.....public.function.getT
354c0 61 67 73 28 29 0a 7b 0a 24 74 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d ags().{.$tags.=.$this->perforce-
354e0 3e 67 65 74 54 61 67 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 61 67 73 3b 0a 7d 0a 0a 0a 0a >getTags();..return.$tags;.}....
35500 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 65 6e 74 69 .public.function.getDist($identi
35520 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 75 62 6c 69 fier).{.return.null;.}.....publi
35540 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 c.function.getSource($identifier
35560 29 0a 7b 0a 24 73 6f 75 72 63 65 20 3d 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 27 ).{.$source.=.array(.'type'.=>.'
35580 70 65 72 66 6f 72 63 65 27 2c 0a 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 perforce',.'url'.=>.$this->repoC
355a0 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 0a 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 onfig['url'],.'reference'.=>.$id
355c0 65 6e 74 69 66 69 65 72 2c 0a 27 70 34 75 73 65 72 27 20 3d 3e 20 24 74 68 69 73 2d 3e 70 65 72 entifier,.'p4user'.=>.$this->per
355e0 66 6f 72 63 65 2d 3e 67 65 74 55 73 65 72 28 29 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 6f 75 force->getUser().);..return.$sou
35600 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 72 rce;.}.....public.function.getUr
35620 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 0a 0a 70 l().{.return.$this->url;.}.....p
35640 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 28 24 ublic.function.hasComposerFile($
35660 69 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e 66 identifier).{.$this->composerInf
35680 6f 20 3d 20 24 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 o.=.$this->perforce->getComposer
356a0 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 27 2f 2f 27 20 2e 20 24 74 68 69 73 2d 3e 64 65 70 6f 74 20 Information('//'...$this->depot.
356c0 2e 20 27 2f 27 20 2e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d ..'/'...$identifier);.$this->com
356e0 70 6f 73 65 72 49 6e 66 6f 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 69 64 65 6e 74 69 66 69 65 poserInfoIdentifier.=.$identifie
35700 72 3b 0a 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 r;.$result.=.false;.if.(isset($t
35720 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 29 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d 20 his->composerInfo)).{.$result.=.
35740 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 49 6e 66 6f 29 20 3e 20 30 3b 0a count($this->composerInfo).>.0;.
35760 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 70 75 62 6c 69 63 20 }..return.$result;.}.....public.
35780 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 75 72 6c 29 0a 7b 0a 72 65 74 function.getContents($url).{.ret
357a0 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 urn.false;.}.....public.static.f
357c0 75 6e 63 74 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f unction.supports(IOInterface.$io
357e0 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 75 72 6c 2c 20 24 64 65 65 70 20 3d 20 ,.Config.$config,.$url,.$deep.=.
35800 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 64 65 65 70 20 7c 7c 20 70 72 65 67 5f 6d 61 74 63 68 false).{.if.($deep.||.preg_match
35820 28 27 23 5c 62 28 70 65 72 66 6f 72 63 65 7c 70 34 29 5c 62 23 69 27 2c 20 24 75 72 6c 29 29 20 ('#\b(perforce|p4)\b#i',.$url)).
35840 7b 0a 72 65 74 75 72 6e 20 50 65 72 66 6f 72 63 65 3a 3a 63 68 65 63 6b 53 65 72 76 65 72 45 78 {.return.Perforce::checkServerEx
35860 69 73 74 73 28 24 75 72 6c 2c 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 ists($url,.new.ProcessExecutor($
35880 69 6f 29 29 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 70 75 62 io));.}..return.false;.}.....pub
358a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 28 29 0a 7b 0a 24 74 68 69 73 2d 3e lic.function.cleanup().{.$this->
358c0 70 65 72 66 6f 72 63 65 2d 3e 63 6c 65 61 6e 75 70 43 6c 69 65 6e 74 53 70 65 63 28 29 3b 0a 24 perforce->cleanupClientSpec();.$
358e0 74 68 69 73 2d 3e 70 65 72 66 6f 72 63 65 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 70 75 62 6c 69 63 this->perforce.=.null;.}..public
35900 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 70 6f 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 .function.getDepot().{.return.$t
35920 68 69 73 2d 3e 64 65 70 6f 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 his->depot;.}..public.function.g
35940 65 74 42 72 61 6e 63 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 etBranch().{.return.$this->branc
35960 68 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 65 72 66 6f 72 63 h;.}..public.function.setPerforc
35980 65 28 50 65 72 66 6f 72 63 65 20 24 70 65 72 66 6f 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 e(Perforce.$perforce).{.$this->p
359a0 65 72 66 6f 72 63 65 20 3d 20 24 70 65 72 66 6f 72 63 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a erforce.=.$perforce;.}.}.<?php..
359c0 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
359e0 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 43 61 63 68 65 ository\Vcs;..use.Composer\Cache
35a00 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 6f 6d 70 6f ;.use.Composer\Config;.use.Compo
35a20 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 72 5c ser\Json\JsonFile;.use.Composer\
35a40 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 70 6f 73 Util\ProcessExecutor;.use.Compos
35a60 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 73 65 72 er\Util\Filesystem;.use.Composer
35a80 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 70 6f 73 \Util\Svn.as.SvnUtil;.use.Compos
35aa0 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 5c er\IO\IOInterface;.use.Composer\
35ac0 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 3b 0a 0a Downloader\TransportException;..
35ae0 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 63 73 44 ....class.SvnDriver.extends.VcsD
35b00 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 74 65 63 river.{.protected.$cache;.protec
35b20 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 3b 0a 70 ted.$baseUrl;.protected.$tags;.p
35b40 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
35b60 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 66 6f 43 61 ootIdentifier;.protected.$infoCa
35b80 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 74 72 75 6e 6b che.=.array();..protected.$trunk
35ba0 50 61 74 68 20 3d 20 27 74 72 75 6e 6b 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e 63 Path.=.'trunk';.protected.$branc
35bc0 68 65 73 50 61 74 68 20 3d 20 27 62 72 61 6e 63 68 65 73 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 hesPath.=.'branches';.protected.
35be0 24 74 61 67 73 50 61 74 68 20 3d 20 27 74 61 67 73 27 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 $tagsPath.=.'tags';.protected.$p
35c00 61 63 6b 61 67 65 50 61 74 68 20 3d 20 27 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 75 74 ackagePath.=.'';.....private.$ut
35c20 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 69 74 69 61 6c 69 il;.....public.function.initiali
35c40 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 3e 62 61 73 65 55 ze().{.$this->url.=.$this->baseU
35c60 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 55 72 6c 28 24 74 rl.=.rtrim(self::normalizeUrl($t
35c80 68 69 73 2d 3e 75 72 6c 29 2c 20 27 2f 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 his->url),.'/');..if.(isset($thi
35ca0 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 72 75 6e 6b 2d 70 61 74 68 27 5d 29 29 20 7b 0a s->repoConfig['trunk-path'])).{.
35cc0 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f $this->trunkPath.=.$this->repoCo
35ce0 6e 66 69 67 5b 27 74 72 75 6e 6b 2d 70 61 74 68 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 nfig['trunk-path'];.}.if.(isset(
35d00 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 $this->repoConfig['branches-path
35d20 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 20 3d 20 24 74 68 '])).{.$this->branchesPath.=.$th
35d40 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 65 73 2d 70 61 74 68 27 5d 3b is->repoConfig['branches-path'];
35d60 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 .}.if.(isset($this->repoConfig['
35d80 74 61 67 73 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 tags-path'])).{.$this->tagsPath.
35da0 3d 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 61 67 73 2d 70 61 74 68 27 5d =.$this->repoConfig['tags-path']
35dc0 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 5b ;.}.if.(isset($this->repoConfig[
35de0 27 70 61 63 6b 61 67 65 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 'package-path'])).{.$this->packa
35e00 67 65 50 61 74 68 20 3d 20 27 2f 27 20 2e 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 gePath.=.'/'...trim($this->repoC
35e20 6f 6e 66 69 67 5b 27 70 61 63 6b 61 67 65 2d 70 61 74 68 27 5d 2c 20 27 2f 27 29 3b 0a 7d 0a 0a onfig['package-path'],.'/');.}..
35e40 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 74 if.(false.!==.($pos.=.strrpos($t
35e60 68 69 73 2d 3e 75 72 6c 2c 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 his->url,.'/'...$this->trunkPath
35e80 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 73 75 62 73 74 72 28 24 74 ))).{.$this->baseUrl.=.substr($t
35ea0 68 69 73 2d 3e 75 72 6c 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 his->url,.0,.$pos);.}..$this->ca
35ec0 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 che.=.new.Cache($this->io,.$this
35ee0 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e ->config->get('cache-repo-dir').
35f00 27 2f 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 61 2d 7a 30 2d 39 2e 5d 7d 69 27 '/'.preg_replace('{[^a-z0-9.]}i'
35f20 2c 20 27 2d 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 29 29 3b 0a 0a 24 74 68 69 73 2d ,.'-',.$this->baseUrl));..$this-
35f40 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 67 65 74 54 61 67 73 28 29 >getBranches();.$this->getTags()
35f60 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 49 ;.}.....public.function.getRootI
35f80 64 65 6e 74 69 66 69 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 dentifier().{.return.$this->root
35fa0 49 64 65 6e 74 69 66 69 65 72 20 3f 3a 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 3b 0a Identifier.?:.$this->trunkPath;.
35fc0 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 7b }.....public.function.getUrl().{
35fe0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .return.$this->url;.}.....public
36000 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 .function.getSource($identifier)
36020 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 73 76 6e 27 2c .{.return.array('type'.=>.'svn',
36040 20 27 75 72 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 2c 20 27 72 65 66 65 72 .'url'.=>.$this->baseUrl,.'refer
36060 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ence'.=>.$identifier);.}.....pub
36080 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
360a0 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ).{.return.null;.}.....public.fu
360c0 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 nction.getComposerInformation($i
360e0 64 65 6e 74 69 66 69 65 72 29 0a 7b 0a 24 69 64 65 6e 74 69 66 69 65 72 20 3d 20 27 2f 27 20 2e dentifier).{.$identifier.=.'/'..
36100 20 74 72 69 6d 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 0a .trim($identifier,.'/')...'/';..
36120 69 66 20 28 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 if.($res.=.$this->cache->read($i
36140 64 65 6e 74 69 66 69 65 72 2e 27 2e 6a 73 6f 6e 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 66 dentifier.'.json')).{.$this->inf
36160 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a oCache[$identifier].=.JsonFile::
36180 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 parseJson($res);.}..if.(!isset($
361a0 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b this->infoCache[$identifier])).{
361c0 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 2e 2b 3f 29 28 40 5c 64 2b 29 3f 2f 24 7d 27 2c .preg_match('{^(.+?)(@\d+)?/$}',
361e0 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 6d 61 74 63 68 29 3b 0a 69 66 20 28 21 65 6d 70 74 .$identifier,.$match);.if.(!empt
36200 79 28 24 6d 61 74 63 68 5b 32 5d 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 6d 61 74 63 68 5b 31 y($match[2])).{.$path.=.$match[1
36220 5d 3b 0a 24 72 65 76 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 ];.$rev.=.$match[2];.}.else.{.$p
36240 61 74 68 20 3d 20 24 69 64 65 6e 74 69 66 69 65 72 3b 0a 24 72 65 76 20 3d 20 27 27 3b 0a 7d 0a ath.=.$identifier;.$rev.=.'';.}.
36260 0a 74 72 79 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 24 70 61 74 68 2e 27 63 6f 6d 70 6f 73 .try.{.$resource.=.$path.'compos
36280 65 72 2e 6a 73 6f 6e 27 3b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 er.json';.$output.=.$this->execu
362a0 74 65 28 27 73 76 6e 20 63 61 74 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 24 te('svn.cat',.$this->baseUrl...$
362c0 72 65 73 6f 75 72 63 65 20 2e 20 24 72 65 76 29 3b 0a 69 66 20 28 21 74 72 69 6d 28 24 6f 75 74 resource...$rev);.if.(!trim($out
362e0 70 75 74 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e 74 put)).{.return;.}.}.catch.(\Runt
36300 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 54 72 61 imeException.$e).{.throw.new.Tra
36320 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 nsportException($e->getMessage()
36340 29 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 65 72 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 );.}..$composer.=.JsonFile::pars
36360 65 4a 73 6f 6e 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 eJson($output,.$this->baseUrl...
36380 24 72 65 73 6f 75 72 63 65 20 2e 20 24 72 65 76 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 $resource...$rev);..if.(!isset($
363a0 63 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 composer['time'])).{.$output.=.$
363c0 74 68 69 73 2d 3e 65 78 65 63 75 74 65 28 27 73 76 6e 20 69 6e 66 6f 27 2c 20 24 74 68 69 73 2d this->execute('svn.info',.$this-
363e0 3e 62 61 73 65 55 72 6c 20 2e 20 24 70 61 74 68 20 2e 20 24 72 65 76 29 3b 0a 66 6f 72 65 61 63 >baseUrl...$path...$rev);.foreac
36400 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
36420 75 74 70 75 74 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 69 66 20 28 24 6c 69 6e 65 20 26 26 20 utput).as.$line).{.if.($line.&&.
36440 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 4c 61 73 74 20 43 68 61 6e 67 65 64 20 44 61 74 65 3a preg_match('{^Last.Changed.Date:
36460 20 28 5b 5e 28 5d 2b 29 7d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 64 .([^(]+)}',.$line,.$match)).{.$d
36480 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 6d 61 74 63 68 5b 31 5d 2c 20 6e ate.=.new.\DateTime($match[1],.n
364a0 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 63 6f 6d 70 6f ew.\DateTimeZone('UTC'));.$compo
364c0 73 65 72 5b 27 74 69 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 ser['time'].=.$date->format('Y-m
364e0 2d 64 20 48 3a 69 3a 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 -d.H:i:s');.break;.}.}.}..$this-
36500 3e 63 61 63 68 65 2d 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 >cache->write($identifier.'.json
36520 27 2c 20 6a 73 6f 6e 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 ',.json_encode($composer));.$thi
36540 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 24 63 6f 6d s->infoCache[$identifier].=.$com
36560 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 43 61 63 68 poser;.}..return.$this->infoCach
36580 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 20 66 75 6e e[$identifier];.}.....public.fun
365a0 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 3d 3d 20 24 ction.getTags().{.if.(null.===.$
365c0 74 68 69 73 2d 3e 74 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 this->tags).{.$this->tags.=.arra
365e0 79 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 21 3d 3d 20 66 61 y();..if.($this->tagsPath.!==.fa
36600 6c 73 65 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 28 lse).{.$output.=.$this->execute(
36620 27 73 76 6e 20 6c 73 20 2d 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 55 'svn.ls.--verbose',.$this->baseU
36640 72 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 29 3b 0a 69 66 20 rl...'/'...$this->tagsPath);.if.
36660 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 ($output).{.foreach.($this->proc
36680 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 6e ess->splitLines($output).as.$lin
366a0 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 66 20 28 24 6c e).{.$line.=.trim($line);.if.($l
366c0 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 2b 29 2e 2a 3f ine.&&.preg_match('{^\s*(\S+).*?
366e0 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 29 20 7b 0a 69 (\S+)\s*$}',.$line,.$match)).{.i
36700 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 74 28 24 6d 61 f.(isset($match[1]).&&.isset($ma
36720 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 2f 27 29 20 7b tch[2]).&&.$match[2].!==.'./').{
36740 0a 24 74 68 69 73 2d 3e 74 61 67 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 2f .$this->tags[rtrim($match[2],.'/
36760 27 29 5d 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 0a 27 2f ')].=.$this->buildIdentifier(.'/
36780 27 20 2e 20 24 74 68 69 73 2d 3e 74 61 67 73 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 '...$this->tagsPath...'/'...$mat
367a0 63 68 5b 32 5d 2c 0a 24 6d 61 74 63 68 5b 31 5d 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a ch[2],.$match[1].);.}.}.}.}.}.}.
367c0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 .return.$this->tags;.}.....publi
367e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 29 0a 7b 0a 69 66 20 28 6e c.function.getBranches().{.if.(n
36800 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 74 68 69 73 ull.===.$this->branches).{.$this
36820 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 ->branches.=.array();..if.(false
36840 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 2c 20 27 2f .===.strpos($this->trunkPath,.'/
36860 27 29 29 20 7b 0a 24 74 72 75 6e 6b 50 61 72 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 ')).{.$trunkParent.=.$this->base
36880 55 72 6c 20 2e 20 27 2f 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 72 75 6e 6b 50 61 72 65 6e 74 Url...'/';.}.else.{.$trunkParent
368a0 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 64 69 72 6e 61 6d .=.$this->baseUrl...'/'...dirnam
368c0 65 28 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 29 20 2e 20 27 2f 27 3b 0a 7d 0a 0a 24 6f e($this->trunkPath)...'/';.}..$o
368e0 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 2d utput.=.$this->execute('svn.ls.-
36900 2d 76 65 72 62 6f 73 65 27 2c 20 24 74 72 75 6e 6b 50 61 72 65 6e 74 29 3b 0a 69 66 20 28 24 6f -verbose',.$trunkParent);.if.($o
36920 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 73 73 utput).{.foreach.($this->process
36940 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 6e 65 29 20 ->splitLines($output).as.$line).
36960 7b 0a 24 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 {.$line.=.trim($line);.if.($line
36980 20 26 26 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 .&&.preg_match('{^\s*(\S+).*?(\S
369a0 2b 29 5c 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 +)\s*$}',.$line,.$match)).{.if.(
369c0 69 73 73 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 isset($match[1]).&&.isset($match
369e0 5b 32 5d 29 20 26 26 20 24 6d 61 74 63 68 5b 32 5d 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 72 75 [2]).&&.$match[2].===.$this->tru
36a00 6e 6b 50 61 74 68 20 2e 20 27 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b nkPath...'/').{.$this->branches[
36a20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 74 68 5d 20 3d 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 $this->trunkPath].=.$this->build
36a40 49 64 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 74 72 75 6e 6b 50 61 Identifier(.'/'...$this->trunkPa
36a60 74 68 2c 0a 24 6d 61 74 63 68 5b 31 5d 0a 29 3b 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e th,.$match[1].);.$this->rootIden
36a80 74 69 66 69 65 72 20 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 74 68 69 73 2d 3e tifier.=.$this->branches[$this->
36aa0 74 72 75 6e 6b 50 61 74 68 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 75 6e 73 65 74 trunkPath];.break;.}.}.}.}.unset
36ac0 28 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 50 ($output);..if.($this->branchesP
36ae0 61 74 68 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 ath.!==.false).{.$output.=.$this
36b00 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 24 74 ->execute('svn.ls.--verbose',.$t
36b20 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 62 72 61 6e his->baseUrl...'/'...$this->bran
36b40 63 68 65 73 50 61 74 68 29 3b 0a 69 66 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 66 6f 72 65 61 63 chesPath);.if.($output).{.foreac
36b60 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 74 72 h.($this->process->splitLines(tr
36b80 69 6d 28 24 6f 75 74 70 75 74 29 29 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d im($output)).as.$line).{.$line.=
36ba0 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 20 70 72 65 67 5f .trim($line);.if.($line.&&.preg_
36bc0 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 73 2a 24 7d 27 2c match('{^\s*(\S+).*?(\S+)\s*$}',
36be0 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 65 74 28 24 6d 61 .$line,.$match)).{.if.(isset($ma
36c00 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 29 20 26 26 20 24 tch[1]).&&.isset($match[2]).&&.$
36c20 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 2e 2f 27 29 20 7b 0a 24 74 68 69 73 2d 3e 62 72 61 6e match[2].!==.'./').{.$this->bran
36c40 63 68 65 73 5b 72 74 72 69 6d 28 24 6d 61 74 63 68 5b 32 5d 2c 20 27 2f 27 29 5d 20 3d 20 24 74 ches[rtrim($match[2],.'/')].=.$t
36c60 68 69 73 2d 3e 62 75 69 6c 64 49 64 65 6e 74 69 66 69 65 72 28 0a 27 2f 27 20 2e 20 24 74 68 69 his->buildIdentifier(.'/'...$thi
36c80 73 2d 3e 62 72 61 6e 63 68 65 73 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 6d 61 74 63 68 5b 32 s->branchesPath...'/'...$match[2
36ca0 5d 2c 0a 24 6d 61 74 63 68 5b 31 5d 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 ],.$match[1].);.}.}.}.}.}.}..ret
36cc0 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 62 6c 69 urn.$this->branches;.}.....publi
36ce0 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 49 6e 74 c.static.function.supports(IOInt
36d00 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 24 75 72 6c erface.$io,.Config.$config,.$url
36d20 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 75 72 6c 20 3d 20 73 65 6c 66 3a 3a ,.$deep.=.false).{.$url.=.self::
36d40 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 75 72 6c 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 normalizeUrl($url);.if.(preg_mat
36d60 63 68 28 27 23 28 5e 73 76 6e 3a 2f 2f 7c 5e 73 76 6e 5c 2b 73 73 68 3a 2f 2f 7c 73 76 6e 5c 2e ch('#(^svn://|^svn\+ssh://|svn\.
36d80 29 23 69 27 2c 20 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a )#i',.$url)).{.return.true;.}...
36da0 20 69 66 20 28 21 24 64 65 65 70 20 26 26 20 21 73 74 61 74 69 63 3a 3a 69 73 4c 6f 63 61 6c 55 .if.(!$deep.&&.!static::isLocalU
36dc0 72 6c 28 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 72 rl($url)).{.return.false;.}..$pr
36de0 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
36e00 74 6f 72 28 29 3b 0a 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 tor();..$exit.=.$processExecutor
36e20 2d 3e 65 78 65 63 75 74 65 28 0a 22 73 76 6e 20 69 6e 66 6f 20 2d 2d 6e 6f 6e 2d 69 6e 74 65 72 ->execute(."svn.info.--non-inter
36e40 61 63 74 69 76 65 20 7b 24 75 72 6c 7d 22 2c 0a 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 0a 29 active.{$url}",.$ignoredOutput.)
36e60 3b 0a 0a 69 66 20 28 24 65 78 69 74 20 3d 3d 3d 20 30 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 74 ;..if.($exit.===.0).{...return.t
36e80 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 24 70 rue;.}..if.(false.!==.stripos($p
36ea0 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 rocessExecutor->getErrorOutput()
36ec0 2c 20 27 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 66 61 69 6c 65 64 3a 27 29 29 20 7b 0a 0a 20 ,.'authorization.failed:')).{...
36ee0 0a 20 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 0a ..return.true;.}..return.false;.
36f00 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 73 74 61 74 69 63 20 66 75 6e 63 74 }.........protected.static.funct
36f20 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 66 73 20 3d 20 6e ion.normalizeUrl($url).{.$fs.=.n
36f40 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 69 66 20 28 24 66 73 2d 3e 69 73 41 62 73 6f ew.Filesystem();.if.($fs->isAbso
36f60 6c 75 74 65 50 61 74 68 28 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 66 69 6c 65 3a 2f lutePath($url)).{.return.'file:/
36f80 2f 27 20 2e 20 73 74 72 74 72 28 24 75 72 6c 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a /'...strtr($url,.'\\',.'/');.}..
36fa0 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 return.$url;.}...........protect
36fc0 65 64 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 ed.function.execute($command,.$u
36fe0 72 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 75 74 69 6c 29 20 rl).{.if.(null.===.$this->util).
37000 7b 0a 24 74 68 69 73 2d 3e 75 74 69 6c 20 3d 20 6e 65 77 20 53 76 6e 55 74 69 6c 28 24 74 68 69 {.$this->util.=.new.SvnUtil($thi
37020 73 2d 3e 62 61 73 65 55 72 6c 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 70 72 s->baseUrl,.$this->io,.$this->pr
37040 6f 63 65 73 73 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 ocess);.}..try.{.return.$this->u
37060 74 69 6c 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 72 6c 29 3b 0a 7d 20 til->execute($command,.$url);.}.
37080 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 0a 69 catch.(\RuntimeException.$e).{.i
370a0 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 f.(0.!==.$this->process->execute
370c0 28 27 73 76 6e 20 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 24 69 67 6e 6f 72 65 64 4f 75 74 70 75 74 ('svn.--version',.$ignoredOutput
370e0 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
37100 28 27 46 61 69 6c 65 64 20 74 6f 20 6c 6f 61 64 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c ('Failed.to.load.'.$this->url.',
37120 20 73 76 6e 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 63 68 65 63 6b 20 74 68 61 74 20 69 .svn.was.not.found,.check.that.i
37140 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 50 41 54 48 20 t.is.installed.and.in.your.PATH.
37160 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 63 65 73 73 2d env.'..."\n\n"...$this->process-
37180 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 77 20 6e 65 77 >getErrorOutput());.}..throw.new
371a0 20 5c 52 75 6e 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 .\RuntimeException(.'Repository.
371c0 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 70 72 6f 63 '.$this->url.'.could.not.be.proc
371e0 65 73 73 65 64 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 essed,.'.$e->getMessage().);.}.}
37200 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 62 75 69 ..........protected.function.bui
37220 6c 64 49 64 65 6e 74 69 66 69 65 72 28 24 62 61 73 65 44 69 72 2c 20 24 72 65 76 69 73 69 6f 6e ldIdentifier($baseDir,.$revision
37240 29 0a 7b 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 62 61 73 65 44 69 72 2c 20 27 2f 27 29 20 ).{.return.rtrim($baseDir,.'/').
37260 2e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 50 61 74 68 20 2e 20 27 2f 40 27 20 2e 20 24 72 ..$this->packagePath...'/@'...$r
37280 65 76 69 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 evision;.}.}.<?php............na
372a0 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 56 63 73 3b mespace.Composer\Repository\Vcs;
372c0 0a 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 6f 6d 70 6f ..use.Composer\Config;.use.Compo
372e0 73 65 72 5c 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 ser\IO\IOInterface;.....interfac
37300 65 20 56 63 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 e.VcsDriverInterface.{....public
37320 20 66 75 6e 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 .function.initialize();........p
37340 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
37360 61 74 69 6f 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 ation($identifier);.......public
37380 20 66 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 3b 0a 0a .function.getRootIdentifier();..
373a0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 .....public.function.getBranches
373c0 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 ();.......public.function.getTag
373e0 73 28 29 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 s();......public.function.getDis
37400 74 28 24 69 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 t($identifier);......public.func
37420 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 3b 0a 0a 0a 0a tion.getSource($identifier);....
37440 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 3b 0a 0a 0a 0a ...public.function.getUrl();....
37460 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
37480 46 69 6c 65 28 24 69 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 File($identifier);......public.f
374a0 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 unction.cleanup();...........pub
374c0 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 49 lic.static.function.supports(IOI
374e0 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 24 75 nterface.$io,.Config.$config,.$u
37500 72 6c 2c 20 24 64 65 65 70 20 3d 20 66 61 6c 73 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a rl,.$deep.=.false);.}.<?php.....
37520 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 69 .......namespace.Composer\Reposi
37540 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a tory\Vcs;..use.Composer\Config;.
37560 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 use.Composer\Json\JsonFile;.use.
37580 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
375a0 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 65 se.Composer\Util\Filesystem;.use
375c0 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 0a 0a 0a 0a 63 6c .Composer\IO\IOInterface;.....cl
375e0 61 73 73 20 48 67 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 ass.HgDriver.extends.VcsDriver.{
37600 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 .protected.$tags;.protected.$bra
37620 6e 63 68 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 nches;.protected.$rootIdentifier
37640 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 ;.protected.$repoDir;.protected.
37660 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 62 6c 69 63 $infoCache.=.array();.....public
37680 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 69 66 20 28 73 74 61 .function.initialize().{.if.(sta
376a0 74 69 63 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 tic::isLocalUrl($this->url)).{.$
376c0 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 66 69 6c this->repoDir.=.str_replace('fil
376e0 65 3a 2f 2f 27 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 20 65 6c 73 65 20 7b e://',.'',.$this->url);.}.else.{
37700 0a 24 63 61 63 68 65 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 .$cacheDir.=.$this->config->get(
37720 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 29 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 'cache-vcs-dir');.$this->repoDir
37740 20 3d 20 24 63 61 63 68 65 44 69 72 20 2e 20 27 2f 27 20 2e 20 70 72 65 67 5f 72 65 70 6c 61 63 .=.$cacheDir...'/'...preg_replac
37760 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 2d 3e 75 72 e('{[^a-z0-9]}i',.'-',.$this->ur
37780 6c 29 20 2e 20 27 2f 27 3b 0a 0a 24 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 l)...'/';..$fs.=.new.Filesystem(
377a0 29 3b 0a 24 66 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 63 );.$fs->ensureDirectoryExists($c
377c0 61 63 68 65 44 69 72 29 3b 0a 0a 69 66 20 28 21 69 73 5f 77 72 69 74 61 62 6c 65 28 64 69 72 6e acheDir);..if.(!is_writable(dirn
377e0 61 6d 65 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 ame($this->repoDir))).{.throw.ne
37800 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 63 6c 6f w.\RuntimeException('Can.not.clo
37820 6e 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 74 6f 20 61 63 63 65 73 73 20 70 61 63 6b ne.'.$this->url.'.to.access.pack
37840 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 2e 20 54 68 65 20 22 27 2e 24 63 61 63 68 65 44 69 age.information..The."'.$cacheDi
37860 72 2e 27 22 20 64 69 72 65 63 74 6f 72 79 20 69 73 20 6e 6f 74 20 77 72 69 74 61 62 6c 65 20 62 r.'".directory.is.not.writable.b
37880 79 20 74 68 65 20 63 75 72 72 65 6e 74 20 75 73 65 72 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 y.the.current.user.');.}....if.(
378a0 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 20 26 26 20 30 20 3d 3d 3d 20 is_dir($this->repoDir).&&.0.===.
378c0 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 73 75 6d 6d $this->process->execute('hg.summ
378e0 61 72 79 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 29 20 ary',.$output,.$this->repoDir)).
37900 7b 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 {.if.(0.!==.$this->process->exec
37920 75 74 65 28 27 68 67 20 70 75 6c 6c 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 ute('hg.pull',.$output,.$this->r
37940 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 65 72 epoDir)).{.$this->io->write('<er
37960 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 75 72 ror>Failed.to.update.'.$this->ur
37980 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 74 68 l.',.package.information.from.th
379a0 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 28 27 is.repository.may.be.outdated.('
379c0 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 74 28 .$this->process->getErrorOutput(
379e0 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 66 73 ).')</error>');.}.}.else.{...$fs
37a00 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 ->removeDirectory($this->repoDir
37a20 29 3b 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 );..if.(0.!==.$this->process->ex
37a40 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 63 6c 6f 6e 65 20 2d 2d 6e 6f 75 70 64 61 ecute(sprintf('hg.clone.--noupda
37a60 74 65 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 te.%s.%s',.escapeshellarg($this-
37a80 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
37aa0 6f 44 69 72 29 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 63 61 63 68 65 44 69 72 29 29 20 7b 0a 24 oDir)),.$output,.$cacheDir)).{.$
37ac0 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 6f output.=.$this->process->getErro
37ae0 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 6f rOutput();..if.(0.!==.$this->pro
37b00 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 24 69 cess->execute('hg.--version',.$i
37b20 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 6e 74 gnoredOutput)).{.throw.new.\Runt
37b40 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 27 2e imeException('Failed.to.clone.'.
37b60 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2c 20 68 67 20 77 61 73 20 6e 6f 74 20 66 6f 75 6e 64 2c 20 $this->url.',.hg.was.not.found,.
37b80 63 68 65 63 6b 20 74 68 61 74 20 69 74 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 20 61 6e 64 20 69 check.that.it.is.installed.and.i
37ba0 6e 20 79 6f 75 72 20 50 41 54 48 20 65 6e 76 2e 27 20 2e 20 22 5c 6e 5c 6e 22 20 2e 20 24 74 68 n.your.PATH.env.'..."\n\n"...$th
37bc0 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a is->process->getErrorOutput());.
37be0 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 }..throw.new.\RuntimeException('
37c00 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 27 2c 20 Failed.to.clone.'.$this->url.',.
37c20 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 69 74 27 could.not.read.packages.from.it'
37c40 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 74 68 69 ..."\n\n"..$output);.}.}.}..$thi
37c60 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 68 65 73 s->getTags();.$this->getBranches
37c80 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f ();.}.....public.function.getRoo
37ca0 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 24 74 68 tIdentifier().{.if.(null.===.$th
37cc0 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 70 72 6f is->rootIdentifier).{.$this->pro
37ce0 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 74 69 70 20 2d 2d cess->execute(sprintf('hg.tip.--
37d00 74 65 6d 70 6c 61 74 65 20 22 7b 6e 6f 64 65 7d 22 27 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 template."{node}"'),.$output,.$t
37d20 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->
37d40 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
37d60 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 6f 75 74 70 75 74 5b 30 5d his->rootIdentifier.=.$output[0]
37d80 3b 0a 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 ;.}..return.$this->rootIdentifie
37da0 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 55 72 6c 28 r;.}.....public.function.getUrl(
37dc0 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 0a 0a 70 75 62 ).{.return.$this->url;.}.....pub
37de0 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 6e 74 69 66 69 lic.function.getSource($identifi
37e00 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 3e 20 27 68 67 er).{.return.array('type'.=>.'hg
37e20 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 72 65 ',.'url'.=>.$this->getUrl(),.'re
37e40 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 0a 0a 0a 0a 0a ference'.=>.$identifier);.}.....
37e60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 74 28 24 69 64 65 6e 74 69 66 public.function.getDist($identif
37e80 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 75 62 6c 69 63 ier).{.return.null;.}.....public
37ea0 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 6e .function.getComposerInformation
37ec0 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 73 ($identifier).{.if.(!isset($this
37ee0 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 74 68 ->infoCache[$identifier])).{.$th
37f00 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 68 67 is->process->execute(sprintf('hg
37f20 20 63 61 74 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 .cat.-r.%s.composer.json',.escap
37f40 65 73 68 65 6c 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 eshellarg($identifier)),.$compos
37f60 65 72 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 0a 69 66 20 28 21 74 72 69 6d 28 er,.$this->repoDir);..if.(!trim(
37f80 24 63 6f 6d 70 6f 73 65 72 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 70 6f 73 $composer)).{.return;.}..$compos
37fa0 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 63 6f 6d 70 6f 73 er.=.JsonFile::parseJson($compos
37fc0 65 72 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 er,.$identifier);..if.(!isset($c
37fe0 6f 6d 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 omposer['time'])).{.$this->proce
38000 73 73 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 6c 6f 67 20 2d 2d 74 65 ss->execute(sprintf('hg.log.--te
38020 6d 70 6c 61 74 65 20 22 7b 64 61 74 65 7c 72 66 63 33 33 33 39 64 61 74 65 7d 22 20 2d 72 20 25 mplate."{date|rfc3339date}".-r.%
38040 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 66 69 65 72 29 29 s',.escapeshellarg($identifier))
38060 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 24 64 61 74 ,.$output,.$this->repoDir);.$dat
38080 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 29 2c e.=.new.\DateTime(trim($output),
380a0 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 63 6f 6d .new.\DateTimeZone('UTC'));.$com
380c0 70 6f 73 65 72 5b 27 74 69 6d 65 27 5d 20 3d 20 24 64 61 74 65 2d 3e 66 6f 72 6d 61 74 28 27 59 poser['time'].=.$date->format('Y
380e0 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 -m-d.H:i:s');.}.$this->infoCache
38100 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 7d 0a 0a 72 65 [$identifier].=.$composer;.}..re
38120 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 68 65 5b 24 69 64 65 6e 74 69 66 69 65 turn.$this->infoCache[$identifie
38140 72 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 r];.}.....public.function.getTag
38160 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 67 73 29 20 s().{.if.(null.===.$this->tags).
38180 7b 0a 24 74 61 67 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 {.$tags.=.array();..$this->proce
381a0 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 74 61 67 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 ss->execute('hg.tags',.$output,.
381c0 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d $this->repoDir);.foreach.($this-
381e0 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 >process->splitLines($output).as
38200 20 24 74 61 67 29 20 7b 0a 69 66 20 28 24 74 61 67 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 .$tag).{.if.($tag.&&.preg_match(
38220 27 28 5e 28 5b 5e 5c 73 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 2e 2a 29 24 29 27 2c 20 24 74 61 67 2c '(^([^\s]+)\s+\d+:(.*)$)',.$tag,
38240 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 61 67 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 .$match)).{.$tags[$match[1]].=.$
38260 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 75 6e 73 65 74 28 24 74 61 67 73 5b 27 74 69 70 27 5d match[2];.}.}.unset($tags['tip']
38280 29 3b 0a 0a 24 74 68 69 73 2d 3e 74 61 67 73 20 3d 20 24 74 61 67 73 3b 0a 7d 0a 0a 72 65 74 75 );..$this->tags.=.$tags;.}..retu
382a0 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 6e rn.$this->tags;.}.....public.fun
382c0 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 3d ction.getBranches().{.if.(null.=
382e0 3d 3d 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 ==.$this->branches).{.$branches.
38300 3d 20 61 72 72 61 79 28 29 3b 0a 24 62 6f 6f 6b 6d 61 72 6b 73 20 3d 20 61 72 72 61 79 28 29 3b =.array();.$bookmarks.=.array();
38320 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 62 72 ..$this->process->execute('hg.br
38340 61 6e 63 68 65 73 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 anches',.$output,.$this->repoDir
38360 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 73 70 6c 69 );.foreach.($this->process->spli
38380 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 tLines($output).as.$branch).{.if
383a0 20 28 24 62 72 61 6e 63 68 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 5b 5e 5c 73 .($branch.&&.preg_match('(^([^\s
383c0 5d 2b 29 5c 73 2b 5c 64 2b 3a 28 5b 61 2d 66 30 2d 39 5d 2b 29 29 27 2c 20 24 62 72 61 6e 63 68 ]+)\s+\d+:([a-f0-9]+))',.$branch
383e0 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 5b 24 6d 61 74 63 68 5b 31 5d ,.$match)).{.$branches[$match[1]
38400 5d 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 ].=.$match[2];.}.}..$this->proce
38420 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 62 6f 6f 6b 6d 61 72 6b 73 27 2c 20 24 6f 75 74 ss->execute('hg.bookmarks',.$out
38440 70 75 74 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 44 69 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 put,.$this->repoDir);.foreach.($
38460 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
38480 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 20 t).as.$branch).{.if.($branch.&&.
384a0 70 72 65 67 5f 6d 61 74 63 68 28 27 28 5e 28 3f 3a 5b 5c 73 2a 5d 2a 29 28 5b 5e 5c 73 5d 2b 29 preg_match('(^(?:[\s*]*)([^\s]+)
384c0 5c 73 2b 5c 64 2b 3a 28 2e 2a 29 24 29 27 2c 20 24 62 72 61 6e 63 68 2c 20 24 6d 61 74 63 68 29 \s+\d+:(.*)$)',.$branch,.$match)
384e0 29 20 7b 0a 24 62 6f 6f 6b 6d 61 72 6b 73 5b 24 6d 61 74 63 68 5b 31 5d 5d 20 3d 20 24 6d 61 74 ).{.$bookmarks[$match[1]].=.$mat
38500 63 68 5b 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 ch[2];.}.}....$this->branches.=.
38520 61 72 72 61 79 5f 6d 65 72 67 65 28 24 62 6f 6f 6b 6d 61 72 6b 73 2c 20 24 62 72 61 6e 63 68 65 array_merge($bookmarks,.$branche
38540 73 29 3b 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 s);.}..return.$this->branches;.}
38560 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 70 70 .....public.static.function.supp
38580 6f 72 74 73 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f orts(IOInterface.$io,.Config.$co
385a0 6e 66 69 67 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 nfig,.$url,.$deep.=.false).{.if.
385c0 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 28 5e 28 3f 3a 68 74 74 70 73 3f 7c 73 73 68 29 3a 2f (preg_match('#(^(?:https?|ssh):/
385e0 2f 28 3f 3a 5b 5e 40 5d 40 29 3f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 7c 68 74 74 70 73 3a 2f /(?:[^@]@)?bitbucket.org|https:/
38600 2f 28 3f 3a 2e 2a 3f 29 5c 2e 6b 69 6c 6e 68 67 2e 63 6f 6d 29 23 69 27 2c 20 24 75 72 6c 29 29 /(?:.*?)\.kilnhg.com)#i',.$url))
38620 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 73 74 61 74 69 63 3a .{.return.true;.}....if.(static:
38640 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 75 72 6c 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 :isLocalUrl($url)).{.if.(!is_dir
38660 28 24 75 72 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 ($url)).{.throw.new.\RuntimeExce
38680 70 74 69 6f 6e 28 27 44 69 72 65 63 74 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 3a ption('Directory.does.not.exist:
386a0 20 27 2e 24 75 72 6c 29 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 .'.$url);.}..$process.=.new.Proc
386c0 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 essExecutor();.$url.=.str_replac
386e0 65 28 27 66 69 6c 65 3a 2f 2f 27 2c 20 27 27 2c 20 24 75 72 6c 29 3b 0a 0a 20 69 66 20 28 24 70 e('file://',.'',.$url);...if.($p
38700 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 73 75 6d 6d 61 72 79 27 2c 20 24 6f rocess->execute('hg.summary',.$o
38720 75 74 70 75 74 2c 20 24 75 72 6c 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 utput,.$url).===.0).{.return.tru
38740 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 64 65 65 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c e;.}.}..if.(!$deep).{.return.fal
38760 73 65 3b 0a 7d 0a 0a 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 3d 20 6e 65 77 20 50 72 se;.}..$processExecutor.=.new.Pr
38780 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 24 65 78 69 74 20 3d 20 24 70 72 6f 63 65 73 ocessExecutor();.$exit.=.$proces
387a0 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 73 70 72 69 6e 74 66 28 27 68 67 20 69 sExecutor->execute(sprintf('hg.i
387c0 64 65 6e 74 69 66 79 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 75 72 6c dentify.%s',.escapeshellarg($url
387e0 29 29 2c 20 24 69 67 6e 6f 72 65 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 20 3d 3d 3d )),.$ignored);..return.$exit.===
38800 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 .0;.}.}.<?php............namespa
38820 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 3b 0a 0a 75 73 65 ce.Composer\Repository\Vcs;..use
38840 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 .Composer\Downloader\TransportEx
38860 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 ception;.use.Composer\Config;.us
38880 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
388a0 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 73 omposer\Util\ProcessExecutor;.us
388c0 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
388e0 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 56 63 73 44 72 69 76 65 72 ;.......abstract.class.VcsDriver
38900 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b .implements.VcsDriverInterface.{
38920 0a 70 72 6f 74 65 63 74 65 64 20 24 75 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 72 69 67 .protected.$url;.protected.$orig
38940 69 6e 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 inUrl;.protected.$repoConfig;.pr
38960 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;.
38980 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 protected.$process;.protected.$r
389a0 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c emoteFilesystem;...........final
389c0 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 .public.function.__construct(arr
389e0 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,
38a00 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 .Config.$config,.ProcessExecutor
38a20 20 24 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 .$process.=.null,.RemoteFilesyst
38a40 65 6d 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a em.$remoteFilesystem.=.null).{..
38a60 69 66 20 28 73 65 6c 66 3a 3a 69 73 4c 6f 63 61 6c 55 72 6c 28 24 72 65 70 6f 43 6f 6e 66 69 67 if.(self::isLocalUrl($repoConfig
38a80 5b 27 75 72 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 ['url'])).{.$repoConfig['url'].=
38aa0 20 72 65 61 6c 70 61 74 68 28 0a 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5e 66 69 6c 65 3a .realpath(.preg_replace('/^file:
38ac0 5c 2f 5c 2f 2f 27 2c 20 27 27 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 0a \/\//',.'',.$repoConfig['url']).
38ae0 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 );.}..$this->url.=.$repoConfig['
38b00 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 24 72 65 70 6f 43 url'];.$this->originUrl.=.$repoC
38b20 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 20 onfig['url'];.$this->repoConfig.
38b40 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a =.$repoConfig;.$this->io.=.$io;.
38b60 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 3e $this->config.=.$config;.$this->
38b80 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
38ba0 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c sExecutor($io);.$this->remoteFil
38bc0 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 20 3f 3a 20 6e esystem.=.$remoteFilesystem.?:.n
38be0 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 0a 0a 0a 0a 0a ew.RemoteFilesystem($io);.}.....
38c00 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 28 public.function.hasComposerFile(
38c20 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 20 28 62 6f 6f $identifier).{.try.{.return.(boo
38c40 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 61 74 69 6f 6e l).$this->getComposerInformation
38c60 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 6e 73 70 6f 72 ($identifier);.}.catch.(Transpor
38c80 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 66 61 6c 73 65 tException.$e).{.}..return.false
38ca0 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 67 ;.}.........protected.function.g
38cc0 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 6c 6f 61 64 65 etScheme().{.if.(extension_loade
38ce0 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 70 73 27 3b 0a d('openssl')).{.return.'https';.
38d00 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 0a 70 72 6f 74 }..return.'http';.}.........prot
38d20 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 24 75 72 6c 29 ected.function.getContents($url)
38d40 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 73 79 73 74 65 .{.return.$this->remoteFilesyste
38d60 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 6e 55 72 6c 2c m->getContents($this->originUrl,
38d80 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 .$url,.false);.}........protecte
38da0 64 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 d.static.function.isLocalUrl($ur
38dc0 6c 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 l).{.return.(bool).preg_match('{
38de0 5e 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 ^(file://|/|[a-z]:[\\\\/])}i',.$
38e00 75 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 url);.}.....public.function.clea
38e20 6e 75 70 28 29 0a 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a nup().{.return;.}.}.<?php.......
38e40 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
38e60 72 79 5c 56 63 73 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 ry\Vcs;..use.Composer\Config;.us
38e80 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
38ea0 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
38ec0 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
38ee0 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
38f00 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;
38f20 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.
38f40 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
38f60 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
38f80 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('
38fa0 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/([^/]+)
38fc0 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
38fe0 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
39000 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
39020 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';
39040 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
39060 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-
39080 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.=.$
390a0 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 this->getScheme()...'://bitbucke
390c0 74 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 t.org/api/1.0/repositories/'.$th
390e0 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.
39100 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
39120 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
39140 6f 75 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 69 66 20 28 61 72 72 61 79 28 29 20 ource),.$resource);.if.(array().
39160 3d 3d 3d 20 24 72 65 70 6f 44 61 74 61 20 7c 7c 20 21 69 73 73 65 74 28 24 72 65 70 6f 44 61 74 ===.$repoData.||.!isset($repoDat
39180 61 5b 27 74 69 70 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 a['tip'])).{.throw.new.\RuntimeE
391a0 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 75 72 6c 2e 27 20 64 6f 65 73 20 6e 6f 74 20 61 xception($this->url.'.does.not.a
391c0 70 70 65 61 72 20 74 6f 20 62 65 20 61 20 6d 65 72 63 75 72 69 61 6c 20 72 65 70 6f 73 69 74 6f ppear.to.be.a.mercurial.reposito
391e0 72 79 2c 20 75 73 65 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 2e 67 69 74 20 69 66 20 74 68 ry,.use.'.$this->url.'.git.if.th
39200 69 73 20 69 73 20 61 20 67 69 74 20 62 69 74 62 75 63 6b 65 74 20 72 65 70 6f 73 69 74 6f 72 79 is.is.a.git.bitbucket.repository
39220 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 20 3d 20 24 72 ');.}.$this->rootIdentifier.=.$r
39240 65 70 6f 44 61 74 61 5b 27 74 69 70 27 5d 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 0a 72 epoData['tip']['raw_node'];.}..r
39260 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 0a eturn.$this->rootIdentifier;.}..
39280 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 65 ...public.function.getUrl().{.re
392a0 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 75 turn.$this->url;.}.....public.fu
392c0 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 0a nction.getSource($identifier).{.
392e0 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 79 70 65 27 20 3d 3e 20 27 68 67 27 2c 20 27 75 72 return.array('type'.=>.'hg',.'ur
39300 6c 27 20 3d 3e 20 24 74 68 69 73 2d 3e 67 65 74 55 72 6c 28 29 2c 20 27 72 65 66 65 72 65 6e 63 l'.=>.$this->getUrl(),.'referenc
39320 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 e'.=>.$identifier);.}.....public
39340 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 29 0a 7b .function.getDist($identifier).{
39360 0a 24 75 72 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f .$url.=.$this->getScheme()...':/
39380 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 27 2f /bitbucket.org/'.$this->owner.'/
393a0 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 2e 27 2f 67 65 74 2f 27 2e 24 69 64 65 '.$this->repository.'/get/'.$ide
393c0 6e 74 69 66 69 65 72 2e 27 2e 7a 69 70 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 74 ntifier.'.zip';..return.array('t
393e0 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 20 27 72 ype'.=>.'zip',.'url'.=>.$url,.'r
39400 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 2c 20 27 73 68 61 73 75 eference'.=>.$identifier,.'shasu
39420 6d 27 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 m'.=>.'');.}.....public.function
39440 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 .getComposerInformation($identif
39460 69 65 72 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 66 6f 43 61 63 ier).{.if.(!isset($this->infoCac
39480 68 65 5b 24 69 64 65 6e 74 69 66 69 65 72 5d 29 29 20 7b 0a 24 72 65 73 6f 75 72 63 65 20 3d 20 he[$identifier])).{.$resource.=.
394a0 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 62 69 74 62 75 63 6b $this->getScheme()...'://bitbuck
394c0 65 74 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 et.org/api/1.0/repositories/'.$t
394e0 68 69 73 2d 3e 6f 77 6e 65 72 2e 27 2f 27 2e 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 his->owner.'/'.$this->repository
39500 2e 27 2f 73 72 63 2f 27 2e 24 69 64 65 6e 74 69 66 69 65 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e .'/src/'.$identifier.'/composer.
39520 6a 73 6f 6e 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 61 72 json';.$repoData.=.JsonFile::par
39540 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
39560 72 63 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 0a 0a 20 0a 20 0a 20 0a 0a 69 66 20 28 21 rce),.$resource);..........if.(!
39580 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 27 64 61 74 61 27 2c 20 24 72 65 70 6f 44 61 array_key_exists('data',.$repoDa
395a0 74 61 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 ta)).{.return;.}..$composer.=.Js
395c0 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 72 65 70 6f 44 61 74 61 5b 27 64 61 74 onFile::parseJson($repoData['dat
395e0 61 27 5d 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 a'],.$resource);..if.(!isset($co
39600 6d 70 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 mposer['time'])).{.$resource.=.$
39620 74 68 69 73 2d 3e 67 65 74 53 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 this->getScheme()...'://bitbucke
39640 74 2e 6f 72 67 2f 61 70 69 2f 31 2e 30 2f 72 65 70 6f 73 69 74 6f 72 69 65 73 2f 27 2e 24 74 68 t.org/api/1.0/repositories/'.$th
39660 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.
39680 27 2f 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 '/changesets/'.$identifier;.$cha
396a0 6e 67 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 ngeset.=.JsonFile::parseJson($th
396c0 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
396e0 6f 75 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 ource);.$composer['time'].=.$cha
39700 6e 67 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 ngeset['timestamp'];.}.$this->in
39720 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 72 foCache[$identifier].=.$composer
39740 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 64 ;.}..return.$this->infoCache[$id
39760 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 6e entifier];.}.....public.function
39780 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 2d .getTags().{.if.(null.===.$this-
397a0 3e 74 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 >tags).{.$resource.=.$this->getS
397c0 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 61 70 69 2f cheme()...'://bitbucket.org/api/
397e0 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 65 72 2e 1.0/repositories/'.$this->owner.
39800 27 2f 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 '/'.$this->repository.'/tags';.$
39820 74 61 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 tagsData.=.JsonFile::parseJson($
39840 74 68 69 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 72 65 73 6f 75 72 63 65 29 2c 20 24 72 this->getContents($resource),.$r
39860 65 73 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 esource);.$this->tags.=.array();
39880 0a 66 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 .foreach.($tagsData.as.$tag.=>.$
398a0 64 61 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 data).{.$this->tags[$tag].=.$dat
398c0 61 5b 27 72 61 77 5f 6e 6f 64 65 27 5d 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 74 61 a['raw_node'];.}.unset($this->ta
398e0 67 73 5b 27 74 69 70 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 67 gs['tip']);.}..return.$this->tag
39900 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 72 61 6e s;.}.....public.function.getBran
39920 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 62 72 61 ches().{.if.(null.===.$this->bra
39940 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 65 74 53 nches).{.$resource.=.$this->getS
39960 63 68 65 6d 65 28 29 20 2e 20 27 3a 2f 2f 62 69 74 62 75 63 6b 65 74 2e 6f 72 67 2f 61 70 69 2f cheme()...'://bitbucket.org/api/
39980 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 65 72 2e 1.0/repositories/'.$this->owner.
399a0 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 68 65 73 '/'.$this->repository.'/branches
399c0 27 3b 0a 24 62 72 61 6e 63 68 44 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 ';.$branchData.=.JsonFile::parse
399e0 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 63 Json($this->getContents($resourc
39a00 65 29 2c 20 24 72 65 73 6f 75 72 63 65 29 3b 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 e),.$resource);.$this->branches.
39a20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 62 72 61 6e 63 68 44 61 74 61 20 =.array();.foreach.($branchData.
39a40 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 3e 62 72 as.$branch.=>.$data).{.$this->br
39a60 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 6e 6f 64 anches[$branch].=.$data['raw_nod
39a80 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 68 65 73 e'];.}.}..return.$this->branches
39aa0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 ;.}.....public.static.function.s
39ac0 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 43 6f 6e 66 69 67 20 upports(IOInterface.$io,.Config.
39ae0 24 63 6f 6e 66 69 67 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 $config,.$url,.$deep.=.false).{.
39b00 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 68 74 74 70 73 3a 2f 2f 62 69 74 62 75 if.(!preg_match('#^https://bitbu
39b20 63 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 cket\.org/([^/]+)/([^/]+)/?$#',.
39b40 24 75 72 6c 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 $url)).{.return.false;.}..if.(!e
39b60 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 29 20 7b 0a 69 66 xtension_loaded('openssl')).{.if
39b80 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d 3e 77 72 69 74 65 .($io->isVerbose()).{.$io->write
39ba0 28 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 ('Skipping.Bitbucket.hg.driver.f
39bc0 6f 72 20 27 2e 24 75 72 6c 2e 27 20 62 65 63 61 75 73 65 20 74 68 65 20 4f 70 65 6e 53 53 4c 20 or.'.$url.'.because.the.OpenSSL.
39be0 50 48 50 20 65 78 74 65 6e 73 69 6f 6e 20 69 73 20 6d 69 73 73 69 6e 67 2e 27 29 3b 0a 7d 0a 0a PHP.extension.is.missing.');.}..
39c00 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a return.false;.}..return.true;.}.
39c20 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
39c40 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 poser\Repository;.........class.
39c60 49 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 InstalledArrayRepository.extends
39c80 20 57 72 69 74 61 62 6c 65 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 .WritableArrayRepository.impleme
39ca0 6e 74 73 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 nts.InstalledRepositoryInterface
39cc0 0a 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 .{.}.<?php............namespace.
39ce0 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 Composer\Repository;.......class
39d00 20 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 69 74 79 45 78 63 65 70 74 69 6f 6e 20 65 78 74 .RepositorySecurityException.ext
39d20 65 6e 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ends.\Exception.{.}.<?php.......
39d40 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
39d60 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 41 6c 69 61 73 50 ry;..use.Composer\Package\AliasP
39d80 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 50 61 63 ackage;.use.Composer\Package\Pac
39da0 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 53 74 72 kageInterface;.....interface.Str
39dc0 65 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e eamableRepositoryInterface.exten
39de0 64 73 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a ds.RepositoryInterface.{........
39e00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 .............public.function.get
39e20 4d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 MinimalPackages();........public
39e40 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 .function.loadPackage(array.$dat
39e60 61 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 6c 6f 61 64 a);.........public.function.load
39e80 41 6c 69 61 73 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 50 61 63 6b 61 67 AliasPackage(array.$data,.Packag
39ea0 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a eInterface.$aliasOf);.}.<?php...
39ec0 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
39ee0 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 61 64 65 72 sitory;..use.Composer\Downloader
39f00 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 70 6f 73 65 \TransportException;.use.Compose
39f20 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 74 65 72 66 r\Repository\Vcs\VcsDriverInterf
39f40 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f ace;.use.Composer\Package\Versio
39f60 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 61 n\VersionParser;.use.Composer\Pa
39f80 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f ckage\Loader\ArrayLoader;.use.Co
39fa0 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 56 61 6c 69 64 61 74 69 6e 67 mposer\Package\Loader\Validating
39fc0 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 ArrayLoader;.use.Composer\Packag
39fe0 65 5c 4c 6f 61 64 65 72 5c 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e e\Loader\InvalidPackageException
3a000 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 4c 6f ;.use.Composer\Package\Loader\Lo
3a020 61 64 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e aderInterface;.use.Composer\Even
3a040 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 tDispatcher\EventDispatcher;.use
3a060 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 6f .Composer\IO\IOInterface;.use.Co
3a080 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 6f mposer\Config;.....class.VcsRepo
3a0a0 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 7b sitory.extends.ArrayRepository.{
3a0c0 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 6b .protected.$url;.protected.$pack
3a0e0 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 6f ageName;.protected.$verbose;.pro
3a100 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 70 tected.$io;.protected.$config;.p
3a120 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 74 rotected.$versionParser;.protect
3a140 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f ed.$type;.protected.$loader;.pro
3a160 74 65 63 74 65 64 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 tected.$repoConfig;.protected.$b
3a180 72 61 6e 63 68 45 72 72 6f 72 4f 63 63 75 72 72 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 75 62 ranchErrorOccurred.=.false;..pub
3a1a0 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 24 lic.function.__construct(array.$
3a1c0 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 20 43 6f 6e repoConfig,.IOInterface.$io,.Con
3a1e0 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 24 64 69 fig.$config,.EventDispatcher.$di
3a200 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 64 72 69 76 65 72 73 20 spatcher.=.null,.array.$drivers.
3a220 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 72 69 76 65 72 73 20 3d 20 24 64 72 69 76 =.null).{.$this->drivers.=.$driv
3a240 65 72 73 20 3f 3a 20 61 72 72 61 79 28 0a 27 67 69 74 68 75 62 27 20 3d 3e 20 27 43 6f 6d 70 6f ers.?:.array(.'github'.=>.'Compo
3a260 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 48 75 62 44 72 69 76 65 72 27 ser\Repository\Vcs\GitHubDriver'
3a280 2c 0a 27 67 69 74 2d 62 69 74 62 75 63 6b 65 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 ,.'git-bitbucket'.=>.'Composer\R
3a2a0 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 47 69 74 42 69 74 62 75 63 6b 65 74 44 72 69 76 65 72 epository\Vcs\GitBitbucketDriver
3a2c0 27 2c 0a 27 67 69 74 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 ',.'git'.=>.'Composer\Repository
3a2e0 5c 56 63 73 5c 47 69 74 44 72 69 76 65 72 27 2c 0a 27 68 67 2d 62 69 74 62 75 63 6b 65 74 27 20 \Vcs\GitDriver',.'hg-bitbucket'.
3a300 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 48 67 42 69 =>.'Composer\Repository\Vcs\HgBi
3a320 74 62 75 63 6b 65 74 44 72 69 76 65 72 27 2c 0a 27 68 67 27 20 3d 3e 20 27 43 6f 6d 70 6f 73 65 tbucketDriver',.'hg'.=>.'Compose
3a340 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 48 67 44 72 69 76 65 72 27 2c 0a 27 70 65 72 r\Repository\Vcs\HgDriver',.'per
3a360 66 6f 72 63 65 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 force'.=>.'Composer\Repository\V
3a380 63 73 5c 50 65 72 66 6f 72 63 65 44 72 69 76 65 72 27 2c 0a 0a 20 27 73 76 6e 27 20 3d 3e 20 27 cs\PerforceDriver',...'svn'.=>.'
3a3a0 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 6e 44 72 69 76 65 Composer\Repository\Vcs\SvnDrive
3a3c0 72 27 2c 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 r',.);..$this->url.=.$repoConfig
3a3e0 5b 27 75 72 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d ['url'];.$this->io.=.$io;.$this-
3a400 3e 74 79 70 65 20 3d 20 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 79 70 65 27 >type.=.isset($repoConfig['type'
3a420 5d 29 20 3f 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 74 79 70 65 27 5d 20 3a 20 27 76 63 73 27 ]).?.$repoConfig['type'].:.'vcs'
3a440 3b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 3d 20 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 ;.$this->verbose.=.$io->isVerbos
3a460 65 28 29 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 e();.$this->config.=.$config;.$t
3a480 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 7d his->repoConfig.=.$repoConfig;.}
3a4a0 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 43 6f 6e 66 69 67 28 ..public.function.getRepoConfig(
3a4c0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 3b 0a 7d 0a ).{.return.$this->repoConfig;.}.
3a4e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 6f 61 64 65 72 28 4c 6f 61 64 65 .public.function.setLoader(Loade
3a500 72 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 rInterface.$loader).{.$this->loa
3a520 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f der.=.$loader;.}..public.functio
3a540 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-
3a560 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
3a580 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];.
3a5a0 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 72 65 70 6f $driver.=.new.$class($this->repo
3a5c0 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 Config,.$this->io,.$this->config
3a5e0 29 3b 0a 24 64 72 69 76 65 72 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 72 65 74 75 72 );.$driver->initialize();..retur
3a600 6e 20 24 64 72 69 76 65 72 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 72 n.$driver;.}..foreach.($this->dr
3a620 69 76 65 72 73 20 61 73 20 24 64 72 69 76 65 72 29 20 7b 0a 69 66 20 28 24 64 72 69 76 65 72 3a ivers.as.$driver).{.if.($driver:
3a640 3a 73 75 70 70 6f 72 74 73 28 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 :supports($this->io,.$this->conf
3a660 69 67 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 29 20 7b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 ig,.$this->url)).{.$driver.=.new
3a680 20 24 64 72 69 76 65 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 .$driver($this->repoConfig,.$thi
3a6a0 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 72 2d 3e s->io,.$this->config);.$driver->
3a6c0 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 3b 0a 7d initialize();..return.$driver;.}
3a6e0 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 73 20 24 .}..foreach.($this->drivers.as.$
3a700 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 74 73 28 driver).{.if.($driver::supports(
3a720 24 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d $this->io,.$this->config,.$this-
3a740 3e 75 72 6c 2c 20 74 72 75 65 29 29 20 7b 0a 24 64 72 69 76 65 72 20 3d 20 6e 65 77 20 24 64 72 >url,.true)).{.$driver.=.new.$dr
3a760 69 76 65 72 28 24 74 68 69 73 2d 3e 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 69 iver($this->repoConfig,.$this->i
3a780 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 72 2d 3e 69 6e 69 74 o,.$this->config);.$driver->init
3a7a0 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 3b 0a 7d 0a 7d 0a 7d ialize();..return.$driver;.}.}.}
3a7c0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 64 49 6e 76 61 6c 69 64 42 72 61 6e ..public.function.hadInvalidBran
3a7e0 63 68 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 45 72 72 ches().{.return.$this->branchErr
3a800 6f 72 4f 63 63 75 72 72 65 64 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f orOccurred;.}..protected.functio
3a820 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
3a840 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
3a860 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()
3a880 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
3a8a0 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
3a8c0 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.
3a8e0 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
3a900 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 69 66 20 28 Parser.=.new.VersionParser;.if.(
3a920 21 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 20 !$this->loader).{.$this->loader.
3a940 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e =.new.ArrayLoader($this->version
3a960 50 61 72 73 65 72 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 24 64 72 69 76 65 72 2d 3e 68 Parser);.}..try.{.if.($driver->h
3a980 61 73 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 24 64 72 69 76 65 72 2d 3e 67 65 74 52 6f 6f 74 49 asComposerFile($driver->getRootI
3a9a0 64 65 6e 74 69 66 69 65 72 28 29 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 24 64 72 69 76 65 72 2d dentifier())).{.$data.=.$driver-
3a9c0 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 64 72 69 76 65 72 2d >getComposerInformation($driver-
3a9e0 3e 67 65 74 52 6f 6f 74 49 64 65 6e 74 69 66 69 65 72 28 29 29 3b 0a 24 74 68 69 73 2d 3e 70 61 >getRootIdentifier());.$this->pa
3aa00 63 6b 61 67 65 4e 61 6d 65 20 3d 20 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d ckageName.=.!empty($data['name']
3aa20 29 20 3f 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 7d 0a 7d 20 63 61 ).?.$data['name'].:.null;.}.}.ca
3aa40 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f tch.(\Exception.$e).{.if.($verbo
3aa60 73 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 6f 72 3e 53 se).{.$this->io->write('<error>S
3aa80 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 3e 67 65 74 52 6f 6f kipped.parsing.'.$driver->getRoo
3aaa0 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 74 4d 65 73 73 61 67 tIdentifier().',.'.$e->getMessag
3aac0 65 28 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 e().'</error>');.}.}..foreach.($
3aae0 64 72 69 76 65 72 2d 3e 67 65 74 54 61 67 73 28 29 20 61 73 20 24 74 61 67 20 3d 3e 20 24 69 64 driver->getTags().as.$tag.=>.$id
3ab00 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 6d 73 67 20 3d 20 27 52 65 61 64 69 6e 67 20 63 6f 6d 70 entifier).{.$msg.=.'Reading.comp
3ab20 6f 73 65 72 2e 6a 73 6f 6e 20 6f 66 20 3c 69 6e 66 6f 3e 27 20 2e 20 28 24 74 68 69 73 2d 3e 70 oser.json.of.<info>'...($this->p
3ab40 61 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 74 68 69 73 2d 3e 75 72 6c 29 20 2e 20 27 3c 2f 69 ackageName.?:.$this->url)...'</i
3ab60 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 24 74 61 67 20 2e 20 27 3c 2f 63 6f 6d nfo>.(<comment>'...$tag...'</com
3ab80 6d 65 6e 74 3e 29 27 3b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e ment>)';.if.($verbose).{.$this->
3aba0 69 6f 2d 3e 77 72 69 74 65 28 24 6d 73 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d io->write($msg);.}.else.{.$this-
3abc0 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 24 6d 73 67 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a >io->overwrite($msg,.false);.}..
3abe0 0a 20 24 74 61 67 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 72 65 6c 65 61 73 65 2d 27 2c ..$tag.=.str_replace('release-',
3ac00 20 27 27 2c 20 24 74 61 67 29 3b 0a 0a 69 66 20 28 21 24 70 61 72 73 65 64 54 61 67 20 3d 20 24 .'',.$tag);..if.(!$parsedTag.=.$
3ac20 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 54 61 67 28 24 74 61 67 29 29 20 7b 0a 69 66 20 28 24 this->validateTag($tag)).{.if.($
3ac40 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 3c 77 61 verbose).{.$this->io->write('<wa
3ac60 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 69 6e 76 61 rning>Skipped.tag.'.$tag.',.inva
3ac80 6c 69 64 20 74 61 67 20 6e 61 6d 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 lid.tag.name</warning>');.}.cont
3aca0 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 28 21 24 64 61 74 61 20 3d 20 24 64 72 69 inue;.}..try.{.if.(!$data.=.$dri
3acc0 76 65 72 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 ver->getComposerInformation($ide
3ace0 6e 74 69 66 69 65 72 29 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 ntifier)).{.if.($verbose).{.$thi
3ad00 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 74 s->io->write('<warning>Skipped.t
3ad20 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 3c 2f 77 ag.'.$tag.',.no.composer.file</w
3ad40 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 arning>');.}.continue;.}....if.(
3ad60 69 73 73 65 74 28 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 24 64 61 74 61 isset($data['version'])).{.$data
3ad80 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e ['version_normalized'].=.$this->
3ada0 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 64 61 74 61 5b 27 versionParser->normalize($data['
3adc0 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 64 61 74 61 5b 27 76 65 version']);.}.else.{...$data['ve
3ade0 72 73 69 6f 6e 27 5d 20 3d 20 24 74 61 67 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e rsion'].=.$tag;.$data['version_n
3ae00 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d 20 24 70 61 72 73 65 64 54 61 67 3b 0a 7d 0a 0a 0a 20 24 ormalized'].=.$parsedTag;.}....$
3ae20 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 data['version'].=.preg_replace('
3ae40 7b 5b 2e 2d 5d 3f 64 65 76 24 7d 69 27 2c 20 27 27 2c 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f {[.-]?dev$}i',.'',.$data['versio
3ae60 6e 27 5d 29 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 n']);.$data['version_normalized'
3ae80 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 5e 64 65 76 2d 7c 5b 2e 2d 5d 3f 64 ].=.preg_replace('{(^dev-|[.-]?d
3aea0 65 76 24 29 7d 69 27 2c 20 27 27 2c 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d ev$)}i',.'',.$data['version_norm
3aec0 61 6c 69 7a 65 64 27 5d 29 3b 0a 0a 0a 20 69 66 20 28 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e alized']);....if.($data['version
3aee0 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 21 3d 3d 20 24 70 61 72 73 65 64 54 61 67 29 20 7b 0a _normalized'].!==.$parsedTag).{.
3af00 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 if.($verbose).{.$this->io->write
3af20 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c ('<warning>Skipped.tag.'.$tag.',
3af40 20 74 61 67 20 28 27 2e 24 70 61 72 73 65 64 54 61 67 2e 27 29 20 64 6f 65 73 20 6e 6f 74 20 6d .tag.('.$parsedTag.').does.not.m
3af60 61 74 63 68 20 76 65 72 73 69 6f 6e 20 28 27 2e 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e atch.version.('.$data['version_n
3af80 6f 72 6d 61 6c 69 7a 65 64 27 5d 2e 27 29 20 69 6e 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 3c ormalized'].').in.composer.json<
3afa0 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 /warning>');.}.continue;.}..if.(
3afc0 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 27 49 6d $verbose).{.$this->io->write('Im
3afe0 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 5b 27 76 porting.tag.'.$tag.'.('.$data['v
3b000 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 24 74 68 ersion_normalized'].')');.}..$th
3b020 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f is->addPackage($this->loader->lo
3b040 61 64 28 24 74 68 69 73 2d 3e 70 72 65 50 72 6f 63 65 73 73 28 24 64 72 69 76 65 72 2c 20 24 64 ad($this->preProcess($driver,.$d
3b060 61 74 61 2c 20 24 69 64 65 6e 74 69 66 69 65 72 29 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 ata,.$identifier)));.}.catch.(\E
3b080 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 xception.$e).{.if.($verbose).{.$
3b0a0 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 this->io->write('<warning>Skippe
3b0c0 64 20 74 61 67 20 27 2e 24 74 61 67 2e 27 2c 20 27 2e 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 d.tag.'.$tag.',.'.($e.instanceof
3b0e0 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 3f 20 27 6e 6f 20 63 6f 6d 70 6f 73 .TransportException.?.'no.compos
3b100 65 72 20 66 69 6c 65 20 77 61 73 20 66 6f 75 6e 64 27 20 3a 20 24 65 2d 3e 67 65 74 4d 65 73 73 er.file.was.found'.:.$e->getMess
3b120 61 67 65 28 29 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 age()).'</warning>');.}.continue
3b140 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 ;.}.}..if.(!$verbose).{.$this->i
3b160 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 0a 0a 66 6f 72 65 o->overwrite('',.false);.}..fore
3b180 61 63 68 20 28 24 64 72 69 76 65 72 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 20 61 73 20 24 ach.($driver->getBranches().as.$
3b1a0 62 72 61 6e 63 68 20 3d 3e 20 24 69 64 65 6e 74 69 66 69 65 72 29 20 7b 0a 24 6d 73 67 20 3d 20 branch.=>.$identifier).{.$msg.=.
3b1c0 27 52 65 61 64 69 6e 67 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 6f 66 20 3c 69 6e 66 6f 3e 'Reading.composer.json.of.<info>
3b1e0 27 20 2e 20 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 74 68 69 73 '...($this->packageName.?:.$this
3b200 2d 3e 75 72 6c 29 20 2e 20 27 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 27 20 2e 20 ->url)...'</info>.(<comment>'...
3b220 24 62 72 61 6e 63 68 20 2e 20 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 29 27 3b 0a 69 66 20 28 24 76 65 $branch...'</comment>)';.if.($ve
3b240 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 24 6d 73 67 29 3b rbose).{.$this->io->write($msg);
3b260 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 24 .}.else.{.$this->io->overwrite($
3b280 6d 73 67 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 70 61 72 73 65 64 42 72 61 6e msg,.false);.}..if.(!$parsedBran
3b2a0 63 68 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 42 72 61 6e 63 68 28 24 62 72 61 6e ch.=.$this->validateBranch($bran
3b2c0 63 68 29 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 ch)).{.if.($verbose).{.$this->io
3b2e0 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 ->write('<warning>Skipped.branch
3b300 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 69 6e 76 61 6c 69 64 20 6e 61 6d 65 3c 2f 77 61 72 6e .'.$branch.',.invalid.name</warn
3b320 69 6e 67 3e 27 29 3b 0a 7d 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 69 66 20 ing>');.}.continue;.}..try.{.if.
3b340 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 6e (!$data.=.$driver->getComposerIn
3b360 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 76 formation($identifier)).{.if.($v
3b380 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 3c 77 61 72 erbose).{.$this->io->write('<war
3b3a0 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c ning>Skipped.branch.'.$branch.',
3b3c0 20 6e 6f 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d .no.composer.file</warning>');.}
3b3e0 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d .continue;.}....$data['version']
3b400 20 3d 20 24 62 72 61 6e 63 68 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 .=.$branch;.$data['version_norma
3b420 6c 69 7a 65 64 27 5d 20 3d 20 24 70 61 72 73 65 64 42 72 61 6e 63 68 3b 0a 0a 0a 20 69 66 20 28 lized'].=.$parsedBranch;....if.(
3b440 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 72 73 65 64 42 72 61 6e 63 68 2c 'dev-'.===.substr($parsedBranch,
3b460 20 30 2c 20 34 29 20 7c 7c 20 27 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 70 61 72 .0,.4).||.'9999999-dev'.===.$par
3b480 73 65 64 42 72 61 6e 63 68 29 20 7b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 sedBranch).{.$data['version'].=.
3b4a0 27 64 65 76 2d 27 20 2e 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 7d 20 65 6c 73 'dev-'...$data['version'];.}.els
3b4c0 65 20 7b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c e.{.$data['version'].=.preg_repl
3b4e0 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 70 61 72 73 65 64 ace('{(\.9{7})+}',.'.x',.$parsed
3b500 42 72 61 6e 63 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 Branch);.}..if.($verbose).{.$thi
3b520 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 49 6d 70 6f 72 74 69 6e 67 20 62 72 61 6e 63 68 20 27 s->io->write('Importing.branch.'
3b540 2e 24 62 72 61 6e 63 68 2e 27 20 28 27 2e 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 2e 27 .$branch.'.('.$data['version'].'
3b560 29 27 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 70 72 )');.}..$packageData.=.$this->pr
3b580 65 50 72 6f 63 65 73 73 28 24 64 72 69 76 65 72 2c 20 24 64 61 74 61 2c 20 24 69 64 65 6e 74 69 eProcess($driver,.$data,.$identi
3b5a0 66 69 65 72 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d fier);.$package.=.$this->loader-
3b5c0 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 44 61 74 61 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e >load($packageData);.if.($this->
3b5e0 6c 6f 61 64 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 loader.instanceof.ValidatingArra
3b600 79 4c 6f 61 64 65 72 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 67 65 74 57 61 72 yLoader.&&.$this->loader->getWar
3b620 6e 69 6e 67 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 50 61 63 6b nings()).{.throw.new.InvalidPack
3b640 61 67 65 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 67 65 74 45 ageException($this->loader->getE
3b660 72 72 6f 72 73 28 29 2c 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 67 65 74 57 61 72 6e 69 rrors(),.$this->loader->getWarni
3b680 6e 67 73 28 29 2c 20 24 70 61 63 6b 61 67 65 44 61 74 61 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 61 ngs(),.$packageData);.}.$this->a
3b6a0 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 ddPackage($package);.}.catch.(Tr
3b6c0 61 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 24 76 65 72 62 ansportException.$e).{.if.($verb
3b6e0 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 3c 77 61 72 6e 69 6e ose).{.$this->io->write('<warnin
3b700 67 3e 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 6e 6f g>Skipped.branch.'.$branch.',.no
3b720 20 63 6f 6d 70 6f 73 65 72 20 66 69 6c 65 20 77 61 73 20 66 6f 75 6e 64 3c 2f 77 61 72 6e 69 6e .composer.file.was.found</warnin
3b740 67 3e 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 g>');.}.continue;.}.catch.(\Exce
3b760 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 21 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 ption.$e).{.if.(!$verbose).{.$th
3b780 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 62 72 61 6e is->io->write('');.}.$this->bran
3b7a0 63 68 45 72 72 6f 72 4f 63 63 75 72 72 65 64 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 69 chErrorOccurred.=.true;.$this->i
3b7c0 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 53 6b 69 70 70 65 64 20 62 72 61 6e 63 68 20 o->write('<error>Skipped.branch.
3b7e0 27 2e 24 62 72 61 6e 63 68 2e 27 2c 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e '.$branch.',.'.$e->getMessage().
3b800 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 27 '</error>');.$this->io->write(''
3b820 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 24 64 72 69 76 65 72 2d 3e 63 6c 65 61 6e 75 );.continue;.}.}.$driver->cleanu
3b840 70 28 29 3b 0a 0a 69 66 20 28 21 24 76 65 72 62 6f 73 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f p();..if.(!$verbose).{.$this->io
3b860 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 0a 0a 69 66 20 28 21 ->overwrite('',.false);.}..if.(!
3b880 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 $this->getPackages()).{.throw.ne
3b8a0 77 20 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f w.InvalidRepositoryException('No
3b8c0 20 76 61 6c 69 64 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 77 61 73 20 66 6f 75 6e 64 20 69 .valid.composer.json.was.found.i
3b8e0 6e 20 61 6e 79 20 62 72 61 6e 63 68 20 6f 72 20 74 61 67 20 6f 66 20 27 2e 24 74 68 69 73 2d 3e n.any.branch.or.tag.of.'.$this->
3b900 75 72 6c 2e 27 2c 20 63 6f 75 6c 64 20 6e 6f 74 20 6c 6f 61 64 20 61 20 70 61 63 6b 61 67 65 20 url.',.could.not.load.a.package.
3b920 66 72 6f 6d 20 69 74 2e 27 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f from.it.');.}.}..private.functio
3b940 6e 20 70 72 65 50 72 6f 63 65 73 73 28 56 63 73 44 72 69 76 65 72 49 6e 74 65 72 66 61 63 65 20 n.preProcess(VcsDriverInterface.
3b960 24 64 72 69 76 65 72 2c 20 61 72 72 61 79 20 24 64 61 74 61 2c 20 24 69 64 65 6e 74 69 66 69 65 $driver,.array.$data,.$identifie
3b980 72 29 0a 7b 0a 0a 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 r).{...$data['name'].=.$this->pa
3b9a0 63 6b 61 67 65 4e 61 6d 65 20 3f 3a 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 3b 0a 0a 69 66 20 ckageName.?:.$data['name'];..if.
3b9c0 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 64 69 73 74 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b (!isset($data['dist'])).{.$data[
3b9e0 27 64 69 73 74 27 5d 20 3d 20 24 64 72 69 76 65 72 2d 3e 67 65 74 44 69 73 74 28 24 69 64 65 6e 'dist'].=.$driver->getDist($iden
3ba00 74 69 66 69 65 72 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 73 6f 75 tifier);.}.if.(!isset($data['sou
3ba20 72 63 65 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 20 3d 20 24 64 72 69 rce'])).{.$data['source'].=.$dri
3ba40 76 65 72 2d 3e 67 65 74 53 6f 75 72 63 65 28 24 69 64 65 6e 74 69 66 69 65 72 29 3b 0a 7d 0a 0a ver->getSource($identifier);.}..
3ba60 72 65 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f return.$data;.}..private.functio
3ba80 6e 20 76 61 6c 69 64 61 74 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 29 0a 7b 0a 74 72 79 20 n.validateBranch($branch).{.try.
3baa0 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 65 72 2d 3e 6e {.return.$this->versionParser->n
3bac0 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 62 72 61 6e 63 68 29 3b 0a 7d 20 63 61 74 63 68 ormalizeBranch($branch);.}.catch
3bae0 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
3bb00 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 se;.}..private.function.validate
3bb20 54 61 67 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 Tag($version).{.try.{.return.$th
3bb40 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 76 65 is->versionParser->normalize($ve
3bb60 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 rsion);.}.catch.(\Exception.$e).
3bb80 7b 0a 7d 0a 0a 72 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 {.}..return.false;.}.}.<?php....
3bba0 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
3bbc0 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 43 6f 6d itory;..use.Composer\Package\Com
3bbe0 70 6c 65 74 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 pletePackage;.use.Composer\Packa
3bc00 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 20 43 6f ge\Version\VersionParser;.use.Co
3bc20 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 63 65 3b 0a 0a mposer\Plugin\PluginInterface;..
3bc40 0a 0a 0a 63 6c 61 73 73 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 ...class.PlatformRepository.exte
3bc60 6e 64 73 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 0a 7b 0a 63 6f 6e 73 74 20 50 4c 41 54 nds.ArrayRepository.{.const.PLAT
3bc80 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 20 3d 20 27 7b 5e 28 3f 3a 70 68 70 28 3f FORM_PACKAGE_REGEX.=.'{^(?:php(?
3bca0 3a 2d 36 34 62 69 74 29 3f 7c 28 3f 3a 65 78 74 7c 6c 69 62 29 2d 5b 5e 2f 5d 2b 29 24 7d 69 27 :-64bit)?|(?:ext|lib)-[^/]+)$}i'
3bcc0 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 ;..protected.function.initialize
3bce0 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 76 65 72 ().{.parent::initialize();..$ver
3bd00 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 sionParser.=.new.VersionParser()
3bd20 3b 0a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 50 6c 75 67 69 6e 49 6e 74 65 72 66 ;..$prettyVersion.=.PluginInterf
3bd40 61 63 65 3a 3a 50 4c 55 47 49 4e 5f 41 50 49 5f 56 45 52 53 49 4f 4e 3b 0a 24 76 65 72 73 69 6f ace::PLUGIN_API_VERSION;.$versio
3bd60 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 n.=.$versionParser->normalize($p
3bd80 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 50 6c 75 67 69 6e 41 70 rettyVersion);.$composerPluginAp
3bda0 69 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 63 6f 6d 70 6f 73 65 i.=.new.CompletePackage('compose
3bdc0 72 2d 70 6c 75 67 69 6e 2d 61 70 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 r-plugin-api',.$version,.$pretty
3bde0 56 65 72 73 69 6f 6e 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 50 6c 75 67 69 6e 41 70 69 2d 3e 73 65 Version);.$composerPluginApi->se
3be00 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 43 6f 6d 70 6f 73 65 72 20 50 6c 75 67 69 tDescription('The.Composer.Plugi
3be20 6e 20 41 50 49 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 63 6f 6d n.API');.parent::addPackage($com
3be40 70 6f 73 65 72 50 6c 75 67 69 6e 41 70 69 29 3b 0a 0a 74 72 79 20 7b 0a 24 70 72 65 74 74 79 56 poserPluginApi);..try.{.$prettyV
3be60 65 72 73 69 6f 6e 20 3d 20 50 48 50 5f 56 45 52 53 49 4f 4e 3b 0a 24 76 65 72 73 69 6f 6e 20 3d ersion.=.PHP_VERSION;.$version.=
3be80 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 70 72 65 74 .$versionParser->normalize($pret
3bea0 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 tyVersion);.}.catch.(\Unexpected
3bec0 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 ValueException.$e).{.$prettyVers
3bee0 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5e 28 5b 5e 7e 2b 2d 5d 2b 29 2e ion.=.preg_replace('#^([^~+-]+).
3bf00 2a 24 23 27 2c 20 27 24 31 27 2c 20 50 48 50 5f 56 45 52 53 49 4f 4e 29 3b 0a 24 76 65 72 73 69 *$#',.'$1',.PHP_VERSION);.$versi
3bf20 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 on.=.$versionParser->normalize($
3bf40 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 70 68 70 20 3d 20 6e 65 77 20 43 6f prettyVersion);.}..$php.=.new.Co
3bf60 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 70 68 70 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 mpletePackage('php',.$version,.$
3bf80 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 70 68 70 2d 3e 73 65 74 44 65 73 63 72 69 70 prettyVersion);.$php->setDescrip
3bfa0 74 69 6f 6e 28 27 54 68 65 20 50 48 50 20 69 6e 74 65 72 70 72 65 74 65 72 27 29 3b 0a 70 61 72 tion('The.PHP.interpreter');.par
3bfc0 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 70 68 70 29 3b 0a 0a 69 66 20 28 50 48 50 5f ent::addPackage($php);..if.(PHP_
3bfe0 49 4e 54 5f 53 49 5a 45 20 3d 3d 3d 20 38 29 20 7b 0a 24 70 68 70 36 34 20 3d 20 6e 65 77 20 43 INT_SIZE.===.8).{.$php64.=.new.C
3c000 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 70 68 70 2d 36 34 62 69 74 27 2c 20 24 76 65 72 ompletePackage('php-64bit',.$ver
3c020 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 36 34 2d 3e 73 sion,.$prettyVersion);.$php64->s
3c040 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 72 65 74 etDescription('The.PHP.interpret
3c060 65 72 20 28 36 34 62 69 74 29 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 er.(64bit)');.parent::addPackage
3c080 28 24 70 68 70 36 34 29 3b 0a 7d 0a 0a 24 6c 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 3d ($php64);.}..$loadedExtensions.=
3c0a0 20 67 65 74 5f 6c 6f 61 64 65 64 5f 65 78 74 65 6e 73 69 6f 6e 73 28 29 3b 0a 0a 0a 20 66 6f 72 .get_loaded_extensions();....for
3c0c0 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
3c0e0 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 28 27 73 ).{.if.(in_array($name,.array('s
3c100 74 61 6e 64 61 72 64 27 2c 20 27 43 6f 72 65 27 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a tandard',.'Core'))).{.continue;.
3c120 7d 0a 0a 24 72 65 66 6c 45 78 74 20 3d 20 6e 65 77 20 5c 52 65 66 6c 65 63 74 69 6f 6e 45 78 74 }..$reflExt.=.new.\ReflectionExt
3c140 65 6e 73 69 6f 6e 28 24 6e 61 6d 65 29 3b 0a 74 72 79 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 ension($name);.try.{.$prettyVers
3c160 69 6f 6e 20 3d 20 24 72 65 66 6c 45 78 74 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 24 76 ion.=.$reflExt->getVersion();.$v
3c180 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 61 6c 69 ersion.=.$versionParser->normali
3c1a0 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 68 20 28 5c 55 6e ze($prettyVersion);.}.catch.(\Un
3c1c0 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 20 7b 0a 24 70 72 expectedValueException.$e).{.$pr
3c1e0 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 27 30 27 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 76 ettyVersion.=.'0';.$version.=.$v
3c200 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
3c220 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 ersion);.}..$packageName.=.$this
3c240 2d 3e 62 75 69 6c 64 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 6e 61 6d 65 29 3b 0a 24 65 78 74 20 ->buildPackageName($name);.$ext.
3c260 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 4e 61 =.new.CompletePackage($packageNa
3c280 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 0a 24 me,.$version,.$prettyVersion);.$
3c2a0 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 2e 24 6e 61 6d 65 ext->setDescription('The.'.$name
3c2c0 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 3a 3a 61 64 64 50 .'.PHP.extension');.parent::addP
3c2e0 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 65 61 63 68 20 28 ackage($ext);.}........foreach.(
3c300 24 6c 6f 61 64 65 64 45 78 74 65 6e 73 69 6f 6e 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 70 $loadedExtensions.as.$name).{.$p
3c320 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 73 77 69 74 63 68 20 28 24 6e 61 rettyVersion.=.null;.switch.($na
3c340 6d 65 29 20 7b 0a 63 61 73 65 20 27 63 75 72 6c 27 3a 0a 24 63 75 72 6c 56 65 72 73 69 6f 6e 20 me).{.case.'curl':.$curlVersion.
3c360 3d 20 63 75 72 6c 5f 76 65 72 73 69 6f 6e 28 29 3b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e =.curl_version();.$prettyVersion
3c380 20 3d 20 24 63 75 72 6c 56 65 72 73 69 6f 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 62 72 65 61 .=.$curlVersion['version'];.brea
3c3a0 6b 3b 0a 0a 63 61 73 65 20 27 69 63 6f 6e 76 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e k;..case.'iconv':.$prettyVersion
3c3c0 20 3d 20 49 43 4f 4e 56 5f 56 45 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 .=.ICONV_VERSION;.break;..case.'
3c3e0 69 6e 74 6c 27 3a 0a 24 6e 61 6d 65 20 3d 20 27 49 43 55 27 3b 0a 69 66 20 28 64 65 66 69 6e 65 intl':.$name.=.'ICU';.if.(define
3c400 64 28 27 49 4e 54 4c 5f 49 43 55 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 24 70 72 65 74 74 79 d('INTL_ICU_VERSION')).{.$pretty
3c420 56 65 72 73 69 6f 6e 20 3d 20 49 4e 54 4c 5f 49 43 55 5f 56 45 52 53 49 4f 4e 3b 0a 7d 20 65 6c Version.=.INTL_ICU_VERSION;.}.el
3c440 73 65 20 7b 0a 24 72 65 66 6c 65 63 74 6f 72 20 3d 20 6e 65 77 20 5c 52 65 66 6c 65 63 74 69 6f se.{.$reflector.=.new.\Reflectio
3c460 6e 45 78 74 65 6e 73 69 6f 6e 28 27 69 6e 74 6c 27 29 3b 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b nExtension('intl');..ob_start();
3c480 0a 24 72 65 66 6c 65 63 74 6f 72 2d 3e 69 6e 66 6f 28 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6f .$reflector->info();.$output.=.o
3c4a0 62 5f 67 65 74 5f 63 6c 65 61 6e 28 29 3b 0a 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 49 43 b_get_clean();..preg_match('/^IC
3c4c0 55 20 76 65 72 73 69 6f 6e 20 3d 3e 20 28 2e 2a 29 24 2f 6d 27 2c 20 24 6f 75 74 70 75 74 2c 20 U.version.=>.(.*)$/m',.$output,.
3c4e0 24 6d 61 74 63 68 65 73 29 3b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 $matches);.$prettyVersion.=.$mat
3c500 63 68 65 73 5b 31 5d 3b 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 6c 69 62 78 6d 6c ches[1];.}..break;..case.'libxml
3c520 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 4c 49 42 58 4d 4c 5f 44 4f 54 54 45 ':.$prettyVersion.=.LIBXML_DOTTE
3c540 44 5f 56 45 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 6f 70 65 6e 73 73 6c D_VERSION;.break;..case.'openssl
3c560 27 3a 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
3c580 5f 63 61 6c 6c 62 61 63 6b 28 27 7b 5e 28 3f 3a 4f 70 65 6e 53 53 4c 5c 73 2a 29 3f 28 5b 30 2d _callback('{^(?:OpenSSL\s*)?([0-
3c5a0 39 2e 5d 2b 29 28 5b 61 2d 7a 5d 3f 29 2e 2a 7d 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 9.]+)([a-z]?).*}',.function.($ma
3c5c0 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 28 65 6d 70 74 79 tch).{.return.$match[1]...(empty
3c5e0 28 24 6d 61 74 63 68 5b 32 5d 29 20 3f 20 27 27 20 3a 20 27 2e 27 2e 28 6f 72 64 28 24 6d 61 74 ($match[2]).?.''.:.'.'.(ord($mat
3c600 63 68 5b 32 5d 29 20 2d 20 39 36 29 29 3b 0a 7d 2c 20 4f 50 45 4e 53 53 4c 5f 56 45 52 53 49 4f ch[2]).-.96));.},.OPENSSL_VERSIO
3c620 4e 5f 54 45 58 54 29 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 70 63 72 65 27 3a 0a 24 70 N_TEXT);.break;..case.'pcre':.$p
3c640 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 28 27 7b 5e 28 rettyVersion.=.preg_replace('{^(
3c660 5c 53 2b 29 2e 2a 7d 27 2c 20 27 24 31 27 2c 20 50 43 52 45 5f 56 45 52 53 49 4f 4e 29 3b 0a 62 \S+).*}',.'$1',.PCRE_VERSION);.b
3c680 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 75 69 64 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 reak;..case.'uuid':.$prettyVersi
3c6a0 6f 6e 20 3d 20 70 68 70 76 65 72 73 69 6f 6e 28 27 75 75 69 64 27 29 3b 0a 62 72 65 61 6b 3b 0a on.=.phpversion('uuid');.break;.
3c6c0 0a 63 61 73 65 20 27 78 73 6c 27 3a 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 4c 49 .case.'xsl':.$prettyVersion.=.LI
3c6e0 42 58 53 4c 54 5f 44 4f 54 54 45 44 5f 56 45 52 53 49 4f 4e 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 BXSLT_DOTTED_VERSION;.break;..de
3c700 66 61 75 6c 74 3a 0a 0a 20 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 76 fault:...continue.2;.}..try.{.$v
3c720 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 61 6c 69 ersion.=.$versionParser->normali
3c740 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 68 20 28 5c 55 6e ze($prettyVersion);.}.catch.(\Un
3c760 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 20 7b 0a 63 6f 6e expectedValueException.$e).{.con
3c780 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 62 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 tinue;.}..$lib.=.new.CompletePac
3c7a0 6b 61 67 65 28 27 6c 69 62 2d 27 2e 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 kage('lib-'.$name,.$version,.$pr
3c7c0 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 6c 69 62 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 ettyVersion);.$lib->setDescripti
3c7e0 6f 6e 28 27 54 68 65 20 27 2e 24 6e 61 6d 65 2e 27 20 50 48 50 20 6c 69 62 72 61 72 79 27 29 3b on('The.'.$name.'.PHP.library');
3c800 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 6b 61 67 65 28 24 6c 69 62 29 3b 0a 7d 0a 0a 69 66 .parent::addPackage($lib);.}..if
3c820 20 28 64 65 66 69 6e 65 64 28 27 48 50 48 50 5f 56 45 52 53 49 4f 4e 27 29 29 20 7b 0a 74 72 79 .(defined('HPHP_VERSION')).{.try
3c840 20 7b 0a 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 20 3d 20 48 50 48 50 5f 56 45 52 53 49 4f 4e .{.$prettyVersion.=.HPHP_VERSION
3c860 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 6f 72 ;.$version.=.$versionParser->nor
3c880 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 68 20 malize($prettyVersion);.}.catch.
3c8a0 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 20 7b (\UnexpectedValueException.$e).{
3c8c0 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 28 27 .$prettyVersion.=.preg_replace('
3c8e0 23 5e 28 5b 5e 7e 2b 2d 5d 2b 29 2e 2a 24 23 27 2c 20 27 24 31 27 2c 20 48 50 48 50 5f 56 45 52 #^([^~+-]+).*$#',.'$1',.HPHP_VER
3c900 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 72 SION);.$version.=.$versionParser
3c920 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 0a ->normalize($prettyVersion);.}..
3c940 24 68 68 76 6d 20 3d 20 6e 65 77 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 28 27 68 68 76 $hhvm.=.new.CompletePackage('hhv
3c960 6d 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 3b 0a 24 m',.$version,.$prettyVersion);.$
3c980 68 68 76 6d 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 54 68 65 20 48 48 56 4d 20 52 hhvm->setDescription('The.HHVM.R
3c9a0 75 6e 74 69 6d 65 20 28 36 34 62 69 74 29 27 29 3b 0a 70 61 72 65 6e 74 3a 3a 61 64 64 50 61 63 untime.(64bit)');.parent::addPac
3c9c0 6b 61 67 65 28 24 68 68 76 6d 29 3b 0a 7d 0a 7d 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 kage($hhvm);.}.}...private.funct
3c9e0 69 6f 6e 20 62 75 69 6c 64 50 61 63 6b 61 67 65 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 ion.buildPackageName($name).{.re
3ca00 74 75 72 6e 20 27 65 78 74 2d 27 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 20 27 2c 20 27 turn.'ext-'...str_replace('.',.'
3ca20 2d 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a -',.$name);.}.}.<?php...........
3ca40 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a .namespace.Composer\Repository;.
3ca60 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 74 65 6d 52 ......class.InstalledFilesystemR
3ca80 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 52 65 70 6f epository.extends.FilesystemRepo
3caa0 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 65 70 6f 73 sitory.implements.InstalledRepos
3cac0 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 0a 0a 0a 0a itoryInterface.{.}.<?php........
3cae0 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
3cb00 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 6b 61 67 65 y;..use.Composer\Package\Package
3cb20 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 73 69 74 65 Interface;.......class.Composite
3cb40 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 74 6f 72 79 Repository.implements.Repository
3cb60 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 6f 73 69 74 Interface.{.....private.$reposit
3cb80 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 5f 5f 63 6f ories;......public.function.__co
3cba0 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 0a 7b 0a 24 nstruct(array.$repositories).{.$
3cbc0 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 28 29 3b 0a 66 6f this->repositories.=.array();.fo
3cbe0 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 29 20 7b reach.($repositories.as.$repo).{
3cc00 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a .$this->addRepository($repo);.}.
3cc20 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 70 6f 73 }.......public.function.getRepos
3cc40 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 6f 73 69 itories().{.return.$this->reposi
3cc60 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 20 68 61 tories;.}.....public.function.ha
3cc80 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 61 63 6b 61 sPackage(PackageInterface.$packa
3cca0 67 65 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 ge).{.foreach.($this->repositori
3ccc0 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 0a 69 66 20 28 24 72 65 70 6f 73 es.as.$repository).{..if.($repos
3cce0 69 74 6f 72 79 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 72 itory->hasPackage($package)).{.r
3cd00 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 0a 7d eturn.true;.}.}..return.false;.}
3cd20 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 .....public.function.findPackage
3cd40 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 ($name,.$version).{.foreach.($th
3cd60 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 is->repositories.as.$repository)
3cd80 20 7b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 .{..$package.=.$repository->find
3cda0 50 61 63 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 6e 75 Package($name,.$version);.if.(nu
3cdc0 6c 6c 20 21 3d 3d 20 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 ll.!==.$package).{.return.$packa
3cde0 67 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ge;.}.}..return.null;.}.....publ
3ce00 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 6d 65 2c 20 ic.function.findPackages($name,.
3ce20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 $version.=.null).{.$packages.=.a
3ce40 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 65 70 6f 73 69 74 6f rray();.foreach.($this->reposito
3ce60 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 70 61 63 6b 61 67 65 ries.as.$repository).{..$package
3ce80 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6e 64 50 61 63 6b 61 67 65 73 28 s[].=.$repository->findPackages(
3cea0 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 $name,.$version);.}..return.$pac
3cec0 6b 61 67 65 73 20 3f 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 kages.?.call_user_func_array('ar
3cee0 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 67 65 73 29 20 3a 20 61 72 72 61 79 28 29 ray_merge',.$packages).:.array()
3cf00 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 61 72 63 68 28 24 ;.}.....public.function.search($
3cf20 71 75 65 72 79 2c 20 24 6d 6f 64 65 20 3d 20 30 29 0a 7b 0a 24 6d 61 74 63 68 65 73 20 3d 20 61 query,.$mode.=.0).{.$matches.=.a
3cf40 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 65 70 6f 73 69 74 6f rray();.foreach.($this->reposito
3cf60 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 6d 61 74 63 68 65 73 ries.as.$repository).{..$matches
3cf80 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 73 65 61 72 63 68 28 24 71 75 65 72 79 2c [].=.$repository->search($query,
3cfa0 20 24 6d 6f 64 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 20 3f 20 63 61 .$mode);.}..return.$matches.?.ca
3cfc0 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 ll_user_func_array('array_merge'
3cfe0 2c 20 24 6d 61 74 63 68 65 73 29 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ,.$matches).:.array();.}.....pub
3d000 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 50 61 63 6b 61 67 65 73 28 24 63 61 6c lic.function.filterPackages($cal
3d020 6c 62 61 63 6b 2c 20 24 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 lback,.$class.=.'Composer\Packag
3d040 65 5c 50 61 63 6b 61 67 65 27 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 65 e\Package').{.foreach.($this->re
3d060 70 6f 73 69 74 6f 72 69 65 73 20 61 73 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 69 66 20 positories.as.$repository).{.if.
3d080 28 66 61 6c 73 65 20 3d 3d 3d 20 24 72 65 70 6f 73 69 74 6f 72 79 2d 3e 66 69 6c 74 65 72 50 61 (false.===.$repository->filterPa
3d0a0 63 6b 61 67 65 73 28 24 63 61 6c 6c 62 61 63 6b 2c 20 24 63 6c 61 73 73 29 29 20 7b 0a 72 65 74 ckages($callback,.$class)).{.ret
3d0c0 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a urn.false;.}.}..return.true;.}..
3d0e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 ...public.function.getPackages()
3d100 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 .{.$packages.=.array();.foreach.
3d120 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
3d140 6f 72 79 29 20 7b 0a 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 ory).{..$packages[].=.$repositor
3d160 79 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 y->getPackages();.}..return.$pac
3d180 6b 61 67 65 73 20 3f 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 kages.?.call_user_func_array('ar
3d1a0 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 70 61 63 6b 61 67 65 73 29 20 3a 20 61 72 72 61 79 28 29 ray_merge',.$packages).:.array()
3d1c0 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 61 ;.}.....public.function.removePa
3d1e0 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 29 ckage(PackageInterface.$package)
3d200 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 20 .{.foreach.($this->repositories.
3d220 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 3e as.$repository).{..$repository->
3d240 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 0a removePackage($package);.}.}....
3d260 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 61 .public.function.count().{.$tota
3d280 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 72 l.=.0;.foreach.($this->repositor
3d2a0 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 3d ies.as.$repository).{..$total.+=
3d2c0 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 6e .$repository->count();.}..return
3d2e0 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 20 .$total;.}......public.function.
3d300 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 63 addRepository(RepositoryInterfac
3d320 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 69 66 20 28 24 72 65 70 6f 73 69 74 6f 72 79 e.$repository).{.if.($repository
3d340 20 69 6e 73 74 61 6e 63 65 6f 66 20 73 65 6c 66 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 .instanceof.self).{.foreach.($re
3d360 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 20 61 73 20 24 pository->getRepositories().as.$
3d380 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 repo).{.$this->addRepository($re
3d3a0 70 6f 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 po);.}.}.else.{.$this->repositor
3d3c0 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 7d 0a 3c 3f 70 68 70 ies[].=.$repository;.}.}.}.<?php
3d3e0 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
3d400 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
3d420 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
3d440 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.{.
3d460 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
3d480 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\
3d4a0 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.
3d4c0 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
3d4e0 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 50 61 63 e;.use.Composer\Package\AliasPac
3d500 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 56 65 72 73 69 kage;.use.Composer\Package\Versi
3d520 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 44 on\VersionParser;.use.Composer\D
3d540 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 75 73 65 20 43 6f 6d 70 ependencyResolver\Pool;.use.Comp
3d560 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 72 oser\Json\JsonFile;.use.Composer
3d580 5c 43 61 63 68 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 \Cache;.use.Composer\Config;.use
3d5a0 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 6f .Composer\IO\IOInterface;.use.Co
3d5c0 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 mposer\Util\RemoteFilesystem;.us
3d5e0 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 45 76 65 6e 74 73 3b 0a e.Composer\Plugin\PluginEvents;.
3d600 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 72 65 46 69 6c 65 44 6f 77 6e 6c use.Composer\Plugin\PreFileDownl
3d620 6f 61 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 oadEvent;.use.Composer\EventDisp
3d640 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 atcher\EventDispatcher;.....clas
3d660 73 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 20 65 78 74 65 6e 64 73 20 41 72 72 s.ComposerRepository.extends.Arr
3d680 61 79 52 65 70 6f 73 69 74 6f 72 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 53 74 72 65 61 6d 61 62 ayRepository.implements.Streamab
3d6a0 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 leRepositoryInterface.{.protecte
3d6c0 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 d.$config;.protected.$options;.p
3d6e0 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 62 61 73 65 55 72 rotected.$url;.protected.$baseUr
3d700 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 65 64 20 24 72 66 73 l;.protected.$io;.protected.$rfs
3d720 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 61 63 68 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e ;.protected.$cache;.protected.$n
3d740 6f 74 69 66 79 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 65 61 72 63 68 55 72 6c 3b 0a otifyUrl;.protected.$searchUrl;.
3d760 70 72 6f 74 65 63 74 65 64 20 24 68 61 73 50 72 6f 76 69 64 65 72 73 20 3d 20 66 61 6c 73 65 3b protected.$hasProviders.=.false;
3d780 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 72 73 55 72 6c 3b 0a 70 72 6f 74 65 63 .protected.$providersUrl;.protec
3d7a0 74 65 64 20 24 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 ted.$providerListing;.protected.
3d7c0 24 70 72 6f 76 69 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 $providers.=.array();.protected.
3d7e0 24 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 $providersByUid.=.array();.prote
3d800 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 6f 6f 74 41 6c 69 cted.$loader;.protected.$rootAli
3d820 61 73 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 61 ases;.protected.$allowSslDowngra
3d840 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 76 65 6e 74 44 69 73 70 de.=.false;.protected.$eventDisp
3d860 61 74 63 68 65 72 3b 0a 70 72 69 76 61 74 65 20 24 72 61 77 44 61 74 61 3b 0a 70 72 69 76 61 74 atcher;.private.$rawData;.privat
3d880 65 20 24 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 3b 0a 70 72 69 76 61 74 65 20 24 64 65 67 e.$minimalPackages;.private.$deg
3d8a0 72 61 64 65 64 4d 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 72 6f 6f 74 radedMode.=.false;.private.$root
3d8c0 44 61 74 61 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 Data;..public.function.__constru
3d8e0 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 65 72 66 61 63 ct(array.$repoConfig,.IOInterfac
3d900 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 70 e.$io,.Config.$config,.EventDisp
3d920 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 29 0a atcher.$eventDispatcher.=.null).
3d940 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5c 77 2e 5d 2b 5c 3f 3f 3a 2f {.if.(!preg_match('{^[\w.]+\??:/
3d960 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 20 24 72 /}',.$repoConfig['url'])).{...$r
3d980 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 24 72 65 epoConfig['url'].=.'http://'.$re
3d9a0 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 67 5b 27 poConfig['url'];.}.$repoConfig['
3d9c0 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 6c 27 5d url'].=.rtrim($repoConfig['url']
3d9e0 2c 20 27 2f 27 29 3b 0a 0a 69 66 20 28 27 68 74 74 70 73 3f 27 20 3d 3d 3d 20 73 75 62 73 74 72 ,.'/');..if.('https?'.===.substr
3da00 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c 20 30 2c 20 36 29 29 20 7b 0a 24 72 ($repoConfig['url'],.0,.6)).{.$r
3da20 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 20 3d 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f epoConfig['url'].=.(extension_lo
3da40 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 3f 20 27 68 74 74 70 73 27 20 3a 20 27 68 74 74 aded('openssl').?.'https'.:.'htt
3da60 70 27 29 20 2e 20 73 75 62 73 74 72 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 2c p')...substr($repoConfig['url'],
3da80 20 36 29 3b 0a 7d 0a 0a 24 75 72 6c 42 69 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 72 65 .6);.}..$urlBits.=.parse_url($re
3daa0 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 3b 0a 69 66 20 28 24 75 72 6c 42 69 74 73 20 3d poConfig['url']);.if.($urlBits.=
3dac0 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 65 6d 70 74 79 28 24 75 72 6c 42 69 74 73 5b 27 73 63 68 65 ==.false.||.empty($urlBits['sche
3dae0 6d 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 me'])).{.throw.new.\UnexpectedVa
3db00 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 20 lueException('Invalid.url.given.
3db20 66 6f 72 20 43 6f 6d 70 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 79 3a 20 27 2e 24 72 65 70 6f for.Composer.repository:.'.$repo
3db40 43 6f 6e 66 69 67 5b 27 75 72 6c 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 72 Config['url']);.}..if.(!isset($r
3db60 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 5d 29 29 20 7b 0a 24 72 65 70 6f 43 6f epoConfig['options'])).{.$repoCo
3db80 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 69 66 20 nfig['options'].=.array();.}.if.
3dba0 28 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 61 6c 6c 6f 77 5f 73 73 6c 5f 64 6f (isset($repoConfig['allow_ssl_do
3dbc0 77 6e 67 72 61 64 65 27 5d 29 20 26 26 20 74 72 75 65 20 3d 3d 3d 20 24 72 65 70 6f 43 6f 6e 66 wngrade']).&&.true.===.$repoConf
3dbe0 69 67 5b 27 61 6c 6c 6f 77 5f 73 73 6c 5f 64 6f 77 6e 67 72 61 64 65 27 5d 29 20 7b 0a 24 74 68 ig['allow_ssl_downgrade']).{.$th
3dc00 69 73 2d 3e 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 61 64 65 20 3d 20 74 72 75 65 3b 0a 7d 0a is->allowSslDowngrade.=.true;.}.
3dc20 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-
3dc40 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 6f 70 74 69 6f 6e 73 27 >options.=.$repoConfig['options'
3dc60 5d 3b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 6c ];.$this->url.=.$repoConfig['url
3dc80 27 5d 3b 0a 24 74 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 3d 20 72 74 72 69 6d 28 70 72 65 67 5f '];.$this->baseUrl.=.rtrim(preg_
3dca0 72 65 70 6c 61 63 65 28 27 7b 5e 28 2e 2a 29 28 3f 3a 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e replace('{^(.*)(?:/packages.json
3dcc0 29 3f 28 3f 3a 5b 3f 23 5d 2e 2a 29 3f 24 7d 27 2c 20 27 24 31 27 2c 20 24 74 68 69 73 2d 3e 75 )?(?:[?#].*)?$}',.'$1',.$this->u
3dce0 72 6c 29 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 rl),.'/');.$this->io.=.$io;.$thi
3dd00 73 2d 3e 63 61 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 69 6f 2c 20 24 63 6f 6e 66 69 s->cache.=.new.Cache($io,.$confi
3dd20 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 29 2e 27 2f 27 2e 70 72 65 g->get('cache-repo-dir').'/'.pre
3dd40 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 2c 20 g_replace('{[^a-z0-9.]}i',.'-',.
3dd60 24 74 68 69 73 2d 3e 75 72 6c 29 2c 20 27 61 2d 7a 30 2d 39 2e 24 27 29 3b 0a 24 74 68 69 73 2d $this->url),.'a-z0-9.$');.$this-
3dd80 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 24 74 68 >loader.=.new.ArrayLoader();.$th
3dda0 69 73 2d 3e 72 66 73 20 3d 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 is->rfs.=.new.RemoteFilesystem($
3ddc0 74 68 69 73 2d 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 this->io,.$this->options);.$this
3dde0 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 73 70 61 74 ->eventDispatcher.=.$eventDispat
3de00 63 68 65 72 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 6f 6f 74 cher;.}..public.function.setRoot
3de20 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 29 0a 7b 0a 24 74 Aliases(array.$rootAliases).{.$t
3de40 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 3b his->rootAliases.=.$rootAliases;
3de60 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 .}..public.function.getPackages(
3de80 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b ).{.if.($this->hasProviders()).{
3dea0 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 6f 6d 70 .throw.new.\LogicException('Comp
3dec0 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 69 65 73 20 74 68 61 74 20 68 61 76 65 20 70 72 6f 76 oser.repositories.that.have.prov
3dee0 69 64 65 72 73 20 63 61 6e 20 6e 6f 74 20 6c 6f 61 64 20 74 68 65 20 63 6f 6d 70 6c 65 74 65 20 iders.can.not.load.the.complete.
3df00 6c 69 73 74 20 6f 66 20 70 61 63 6b 61 67 65 73 2c 20 75 73 65 20 67 65 74 50 72 6f 76 69 64 65 list.of.packages,.use.getProvide
3df20 72 4e 61 6d 65 73 20 69 6e 73 74 65 61 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 rNames.instead.');.}..return.par
3df40 65 6e 74 3a 3a 67 65 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ent::getPackages();.}.....public
3df60 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 28 29 0a 7b .function.getMinimalPackages().{
3df80 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 .if.(isset($this->minimalPackage
3dfa0 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 s)).{.return.$this->minimalPacka
3dfc0 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 72 61 77 44 ges;.}..if.(null.===.$this->rawD
3dfe0 61 74 61 29 20 7b 0a 24 74 68 69 73 2d 3e 72 61 77 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 6c ata).{.$this->rawData.=.$this->l
3e000 6f 61 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6d oadDataFromServer();.}..$this->m
3e020 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 76 65 72 73 69 inimalPackages.=.array();.$versi
3e040 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 66 onParser.=.new.VersionParser;..f
3e060 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 61 77 44 61 74 61 20 61 73 20 24 70 61 63 6b 61 oreach.($this->rawData.as.$packa
3e080 67 65 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 ge).{.$version.=.!empty($package
3e0a0 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 20 3f 20 24 70 61 63 6b 61 ['version_normalized']).?.$packa
3e0c0 67 65 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3a 20 24 76 65 72 73 ge['version_normalized'].:.$vers
3e0e0 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 70 61 63 6b 61 67 65 5b 27 76 ionParser->normalize($package['v
3e100 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 ersion']);.$data.=.array(.'name'
3e120 20 3d 3e 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 29 .=>.strtolower($package['name'])
3e140 2c 0a 27 72 65 70 6f 27 20 3d 3e 20 24 74 68 69 73 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 ,.'repo'.=>.$this,.'version'.=>.
3e160 24 76 65 72 73 69 6f 6e 2c 0a 27 72 61 77 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 29 3b 0a $version,.'raw'.=>.$package,.);.
3e180 69 66 20 28 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 5b 27 72 65 70 6c 61 63 65 27 5d 29 29 if.(!empty($package['replace']))
3e1a0 20 7b 0a 24 64 61 74 61 5b 27 72 65 70 6c 61 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 .{.$data['replace'].=.$package['
3e1c0 72 65 70 6c 61 63 65 27 5d 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 70 61 63 6b 61 67 65 replace'];.}.if.(!empty($package
3e1e0 5b 27 70 72 6f 76 69 64 65 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 27 5d ['provide'])).{.$data['provide']
3e200 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 70 72 6f 76 69 64 65 27 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 .=.$package['provide'];.}....if.
3e220 28 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 ($aliasNormalized.=.$this->loade
3e240 72 2d 3e 67 65 74 42 72 61 6e 63 68 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 r->getBranchAlias($package)).{.$
3e260 64 61 74 61 5b 27 61 6c 69 61 73 27 5d 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 data['alias'].=.preg_replace('{(
3e280 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a \.9{7})+}',.'.x',.$aliasNormaliz
3e2a0 65 64 29 3b 0a 24 64 61 74 61 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 20 3d ed);.$data['alias_normalized'].=
3e2c0 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6d 69 6e .$aliasNormalized;.}..$this->min
3e2e0 69 6d 61 6c 50 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 64 61 74 61 3b 0a 7d 0a 0a 72 65 74 75 72 imalPackages[].=.$data;.}..retur
3e300 6e 20 24 74 68 69 73 2d 3e 6d 69 6e 69 6d 61 6c 50 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a n.$this->minimalPackages;.}.....
3e320 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 public.function.search($query,.$
3e340 6d 6f 64 65 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 mode.=.0).{.$this->loadRootServe
3e360 72 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 65 61 72 63 68 55 72 6c 20 26 rFile();..if.($this->searchUrl.&
3e380 26 20 24 6d 6f 64 65 20 3d 3d 3d 20 73 65 6c 66 3a 3a 53 45 41 52 43 48 5f 46 55 4c 4c 54 45 58 &.$mode.===.self::SEARCH_FULLTEX
3e3a0 54 29 20 7b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 71 75 65 72 79 25 T).{.$url.=.str_replace('%query%
3e3c0 27 2c 20 24 71 75 65 72 79 2c 20 24 74 68 69 73 2d 3e 73 65 61 72 63 68 55 72 6c 29 3b 0a 0a 24 ',.$query,.$this->searchUrl);..$
3e3e0 6a 73 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 json.=.$this->rfs->getContents($
3e400 75 72 6c 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 24 72 65 73 75 6c 74 73 20 3d 20 4a 73 url,.$url,.false);.$results.=.Js
3e420 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 24 75 72 6c 29 3b 0a onFile::parseJson($json,.$url);.
3e440 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 73 5b 27 72 65 73 75 6c 74 73 27 5d 3b 0a 7d 0a 0a .return.$results['results'];.}..
3e460 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 24 72 65 if.($this->hasProviders()).{.$re
3e480 73 75 6c 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 67 65 78 20 3d 20 27 7b 28 3f 3a 27 sults.=.array();.$regex.=.'{(?:'
3e4a0 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 5c 73 2b 7d 27 .implode('|',.preg_split('{\s+}'
3e4c0 2c 20 24 71 75 65 72 79 29 29 2e 27 29 7d 69 27 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 ,.$query)).')}i';..foreach.($thi
3e4e0 73 2d 3e 67 65 74 50 72 6f 76 69 64 65 72 4e 61 6d 65 73 28 29 20 61 73 20 24 6e 61 6d 65 29 20 s->getProviderNames().as.$name).
3e500 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 6e 61 6d 65 29 29 {.if.(preg_match($regex,.$name))
3e520 20 7b 0a 24 72 65 73 75 6c 74 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 20 3d 3e 20 .{.$results[].=.array('name'.=>.
3e540 24 6e 61 6d 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 73 3b 0a 7d 0a $name);.}.}..return.$results;.}.
3e560 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 73 65 61 72 63 68 28 24 71 75 65 72 79 2c 20 24 .return.parent::search($query,.$
3e580 6d 6f 64 65 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 6f mode);.}..public.function.getPro
3e5a0 76 69 64 65 72 4e 61 6d 65 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 viderNames().{.$this->loadRootSe
3e5c0 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d rverFile();..if.(null.===.$this-
3e5e0 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 >providerListing).{.$this->loadP
3e600 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 roviderListings($this->loadRootS
3e620 65 72 76 65 72 46 69 6c 65 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 erverFile());.}..if.($this->prov
3e640 69 64 65 72 73 55 72 6c 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 idersUrl).{.return.array_keys($t
3e660 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 3b 0a 7d 0a 0a 0a 20 24 70 72 6f his->providerListing);.}....$pro
3e680 76 69 64 65 72 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 viders.=.array();.foreach.(array
3e6a0 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 20 61 73 _keys($this->providerListing).as
3e6c0 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 24 70 72 6f 76 69 64 65 72 73 5b 5d 20 3d 20 73 75 62 .$provider).{.$providers[].=.sub
3e6e0 73 74 72 28 24 70 72 6f 76 69 64 65 72 2c 20 32 2c 20 2d 35 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e str($provider,.2,.-5);.}..return
3e700 20 24 70 72 6f 76 69 64 65 72 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .$providers;.}.....public.functi
3e720 6f 6e 20 6c 6f 61 64 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b 0a 24 70 on.loadPackage(array.$data).{.$p
3e740 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 61 63 6b 61 67 65 28 24 64 ackage.=.$this->createPackage($d
3e760 61 74 61 5b 27 72 61 77 27 5d 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 ata['raw'],.'Composer\Package\Pa
3e780 63 6b 61 67 65 27 29 3b 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
3e7a0 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 61 63 .AliasPackage).{.$package.=.$pac
3e7c0 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e kage->getAliasOf();.}.$package->
3e7e0 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 setRepository($this);..return.$p
3e800 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f ackage;.}.....public.function.lo
3e820 61 64 41 6c 69 61 73 50 61 63 6b 61 67 65 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 50 61 63 6b adAliasPackage(array.$data,.Pack
3e840 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 6c 69 61 73 4f 66 29 0a 7b 0a 24 61 6c 69 61 73 50 ageInterface.$aliasOf).{.$aliasP
3e860 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 41 6c 69 61 73 50 61 63 6b 61 ackage.=.$this->createAliasPacka
3e880 67 65 28 24 61 6c 69 61 73 4f 66 2c 20 24 64 61 74 61 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 20 24 ge($aliasOf,.$data['version'],.$
3e8a0 64 61 74 61 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 data['alias']);.$aliasPackage->s
3e8c0 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 61 6c etRepository($this);..return.$al
3e8e0 69 61 73 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 iasPackage;.}..public.function.h
3e900 61 73 50 72 6f 76 69 64 65 72 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 asProviders().{.$this->loadRootS
3e920 65 72 76 65 72 46 69 6c 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 50 erverFile();..return.$this->hasP
3e940 72 6f 76 69 64 65 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 roviders;.}..public.function.res
3e960 65 74 50 61 63 6b 61 67 65 49 64 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d etPackageIds().{.foreach.($this-
3e980 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 >providersByUid.as.$package).{.i
3e9a0 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b f.($package.instanceof.AliasPack
3e9c0 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 73 age).{.$package->getAliasOf()->s
3e9e0 65 74 49 64 28 2d 31 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 2d 31 29 3b etId(-1);.}.$package->setId(-1);
3ea00 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 68 61 74 50 72 6f 76 69 64 .}.}..public.function.whatProvid
3ea20 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 69 73 73 65 es(Pool.$pool,.$name).{.if.(isse
3ea40 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 72 65 t($this->providers[$name])).{.re
3ea60 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a turn.$this->providers[$name];.}.
3ea80 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 ...if.(preg_match(PlatformReposi
3eaa0 74 6f 72 79 3a 3a 50 4c 41 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6e tory::PLATFORM_PACKAGE_REGEX,.$n
3eac0 61 6d 65 29 20 7c 7c 20 27 5f 5f 72 6f 6f 74 5f 5f 27 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a ame).||.'__root__'.===.$name).{.
3eae0 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 return.array();.}..if.(null.===.
3eb00 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 29 20 7b 0a 24 74 68 69 73 2d $this->providerListing).{.$this-
3eb20 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 74 68 69 73 2d 3e 6c 6f 61 >loadProviderListings($this->loa
3eb40 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 dRootServerFile());.}..if.($this
3eb60 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 ->providersUrl).{...if.(!isset($
3eb80 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 6e 61 6d 65 5d 29 29 20 7b this->providerListing[$name])).{
3eba0 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 68 61 73 68 20 3d 20 24 74 68 69 .return.array();.}..$hash.=.$thi
3ebc0 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 6e 61 6d 65 5d 5b 27 73 68 61 32 35 s->providerListing[$name]['sha25
3ebe0 36 27 5d 3b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 25 6'];.$url.=.str_replace(array('%
3ec00 70 61 63 6b 61 67 65 25 27 2c 20 27 25 68 61 73 68 25 27 29 2c 20 61 72 72 61 79 28 24 6e 61 6d package%',.'%hash%'),.array($nam
3ec20 65 2c 20 24 68 61 73 68 29 2c 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 29 3b e,.$hash),.$this->providersUrl);
3ec40 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 27 70 72 6f 76 69 64 65 72 2d 27 2e 73 74 72 74 72 28 24 .$cacheKey.=.'provider-'.strtr($
3ec60 6e 61 6d 65 2c 20 27 2f 27 2c 20 27 24 27 29 2e 27 2e 6a 73 6f 6e 27 3b 0a 7d 20 65 6c 73 65 20 name,.'/',.'$').'.json';.}.else.
3ec80 7b 0a 0a 20 24 75 72 6c 20 3d 20 27 70 2f 27 2e 24 6e 61 6d 65 2e 27 2e 6a 73 6f 6e 27 3b 0a 0a {...$url.=.'p/'.$name.'.json';..
3eca0 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 ..if.(!isset($this->providerList
3ecc0 69 6e 67 5b 24 75 72 6c 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 29 3b 0a 7d 0a ing[$url])).{.return.array();.}.
3ece0 24 68 61 73 68 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 5b 24 $hash.=.$this->providerListing[$
3ed00 75 72 6c 5d 5b 27 73 68 61 32 35 36 27 5d 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 6e 75 6c 6c url]['sha256'];.$cacheKey.=.null
3ed20 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 32 35 36 28 24 63 ;.}..if.($this->cache->sha256($c
3ed40 61 63 68 65 4b 65 79 29 20 3d 3d 3d 20 24 68 61 73 68 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 acheKey).===.$hash).{.$packages.
3ed60 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 =.json_decode($this->cache->read
3ed80 28 24 63 61 63 68 65 4b 65 79 29 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 ($cacheKey),.true);.}.else.{.$pa
3eda0 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 75 72 6c 2c 20 ckages.=.$this->fetchFile($url,.
3edc0 24 63 61 63 68 65 4b 65 79 2c 20 24 68 61 73 68 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f $cacheKey,.$hash);.}..$this->pro
3ede0 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 viders[$name].=.array();.foreach
3ee00 20 28 24 70 61 63 6b 61 67 65 73 5b 27 70 61 63 6b 61 67 65 73 27 5d 20 61 73 20 24 76 65 72 73 .($packages['packages'].as.$vers
3ee20 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 ions).{.foreach.($versions.as.$v
3ee40 65 72 73 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f ersion).{...if.(isset($this->pro
3ee60 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 29 29 20 7b vidersByUid[$version['uid']])).{
3ee80 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 ...if.(!isset($this->providers[$
3eea0 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 29 29 20 7b 0a 0a 20 69 66 20 name][$version['uid']])).{...if.
3eec0 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b ($this->providersByUid[$version[
3eee0 27 75 69 64 27 5d 5d 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 'uid']].instanceof.AliasPackage)
3ef00 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 .{.$this->providers[$name][$vers
3ef20 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 ion['uid']].=.$this->providersBy
3ef40 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 2d 3e 67 65 74 41 6c 69 61 73 4f 66 Uid[$version['uid']]->getAliasOf
3ef60 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 ();.$this->providers[$name][$ver
3ef80 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 61 6c 69 61 73 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 sion['uid'].'-alias'].=.$this->p
3efa0 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 3b 0a rovidersByUid[$version['uid']];.
3efc0 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d }.else.{.$this->providers[$name]
3efe0 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 [$version['uid']].=.$this->provi
3f000 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 3b 0a 7d 0a 0a 20 dersByUid[$version['uid']];.}...
3f020 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b if.(isset($this->providersByUid[
3f040 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 29 29 20 7b 0a 24 74 68 $version['uid'].'-root'])).{.$th
3f060 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 is->providers[$name][$version['u
3f080 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 id'].'-root'].=.$this->providers
3f0a0 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 3b 0a ByUid[$version['uid'].'-root'];.
3f0c0 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 76 65 72 73 69 6f 6e 5b }.}.}.else.{.if.(isset($version[
3f0e0 27 70 72 6f 76 69 64 65 27 5d 29 20 7c 7c 20 69 73 73 65 74 28 24 76 65 72 73 69 6f 6e 5b 27 72 'provide']).||.isset($version['r
3f100 65 70 6c 61 63 65 27 5d 29 29 20 7b 0a 0a 20 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 0a 73 eplace'])).{...$names.=.array(.s
3f120 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 5b 27 6e 61 6d 65 27 5d 29 20 3d 3e 20 74 trtolower($version['name']).=>.t
3f140 72 75 65 2c 0a 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 76 65 72 73 69 6f 6e 5b 27 70 72 6f 76 rue,.);.if.(isset($version['prov
3f160 69 64 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 5b 27 70 72 6f ide'])).{.foreach.($version['pro
3f180 76 69 64 65 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 vide'].as.$target.=>.$constraint
3f1a0 29 20 7b 0a 24 6e 61 6d 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 74 29 5d 20 ).{.$names[strtolower($target)].
3f1c0 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 76 65 72 73 69 6f 6e 5b 27 =.true;.}.}.if.(isset($version['
3f1e0 72 65 70 6c 61 63 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 5b replace'])).{.foreach.($version[
3f200 27 72 65 70 6c 61 63 65 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 63 6f 6e 73 74 72 'replace'].as.$target.=>.$constr
3f220 61 69 6e 74 29 20 7b 0a 24 6e 61 6d 65 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 61 72 67 65 aint).{.$names[strtolower($targe
3f240 74 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 5f 6b t)].=.true;.}.}.$names.=.array_k
3f260 65 79 73 28 24 6e 61 6d 65 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 73 20 3d 20 61 eys($names);.}.else.{.$names.=.a
3f280 72 72 61 79 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 5b 27 6e 61 6d 65 27 5d rray(strtolower($version['name']
3f2a0 29 29 3b 0a 7d 0a 69 66 20 28 21 24 70 6f 6f 6c 2d 3e 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 ));.}.if.(!$pool->isPackageAccep
3f2c0 74 61 62 6c 65 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 5b 27 6e 61 6d 65 27 table(strtolower($version['name'
3f2e0 5d 29 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 ]),.VersionParser::parseStabilit
3f300 79 28 24 76 65 72 73 69 6f 6e 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 29 20 7b 0a 63 6f 6e 74 69 y($version['version']))).{.conti
3f320 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 nue;.}....$package.=.$this->crea
3f340 74 65 50 61 63 6b 61 67 65 28 24 76 65 72 73 69 6f 6e 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 tePackage($version,.'Composer\Pa
3f360 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 27 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 ckage\Package');.$package->setRe
3f380 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 pository($this);..if.($package.i
3f3a0 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 61 6c 69 61 73 nstanceof.AliasPackage).{.$alias
3f3c0 65 64 20 3d 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 24 61 6c ed.=.$package->getAliasOf();.$al
3f3e0 69 61 73 65 64 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 24 74 iased->setRepository($this);..$t
3f400 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 his->providers[$name][$version['
3f420 75 69 64 27 5d 5d 20 3d 20 24 61 6c 69 61 73 65 64 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 uid']].=.$aliased;.$this->provid
3f440 65 72 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 61 6c 69 ers[$name][$version['uid'].'-ali
3f460 61 73 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 as'].=.$package;....$this->provi
3f480 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 70 61 dersByUid[$version['uid']].=.$pa
3f4a0 63 6b 61 67 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 ckage;.}.else.{.$this->providers
3f4c0 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 70 61 63 6b [$name][$version['uid']].=.$pack
3f4e0 61 67 65 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 65 72 73 age;.$this->providersByUid[$vers
3f500 69 6f 6e 5b 27 75 69 64 27 5d 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 20 75 6e 73 ion['uid']].=.$package;.}....uns
3f520 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 et($rootAliasData);..if.(isset($
3f540 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 this->rootAliases[$name][$packag
3f560 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 e->getVersion()])).{.$rootAliasD
3f580 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b ata.=.$this->rootAliases[$name][
3f5a0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 7d 20 65 6c 73 65 69 $package->getVersion()];.}.elsei
3f5c0 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b f.($package.instanceof.AliasPack
3f5e0 61 67 65 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b age.&&.isset($this->rootAliases[
3f600 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 67 $name][$package->getAliasOf()->g
3f620 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 20 etVersion()])).{.$rootAliasData.
3f640 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 =.$this->rootAliases[$name][$pac
3f660 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 kage->getAliasOf()->getVersion()
3f680 5d 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 29 ];.}..if.(isset($rootAliasData))
3f6a0 20 7b 0a 24 61 6c 69 61 73 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 41 6c 69 61 73 50 61 .{.$alias.=.$this->createAliasPa
3f6c0 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b 27 ckage($package,.$rootAliasData['
3f6e0 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 alias_normalized'],.$rootAliasDa
3f700 74 61 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 2d 3e 73 65 74 52 65 70 6f 73 69 74 ta['alias']);.$alias->setReposit
3f720 6f 72 79 28 24 74 68 69 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 5b 24 6e ory($this);..$this->providers[$n
3f740 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 ame][$version['uid'].'-root'].=.
3f760 24 61 6c 69 61 73 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 42 79 55 69 64 5b 24 76 $alias;.$this->providersByUid[$v
3f780 65 72 73 69 6f 6e 5b 27 75 69 64 27 5d 2e 27 2d 72 6f 6f 74 27 5d 20 3d 20 24 61 6c 69 61 73 3b ersion['uid'].'-root'].=.$alias;
3f7a0 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 .}.}.}.}..return.$this->provider
3f7c0 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 s[$name];.}.....protected.functi
3f7e0 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 69 6e 69 74 69 61 on.initialize().{.parent::initia
3f800 6c 69 7a 65 28 29 3b 0a 0a 24 72 65 70 6f 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 lize();..$repoData.=.$this->load
3f820 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 DataFromServer();..foreach.($rep
3f840 6f 44 61 74 61 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 50 oData.as.$package).{.$this->addP
3f860 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 61 63 6b 61 67 65 28 24 70 61 63 ackage($this->createPackage($pac
3f880 6b 61 67 65 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 kage,.'Composer\Package\Complete
3f8a0 50 61 63 6b 61 67 65 27 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 Package'));.}.}..protected.funct
3f8c0 69 6f 6e 20 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c 65 28 29 0a 7b 0a 69 66 20 28 6e ion.loadRootServerFile().{.if.(n
3f8e0 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 29 20 7b 0a 72 65 74 75 72 ull.!==.$this->rootData).{.retur
3f900 6e 20 24 74 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 3b 0a 7d 0a 0a 69 66 20 28 21 65 78 74 65 6e n.$this->rootData;.}..if.(!exten
3f920 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 6e 73 73 6c 27 29 20 26 26 20 27 68 74 74 70 73 sion_loaded('openssl').&&.'https
3f940 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 75 72 6c 2c 20 30 2c 20 35 29 29 20 '.===.substr($this->url,.0,.5)).
3f960 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 59 {.throw.new.\RuntimeException('Y
3f980 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 73 6c 20 65 78 74 65 6e ou.must.enable.the.openssl.exten
3f9a0 73 69 6f 6e 20 69 6e 20 79 6f 75 72 20 70 68 70 2e 69 6e 69 20 74 6f 20 6c 6f 61 64 20 69 6e 66 sion.in.your.php.ini.to.load.inf
3f9c0 6f 72 6d 61 74 69 6f 6e 20 66 72 6f 6d 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 29 3b 0a 7d 0a 0a ormation.from.'.$this->url);.}..
3f9e0 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d $jsonUrlParts.=.parse_url($this-
3fa00 3e 75 72 6c 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6a 73 6f 6e 55 72 6c 50 61 72 74 73 5b >url);..if.(isset($jsonUrlParts[
3fa20 27 70 61 74 68 27 5d 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6a 73 'path']).&&.false.!==.strpos($js
3fa40 6f 6e 55 72 6c 50 61 72 74 73 5b 27 70 61 74 68 27 5d 2c 20 27 2f 70 61 63 6b 61 67 65 73 2e 6a onUrlParts['path'],.'/packages.j
3fa60 73 6f 6e 27 29 29 20 7b 0a 24 6a 73 6f 6e 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 3b 0a son')).{.$jsonUrl.=.$this->url;.
3fa80 7d 20 65 6c 73 65 20 7b 0a 24 6a 73 6f 6e 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 75 72 6c 20 2e }.else.{.$jsonUrl.=.$this->url..
3faa0 20 27 2f 70 61 63 6b 61 67 65 73 2e 6a 73 6f 6e 27 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 .'/packages.json';.}..$data.=.$t
3fac0 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 6a 73 6f 6e 55 72 6c 2c 20 27 70 61 63 6b 61 67 his->fetchFile($jsonUrl,.'packag
3fae0 65 73 2e 6a 73 6f 6e 27 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 6f es.json');..if.(!empty($data['no
3fb00 74 69 66 79 2d 62 61 74 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 tify-batch'])).{.$this->notifyUr
3fb20 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 l.=.$this->canonicalizeUrl($data
3fb40 5b 27 6e 6f 74 69 66 79 2d 62 61 74 63 68 27 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 65 6d ['notify-batch']);.}.elseif.(!em
3fb60 70 74 79 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 5f 62 61 74 63 68 27 5d 29 29 20 7b 0a 0a 20 pty($data['notify_batch'])).{...
3fb80 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 $this->notifyUrl.=.$this->canoni
3fba0 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 5f 62 61 74 63 68 27 5d 29 calizeUrl($data['notify_batch'])
3fbc0 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 ;.}.elseif.(!empty($data['notify
3fbe0 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 20 3d 20 24 74 68 69 73 2d '])).{.$this->notifyUrl.=.$this-
3fc00 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 79 27 5d >canonicalizeUrl($data['notify']
3fc20 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 73 65 61 72 63 68 27 5d );.}..if.(!empty($data['search']
3fc40 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 61 72 63 68 55 72 6c 20 3d 20 24 74 68 69 73 2d 3e 63 )).{.$this->searchUrl.=.$this->c
3fc60 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 73 65 61 72 63 68 27 5d 29 3b anonicalizeUrl($data['search']);
3fc80 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 6c 6c 6f 77 53 73 6c 44 6f 77 6e 67 72 61 64 65 .}..if.($this->allowSslDowngrade
3fca0 29 20 7b 0a 24 74 68 69 73 2d 3e 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 68 74 ).{.$this->url.=.str_replace('ht
3fcc0 74 70 73 3a 2f 2f 27 2c 20 27 68 74 74 70 3a 2f 2f 27 2c 20 24 74 68 69 73 2d 3e 75 72 6c 29 3b tps://',.'http://',.$this->url);
3fce0 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d .}..if.(!empty($data['providers-
3fd00 75 72 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 20 3d 20 url'])).{.$this->providersUrl.=.
3fd20 24 74 68 69 73 2d 3e 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 64 61 74 61 5b 27 70 72 $this->canonicalizeUrl($data['pr
3fd40 6f 76 69 64 65 72 73 2d 75 72 6c 27 5d 29 3b 0a 24 74 68 69 73 2d 3e 68 61 73 50 72 6f 76 69 64 oviders-url']);.$this->hasProvid
3fd60 65 72 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b ers.=.true;.}..if.(!empty($data[
3fd80 27 70 72 6f 76 69 64 65 72 73 27 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 70 'providers']).||.!empty($data['p
3fda0 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 68 roviders-includes'])).{.$this->h
3fdc0 61 73 50 72 6f 76 69 64 65 72 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 asProviders.=.true;.}..return.$t
3fde0 68 69 73 2d 3e 72 6f 6f 74 44 61 74 61 20 3d 20 24 64 61 74 61 3b 0a 7d 0a 0a 70 72 6f 74 65 63 his->rootData.=.$data;.}..protec
3fe00 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 6f 6e 69 63 61 6c 69 7a 65 55 72 6c 28 24 75 72 ted.function.canonicalizeUrl($ur
3fe20 6c 29 0a 7b 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 75 72 6c 5b 30 5d 29 20 7b 0a 72 65 74 75 l).{.if.('/'.===.$url[0]).{.retu
3fe40 72 6e 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 68 74 74 70 73 3f 3a 2f 2f 5b 5e 2f 5d rn.preg_replace('{(https?://[^/]
3fe60 2b 29 2e 2a 7d 69 27 2c 20 27 24 31 27 20 2e 20 24 75 72 6c 2c 20 24 74 68 69 73 2d 3e 75 72 6c +).*}i',.'$1'...$url,.$this->url
3fe80 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 75 72 6c 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 );.}..return.$url;.}..protected.
3fea0 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 44 61 74 61 46 72 6f 6d 53 65 72 76 65 72 28 29 0a 7b 0a function.loadDataFromServer().{.
3fec0 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 64 52 6f 6f 74 53 65 72 76 65 72 46 69 6c $data.=.$this->loadRootServerFil
3fee0 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 61 64 49 6e 63 6c 75 64 65 73 e();..return.$this->loadIncludes
3ff00 28 24 64 61 74 61 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c ($data);.}..protected.function.l
3ff20 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 64 61 74 61 29 0a 7b 0a 69 66 20 oadProviderListings($data).{.if.
3ff40 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 27 5d 29 29 20 7b 0a 69 66 (isset($data['providers'])).{.if
3ff60 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 .(!is_array($this->providerListi
3ff80 6e 67 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 20 3d 20 ng)).{.$this->providerListing.=.
3ffa0 61 72 72 61 79 28 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c 69 73 74 69 6e array();.}.$this->providerListin
3ffc0 67 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 4c g.=.array_merge($this->providerL
3ffe0 69 73 74 69 6e 67 2c 20 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 27 5d 29 3b 0a 7d 0a 0a isting,.$data['providers']);.}..
40000 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 72 73 55 72 6c 20 26 26 20 69 73 73 65 74 if.($this->providersUrl.&&.isset
40020 28 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a ($data['provider-includes'])).{.
40040 24 69 6e 63 6c 75 64 65 73 20 3d 20 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 2d 69 6e 63 6c $includes.=.$data['provider-incl
40060 75 64 65 73 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 73 20 61 73 20 24 69 udes'];.foreach.($includes.as.$i
40080 6e 63 6c 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 75 72 6c 20 3d 20 24 74 nclude.=>.$metadata).{.$url.=.$t
400a0 68 69 73 2d 3e 62 61 73 65 55 72 6c 20 2e 20 27 2f 27 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 his->baseUrl...'/'...str_replace
400c0 28 27 25 68 61 73 68 25 27 2c 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 2c 20 ('%hash%',.$metadata['sha256'],.
400e0 24 69 6e 63 6c 75 64 65 29 3b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 73 74 72 5f 72 65 70 6c 61 $include);.$cacheKey.=.str_repla
40100 63 65 28 61 72 72 61 79 28 27 25 68 61 73 68 25 27 2c 27 24 27 29 2c 20 27 27 2c 20 24 69 6e 63 ce(array('%hash%','$'),.'',.$inc
40120 6c 75 64 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 61 32 35 36 28 lude);.if.($this->cache->sha256(
40140 24 63 61 63 68 65 4b 65 79 29 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 $cacheKey).===.$metadata['sha256
40160 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 ']).{.$includedData.=.json_decod
40180 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 63 61 63 68 65 4b 65 79 29 2c e($this->cache->read($cacheKey),
401a0 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d .true);.}.else.{.$includedData.=
401c0 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 75 72 6c 2c 20 24 63 61 63 68 65 4b 65 .$this->fetchFile($url,.$cacheKe
401e0 79 2c 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 y,.$metadata['sha256']);.}..$thi
40200 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 73 28 24 69 6e 63 6c 75 64 65 s->loadProviderListings($include
40220 64 44 61 74 61 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b dData);.}.}.elseif.(isset($data[
40240 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 0a 20 24 69 6e 63 'providers-includes'])).{...$inc
40260 6c 75 64 65 73 20 3d 20 24 64 61 74 61 5b 27 70 72 6f 76 69 64 65 72 73 2d 69 6e 63 6c 75 64 65 ludes.=.$data['providers-include
40280 73 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 73 20 61 73 20 24 69 6e 63 6c s'];.foreach.($includes.as.$incl
402a0 75 64 65 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 ude.=>.$metadata).{.if.($this->c
402c0 61 63 68 65 2d 3e 73 68 61 32 35 36 28 24 69 6e 63 6c 75 64 65 29 20 3d 3d 3d 20 24 6d 65 74 61 ache->sha256($include).===.$meta
402e0 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 data['sha256']).{.$includedData.
40300 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 =.json_decode($this->cache->read
40320 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 20 7b 0a 24 69 6e 63 ($include),.true);.}.else.{.$inc
40340 6c 75 64 65 64 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 69 6e ludedData.=.$this->fetchFile($in
40360 63 6c 75 64 65 2c 20 6e 75 6c 6c 2c 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 32 35 36 27 5d clude,.null,.$metadata['sha256']
40380 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 50 72 6f 76 69 64 65 72 4c 69 73 74 69 6e 67 );.}..$this->loadProviderListing
403a0 73 28 24 69 6e 63 6c 75 64 65 64 44 61 74 61 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 s($includedData);.}.}.}..protect
403c0 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 64 61 74 61 29 0a ed.function.loadIncludes($data).
403e0 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 69 66 20 28 21 69 {.$packages.=.array();....if.(!i
40400 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 26 26 20 21 69 73 73 65 sset($data['packages']).&&.!isse
40420 74 28 24 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 t($data['includes'])).{.foreach.
40440 28 24 64 61 74 61 20 61 73 20 24 70 6b 67 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 6b 67 5b ($data.as.$pkg).{.foreach.($pkg[
40460 27 76 65 72 73 69 6f 6e 73 27 5d 20 61 73 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 70 61 63 'versions'].as.$metadata).{.$pac
40480 6b 61 67 65 73 5b 5d 20 3d 20 24 6d 65 74 61 64 61 74 61 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e kages[].=.$metadata;.}.}..return
404a0 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 .$packages;.}..if.(isset($data['
404c0 70 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 packages'])).{.foreach.($data['p
404e0 61 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 ackages'].as.$package.=>.$versio
40500 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 ns).{.foreach.($versions.as.$ver
40520 73 69 6f 6e 20 3d 3e 20 24 6d 65 74 61 64 61 74 61 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d sion.=>.$metadata).{.$packages[]
40540 20 3d 20 24 6d 65 74 61 64 61 74 61 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 .=.$metadata;.}.}.}..if.(isset($
40560 64 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 data['includes'])).{.foreach.($d
40580 61 74 61 5b 27 69 6e 63 6c 75 64 65 73 27 5d 20 61 73 20 24 69 6e 63 6c 75 64 65 20 3d 3e 20 24 ata['includes'].as.$include.=>.$
405a0 6d 65 74 61 64 61 74 61 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 73 68 metadata).{.if.($this->cache->sh
405c0 61 31 28 24 69 6e 63 6c 75 64 65 29 20 3d 3d 3d 20 24 6d 65 74 61 64 61 74 61 5b 27 73 68 61 31 a1($include).===.$metadata['sha1
405e0 27 5d 29 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 ']).{.$includedData.=.json_decod
40600 65 28 24 74 68 69 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 69 6e 63 6c 75 64 65 29 2c 20 e($this->cache->read($include),.
40620 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 63 6c 75 64 65 64 44 61 74 61 20 3d 20 true);.}.else.{.$includedData.=.
40640 24 74 68 69 73 2d 3e 66 65 74 63 68 46 69 6c 65 28 24 69 6e 63 6c 75 64 65 29 3b 0a 7d 0a 24 70 $this->fetchFile($include);.}.$p
40660 61 63 6b 61 67 65 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 ackages.=.array_merge($packages,
40680 20 24 74 68 69 73 2d 3e 6c 6f 61 64 49 6e 63 6c 75 64 65 73 28 24 69 6e 63 6c 75 64 65 64 44 61 .$this->loadIncludes($includedDa
406a0 74 61 29 29 3b 0a 7d 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 ta));.}.}..return.$packages;.}..
406c0 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 50 61 63 6b 61 67 65 protected.function.createPackage
406e0 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 24 63 6c 61 73 73 29 0a 7b 0a 74 72 79 20 7b 0a 69 66 (array.$data,.$class).{.try.{.if
40700 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c .(!isset($data['notification-url
40720 27 5d 29 29 20 7b 0a 24 64 61 74 61 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d '])).{.$data['notification-url']
40740 20 3d 20 24 74 68 69 73 2d 3e 6e 6f 74 69 66 79 55 72 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 .=.$this->notifyUrl;.}..return.$
40760 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 64 61 74 61 2c 20 27 43 6f 6d 70 6f this->loader->load($data,.'Compo
40780 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 27 29 3b 0a 7d ser\Package\CompletePackage');.}
407a0 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
407c0 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.
407e0 6c 6f 61 64 20 70 61 63 6b 61 67 65 20 27 2e 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 6e 61 6d load.package.'.(isset($data['nam
40800 65 27 5d 29 20 3f 20 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3a 20 6a 73 6f 6e 5f 65 6e 63 6f e']).?.$data['name'].:.json_enco
40820 64 65 28 24 64 61 74 61 29 29 2e 27 20 69 6e 20 27 2e 24 74 68 69 73 2d 3e 75 72 6c 2e 27 3a 20 de($data)).'.in.'.$this->url.':.
40840 5b 27 2e 67 65 74 5f 63 6c 61 73 73 28 24 65 29 2e 27 5d 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 ['.get_class($e).'].'.$e->getMes
40860 73 61 67 65 28 29 2c 20 30 2c 20 24 65 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 sage(),.0,.$e);.}.}..protected.f
40880 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 46 69 6c 65 28 24 66 69 6c 65 6e 61 6d 65 2c 20 24 63 61 unction.fetchFile($filename,.$ca
408a0 63 68 65 4b 65 79 20 3d 20 6e 75 6c 6c 2c 20 24 73 68 61 32 35 36 20 3d 20 6e 75 6c 6c 29 0a 7b cheKey.=.null,.$sha256.=.null).{
408c0 0a 69 66 20 28 21 24 63 61 63 68 65 4b 65 79 29 20 7b 0a 24 63 61 63 68 65 4b 65 79 20 3d 20 24 .if.(!$cacheKey).{.$cacheKey.=.$
408e0 66 69 6c 65 6e 61 6d 65 3b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 62 61 73 filename;.$filename.=.$this->bas
40900 65 55 72 6c 2e 27 2f 27 2e 24 66 69 6c 65 6e 61 6d 65 3b 0a 7d 0a 0a 24 72 65 74 72 69 65 73 20 eUrl.'/'.$filename;.}..$retries.
40920 3d 20 33 3b 0a 77 68 69 6c 65 20 28 24 72 65 74 72 69 65 73 2d 2d 29 20 7b 0a 74 72 79 20 7b 0a =.3;.while.($retries--).{.try.{.
40940 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 20 3d 20 6e 65 77 20 50 72 65 46 $preFileDownloadEvent.=.new.PreF
40960 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 28 50 6c 75 67 69 6e 45 76 65 6e 74 73 3a 3a 50 ileDownloadEvent(PluginEvents::P
40980 52 45 5f 46 49 4c 45 5f 44 4f 57 4e 4c 4f 41 44 2c 20 24 74 68 69 73 2d 3e 72 66 73 2c 20 24 66 RE_FILE_DOWNLOAD,.$this->rfs,.$f
409a0 69 6c 65 6e 61 6d 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 ilename);.if.($this->eventDispat
409c0 63 68 65 72 29 20 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 cher).{.$this->eventDispatcher->
409e0 64 69 73 70 61 74 63 68 28 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 2d 3e dispatch($preFileDownloadEvent->
40a00 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 getName(),.$preFileDownloadEvent
40a20 29 3b 0a 7d 0a 24 6a 73 6f 6e 20 3d 20 24 70 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 );.}.$json.=.$preFileDownloadEve
40a40 6e 74 2d 3e 67 65 74 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 29 2d 3e 67 65 74 43 6f nt->getRemoteFilesystem()->getCo
40a60 6e 74 65 6e 74 73 28 24 66 69 6c 65 6e 61 6d 65 2c 20 24 66 69 6c 65 6e 61 6d 65 2c 20 66 61 6c ntents($filename,.$filename,.fal
40a80 73 65 29 3b 0a 69 66 20 28 24 73 68 61 32 35 36 20 26 26 20 24 73 68 61 32 35 36 20 21 3d 3d 20 se);.if.($sha256.&&.$sha256.!==.
40aa0 68 61 73 68 28 27 73 68 61 32 35 36 27 2c 20 24 6a 73 6f 6e 29 29 20 7b 0a 69 66 20 28 24 72 65 hash('sha256',.$json)).{.if.($re
40ac0 74 72 69 65 73 29 20 7b 0a 75 73 6c 65 65 70 28 31 30 30 30 30 30 29 3b 0a 0a 63 6f 6e 74 69 6e tries).{.usleep(100000);..contin
40ae0 75 65 3b 0a 7d 0a 0a 0a 20 74 68 72 6f 77 20 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 53 65 63 ue;.}....throw.new.RepositorySec
40b00 75 72 69 74 79 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 63 6f 6e 74 65 6e 74 73 20 6f 66 20 urityException('The.contents.of.
40b20 27 2e 24 66 69 6c 65 6e 61 6d 65 2e 27 20 64 6f 20 6e 6f 74 20 6d 61 74 63 68 20 69 74 73 20 73 '.$filename.'.do.not.match.its.s
40b40 69 67 6e 61 74 75 72 65 2e 20 54 68 69 73 20 73 68 6f 75 6c 64 20 69 6e 64 69 63 61 74 65 20 61 ignature..This.should.indicate.a
40b60 20 6d 61 6e 2d 69 6e 2d 74 68 65 2d 6d 69 64 64 6c 65 20 61 74 74 61 63 6b 2e 20 54 72 79 20 72 .man-in-the-middle.attack..Try.r
40b80 75 6e 6e 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 61 67 61 69 6e 20 61 6e 64 20 72 65 70 6f 72 74 unning.composer.again.and.report
40ba0 20 74 68 69 73 20 69 66 20 79 6f 75 20 74 68 69 6e 6b 20 69 74 20 69 73 20 61 20 6d 69 73 74 61 .this.if.you.think.it.is.a.mista
40bc0 6b 65 2e 27 29 3b 0a 7d 0a 24 64 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 ke.');.}.$data.=.JsonFile::parse
40be0 4a 73 6f 6e 28 24 6a 73 6f 6e 2c 20 24 66 69 6c 65 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 63 Json($json,.$filename);.$this->c
40c00 61 63 68 65 2d 3e 77 72 69 74 65 28 24 63 61 63 68 65 4b 65 79 2c 20 24 6a 73 6f 6e 29 3b 0a 0a ache->write($cacheKey,.$json);..
40c20 62 72 65 61 6b 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 break;.}.catch.(\Exception.$e).{
40c40 0a 69 66 20 28 24 72 65 74 72 69 65 73 29 20 7b 0a 75 73 6c 65 65 70 28 31 30 30 30 30 30 29 3b .if.($retries).{.usleep(100000);
40c60 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 .continue;.}..if.($e.instanceof.
40c80 52 65 70 6f 73 69 74 6f 72 79 53 65 63 75 72 69 74 79 45 78 63 65 70 74 69 6f 6e 29 20 7b 0a 74 RepositorySecurityException).{.t
40ca0 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6e 74 65 6e 74 73 20 3d 20 24 74 68 69 hrow.$e;.}..if.($contents.=.$thi
40cc0 73 2d 3e 63 61 63 68 65 2d 3e 72 65 61 64 28 24 63 61 63 68 65 4b 65 79 29 29 20 7b 0a 69 66 20 s->cache->read($cacheKey)).{.if.
40ce0 28 21 24 74 68 69 73 2d 3e 64 65 67 72 61 64 65 64 4d 6f 64 65 29 20 7b 0a 24 74 68 69 73 2d 3e (!$this->degradedMode).{.$this->
40d00 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 27 2e 24 65 2d 3e 67 65 74 4d 65 73 io->write('<warning>'.$e->getMes
40d20 73 61 67 65 28 29 2e 27 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d sage().'</warning>');.$this->io-
40d40 3e 77 72 69 74 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 >write('<warning>'.$this->url.'.
40d60 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 75 6c 6c 79 20 6c 6f 61 64 65 64 2c 20 70 61 63 6b 61 could.not.be.fully.loaded,.packa
40d80 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 77 61 73 20 6c 6f 61 64 65 64 20 66 72 6f 6d 20 74 ge.information.was.loaded.from.t
40da0 68 65 20 6c 6f 63 61 6c 20 63 61 63 68 65 20 61 6e 64 20 6d 61 79 20 62 65 20 6f 75 74 20 6f 66 he.local.cache.and.may.be.out.of
40dc0 20 64 61 74 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 64 65 67 72 .date</warning>');.}.$this->degr
40de0 61 64 65 64 4d 6f 64 65 20 3d 20 74 72 75 65 3b 0a 24 64 61 74 61 20 3d 20 4a 73 6f 6e 46 69 6c adedMode.=.true;.$data.=.JsonFil
40e00 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 63 6f 6e 74 65 6e 74 73 2c 20 24 74 68 69 73 2d 3e 63 e::parseJson($contents,.$this->c
40e20 61 63 68 65 2d 3e 67 65 74 52 6f 6f 74 28 29 2e 24 63 61 63 68 65 4b 65 79 29 3b 0a 0a 62 72 65 ache->getRoot().$cacheKey);..bre
40e40 61 6b 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 ak;.}..throw.$e;.}.}..return.$da
40e60 74 61 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 ta;.}.}.<?php............namespa
40e80 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 0a ce.Composer\Repository\Pear;....
40ea0 0a 0a 0a 63 6c 61 73 73 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 ...class.DependencyInfo.{.privat
40ec0 65 20 24 72 65 71 75 69 72 65 73 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 61 6c 73 3b e.$requires;.private.$optionals;
40ee0 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
40f00 74 28 24 72 65 71 75 69 72 65 73 2c 20 24 6f 70 74 69 6f 6e 61 6c 73 29 0a 7b 0a 24 74 68 69 73 t($requires,.$optionals).{.$this
40f20 2d 3e 72 65 71 75 69 72 65 73 20 3d 20 24 72 65 71 75 69 72 65 73 3b 0a 24 74 68 69 73 2d 3e 6f ->requires.=.$requires;.$this->o
40f40 70 74 69 6f 6e 61 6c 73 20 3d 20 24 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ptionals.=.$optionals;.}.....pub
40f60 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 lic.function.getRequires().{.ret
40f80 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 urn.$this->requires;.}.....publi
40fa0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 61 6c 73 28 29 0a 7b 0a 72 65 74 75 c.function.getOptionals().{.retu
40fc0 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a rn.$this->optionals;.}.}.<?php..
40fe0 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
41000 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 ository\Pear;.......class.Packag
41020 65 44 65 70 65 6e 64 65 6e 63 79 50 61 72 73 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 eDependencyParser.{.......public
41040 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 .function.buildDependencyInfo($d
41060 65 70 41 72 72 61 79 29 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 64 65 70 41 72 72 epArray).{.if.(!is_array($depArr
41080 61 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f ay)).{.return.new.DependencyInfo
410a0 28 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 73 (array(),.array());.}.if.(!$this
410c0 2d 3e 69 73 48 61 73 68 28 24 64 65 70 41 72 72 61 79 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 65 ->isHash($depArray)).{.return.ne
410e0 77 20 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 w.DependencyInfo($this->buildDep
41100 65 6e 64 65 6e 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 2c 20 61 72 72 61 79 28 endency10Info($depArray),.array(
41120 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 65 6e 64 ));.}..return.$this->buildDepend
41140 65 6e 63 79 32 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ency20Info($depArray);.}........
41160 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 65 ......private.function.buildDepe
41180 6e 64 65 6e 63 79 31 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a 73 74 61 74 69 63 ndency10Info($depArray).{.static
411a0 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 20 3d 20 61 72 72 61 79 28 27 68 61 .$dep10toOperatorMap.=.array('ha
411c0 73 27 3d 3e 27 3d 3d 27 2c 20 27 65 71 27 20 3d 3e 20 27 3d 3d 27 2c 20 27 67 65 27 20 3d 3e 20 s'=>'==',.'eq'.=>.'==',.'ge'.=>.
411e0 27 3e 3d 27 2c 20 27 67 74 27 20 3d 3e 20 27 3e 27 2c 20 27 6c 65 27 20 3d 3e 20 27 3c 3d 27 2c '>=',.'gt'.=>.'>',.'le'.=>.'<=',
41200 20 27 6c 74 27 20 3d 3e 20 27 3c 27 2c 20 27 6e 6f 74 27 20 3d 3e 20 27 21 3d 27 29 3b 0a 0a 24 .'lt'.=>.'<',.'not'.=>.'!=');..$
41220 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 result.=.array();..foreach.($dep
41240 41 72 72 61 79 20 61 73 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 Array.as.$depItem).{.if.(empty($
41260 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 7c 7c 20 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 depItem['rel']).||.!array_key_ex
41280 69 73 74 73 28 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 2c 20 24 64 65 70 31 30 74 6f 4f 70 ists($depItem['rel'],.$dep10toOp
412a0 65 72 61 74 6f 72 4d 61 70 29 29 20 7b 0a 0a 20 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 64 65 eratorMap)).{...continue;.}..$de
412c0 70 54 79 70 65 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 6f 70 74 69 6f 6e 61 pType.=.!empty($depItem['optiona
412e0 6c 27 5d 29 20 26 26 20 27 79 65 73 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 6f 70 74 69 6f l']).&&.'yes'.==.$depItem['optio
41300 6e 61 6c 27 5d 0a 3f 20 27 6f 70 74 69 6f 6e 61 6c 27 0a 3a 20 27 72 65 71 75 69 72 65 64 27 3b nal'].?.'optional'.:.'required';
41320 0a 24 64 65 70 54 79 70 65 20 3d 20 27 6e 6f 74 27 20 3d 3d 20 24 64 65 70 49 74 65 6d 5b 27 72 .$depType.=.'not'.==.$depItem['r
41340 65 6c 27 5d 0a 3f 20 27 63 6f 6e 66 6c 69 63 74 73 27 0a 3a 20 24 64 65 70 54 79 70 65 3b 0a 0a el'].?.'conflicts'.:.$depType;..
41360 24 64 65 70 56 65 72 73 69 6f 6e 20 3d 20 21 65 6d 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 76 $depVersion.=.!empty($depItem['v
41380 65 72 73 69 6f 6e 27 5d 29 20 3f 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 ersion']).?.$this->parseVersion(
413a0 24 64 65 70 49 74 65 6d 5b 27 76 65 72 73 69 6f 6e 27 5d 29 20 3a 20 27 2a 27 3b 0a 0a 0a 20 24 $depItem['version']).:.'*';....$
413c0 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 28 27 68 61 73 27 20 3d 3d depVersionConstraint.=.('has'.==
413e0 20 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 20 7c 7c 20 27 6e 6f 74 27 20 3d 3d 20 24 64 65 .$depItem['rel'].||.'not'.==.$de
41400 70 49 74 65 6d 5b 27 72 65 6c 27 5d 29 20 26 26 20 27 2a 27 20 3d 3d 20 24 64 65 70 56 65 72 73 pItem['rel']).&&.'*'.==.$depVers
41420 69 6f 6e 0a 3f 20 27 2a 27 0a 3a 20 24 64 65 70 31 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b ion.?.'*'.:.$dep10toOperatorMap[
41440 24 64 65 70 49 74 65 6d 5b 27 72 65 6c 27 5d 5d 20 2e 20 24 64 65 70 56 65 72 73 69 6f 6e 3b 0a $depItem['rel']]...$depVersion;.
41460 0a 73 77 69 74 63 68 20 28 24 64 65 70 49 74 65 6d 5b 27 74 79 70 65 27 5d 29 20 7b 0a 63 61 73 .switch.($depItem['type']).{.cas
41480 65 20 27 70 68 70 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 70 68 70 27 e.'php':.$depChannelName.=.'php'
414a0 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 0a 63 ;.$depPackageName.=.'';.break;.c
414c0 61 73 65 20 27 70 6b 67 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 21 65 6d ase.'pkg':.$depChannelName.=.!em
414e0 70 74 79 28 24 64 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 29 20 3f 20 24 64 65 70 49 pty($depItem['channel']).?.$depI
41500 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 20 3a 20 27 70 65 61 72 2e 70 68 70 2e 6e 65 74 27 3b tem['channel'].:.'pear.php.net';
41520 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d 5b 27 6e 61 6d .$depPackageName.=.$depItem['nam
41540 65 27 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 65 78 74 27 3a 0a 24 64 65 70 43 68 61 6e e'];.break;.case.'ext':.$depChan
41560 6e 65 6c 4e 61 6d 65 20 3d 20 27 65 78 74 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 nelName.=.'ext';.$depPackageName
41580 20 3d 20 24 64 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 .=.$depItem['name'];.break;.case
415a0 20 27 6f 73 27 3a 0a 63 61 73 65 20 27 73 61 70 69 27 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e .'os':.case.'sapi':.$depChannelN
415c0 61 6d 65 20 3d 20 27 27 3b 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 27 27 3b 0a ame.=.'';.$depPackageName.=.'';.
415e0 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 break;.default:.$depChannelName.
41600 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 65 61 =.'';.$depPackageName.=.'';.brea
41620 6b 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 21 3d 20 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 29 k;.}..if.(''.!=.$depChannelName)
41640 20 7b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e .{.$result[].=.new.DependencyCon
41660 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
41680 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
416a0 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c ackageName.);.}.}..return.$resul
416c0 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 t;.}........private.function.bui
416e0 6c 64 44 65 70 65 6e 64 65 6e 63 79 32 30 49 6e 66 6f 28 24 64 65 70 41 72 72 61 79 29 0a 7b 0a ldDependency20Info($depArray).{.
41700 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 70 74 69 6f 6e 61 6c 73 20 3d 20 $result.=.array();.$optionals.=.
41720 61 72 72 61 79 28 29 3b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 20 3d 20 61 72 72 array();.$defaultOptionals.=.arr
41740 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 41 72 72 61 79 20 61 73 20 24 64 65 70 ay();.foreach.($depArray.as.$dep
41760 54 79 70 65 20 3d 3e 20 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 20 7b 0a 69 66 20 28 21 69 73 Type.=>.$depTypeGroup).{.if.(!is
41780 5f 61 72 72 61 79 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 _array($depTypeGroup)).{.continu
417a0 65 3b 0a 7d 0a 69 66 20 28 27 72 65 71 75 69 72 65 64 27 20 3d 3d 20 24 64 65 70 54 79 70 65 20 e;.}.if.('required'.==.$depType.
417c0 7c 7c 20 27 6f 70 74 69 6f 6e 61 6c 27 20 3d 3d 20 24 64 65 70 54 79 70 65 29 20 7b 0a 66 6f 72 ||.'optional'.==.$depType).{.for
417e0 65 61 63 68 20 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 61 73 20 24 64 65 70 49 74 65 6d 54 each.($depTypeGroup.as.$depItemT
41800 79 70 65 20 3d 3e 20 24 64 65 70 49 74 65 6d 29 20 7b 0a 73 77 69 74 63 68 20 28 24 64 65 70 49 ype.=>.$depItem).{.switch.($depI
41820 74 65 6d 54 79 70 65 29 20 7b 0a 63 61 73 65 20 27 70 68 70 27 3a 0a 24 72 65 73 75 6c 74 5b 5d temType).{.case.'php':.$result[]
41840 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 .=.new.DependencyConstraint(.$de
41860 70 54 79 70 65 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 pType,.$this->parse20VersionCons
41880 74 72 61 69 6e 74 28 24 64 65 70 49 74 65 6d 29 2c 0a 27 70 68 70 27 2c 0a 27 27 0a 29 3b 0a 62 traint($depItem),.'php',.''.);.b
418a0 72 65 61 6b 3b 0a 63 61 73 65 20 27 70 61 63 6b 61 67 65 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 reak;.case.'package':.$deps.=.$t
418c0 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 his->buildDepPackageConstraints(
418e0 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 $depItem,.$depType);.$result.=.a
41900 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 65 70 73 29 3b 0a 62 72 65 61 rray_merge($result,.$deps);.brea
41920 6b 3b 0a 63 61 73 65 20 27 65 78 74 65 6e 73 69 6f 6e 27 3a 0a 24 64 65 70 73 20 3d 20 24 74 68 k;.case.'extension':.$deps.=.$th
41940 69 73 2d 3e 62 75 69 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 73 is->buildDepExtensionConstraints
41960 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 ($depItem,.$depType);.$result.=.
41980 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 75 6c 74 2c 20 24 64 65 70 73 29 3b 0a 62 72 65 array_merge($result,.$deps);.bre
419a0 61 6b 3b 0a 63 61 73 65 20 27 73 75 62 70 61 63 6b 61 67 65 27 3a 0a 24 64 65 70 73 20 3d 20 24 ak;.case.'subpackage':.$deps.=.$
419c0 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 this->buildDepPackageConstraints
419e0 28 24 64 65 70 49 74 65 6d 2c 20 27 72 65 70 6c 61 63 65 73 27 29 3b 0a 24 64 65 66 61 75 6c 74 ($depItem,.'replaces');.$default
41a00 4f 70 74 69 6f 6e 61 6c 73 20 2b 3d 20 24 64 65 70 73 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 Optionals.+=.$deps;.break;.case.
41a20 27 6f 73 27 3a 0a 63 61 73 65 20 27 70 65 61 72 69 6e 73 74 61 6c 6c 65 72 27 3a 0a 62 72 65 61 'os':.case.'pearinstaller':.brea
41a40 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 k;.default:.break;.}.}.}.elseif.
41a60 28 27 67 72 6f 75 70 27 20 3d 3d 20 24 64 65 70 54 79 70 65 29 20 7b 0a 69 66 20 28 24 74 68 69 ('group'.==.$depType).{.if.($thi
41a80 73 2d 3e 69 73 48 61 73 68 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 29 20 7b 0a 24 64 65 70 s->isHash($depTypeGroup)).{.$dep
41aa0 54 79 70 65 47 72 6f 75 70 20 3d 20 61 72 72 61 79 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 29 TypeGroup.=.array($depTypeGroup)
41ac0 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 54 79 70 65 47 72 6f 75 70 20 61 73 20 24 ;.}..foreach.($depTypeGroup.as.$
41ae0 64 65 70 49 74 65 6d 29 20 7b 0a 24 67 72 6f 75 70 4e 61 6d 65 20 3d 20 24 64 65 70 49 74 65 6d depItem).{.$groupName.=.$depItem
41b00 5b 27 61 74 74 72 69 62 73 27 5d 5b 27 6e 61 6d 65 27 5d 3b 0a 69 66 20 28 21 69 73 73 65 74 28 ['attribs']['name'];.if.(!isset(
41b20 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 29 29 20 7b 0a 24 6f 70 74 69 $optionals[$groupName])).{.$opti
41b40 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a onals[$groupName].=.array();.}..
41b60 69 66 20 28 69 73 73 65 74 28 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 65 27 5d if.(isset($depItem['subpackage']
41b80 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 24 67 72 6f 75 70 4e 61 6d 65 5d 20 2b 3d 20 24 )).{.$optionals[$groupName].+=.$
41ba0 74 68 69 73 2d 3e 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 this->buildDepPackageConstraints
41bc0 28 24 64 65 70 49 74 65 6d 5b 27 73 75 62 70 61 63 6b 61 67 65 27 5d 2c 20 27 72 65 70 6c 61 63 ($depItem['subpackage'],.'replac
41be0 65 73 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 73 75 6c 74 20 2b 3d 20 24 74 68 69 73 2d es');.}.else.{.$result.+=.$this-
41c00 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 65 70 >buildDepPackageConstraints($dep
41c20 49 74 65 6d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 20 27 6f 70 74 69 6f 6e 61 6c 27 29 3b 0a 7d 0a Item['package'],.'optional');.}.
41c40 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 61 }.}.}..if.(count($defaultOptiona
41c60 6c 73 29 20 3e 20 30 29 20 7b 0a 24 6f 70 74 69 6f 6e 61 6c 73 5b 27 2a 27 5d 20 3d 20 24 64 65 ls).>.0).{.$optionals['*'].=.$de
41c80 66 61 75 6c 74 4f 70 74 69 6f 6e 61 6c 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 faultOptionals;.}..return.new.De
41ca0 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 72 65 73 75 6c 74 2c 20 24 6f 70 74 69 6f 6e 61 6c 73 pendencyInfo($result,.$optionals
41cc0 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 );.}.........private.function.bu
41ce0 69 6c 64 44 65 70 45 78 74 65 6e 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 64 65 70 49 ildDepExtensionConstraints($depI
41d00 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 48 61 tem,.$depType).{.if.($this->isHa
41d20 73 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 70 49 74 65 6d 20 3d 20 61 72 72 61 79 sh($depItem)).{.$depItem.=.array
41d40 28 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 ($depItem);.}..$result.=.array()
41d60 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d 20 61 73 20 24 73 75 62 44 65 70 49 74 ;.foreach.($depItem.as.$subDepIt
41d80 65 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 27 65 78 74 27 3b 0a 24 em).{.$depChannelName.=.'ext';.$
41da0 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 6e 61 depPackageName.=.$subDepItem['na
41dc0 6d 65 27 5d 3b 0a 24 64 65 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 me'];.$depVersionConstraint.=.$t
41de0 68 69 73 2d 3e 70 61 72 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 73 his->parse20VersionConstraint($s
41e00 75 62 44 65 70 49 74 65 6d 29 3b 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 ubDepItem);..$result[].=.new.Dep
41e20 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 endencyConstraint(.$depType,.$de
41e40 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e pVersionConstraint,.$depChannelN
41e60 61 6d 65 2c 0a 24 64 65 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 ame,.$depPackageName.);.}..retur
41e80 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e n.$result;.}.........private.fun
41ea0 63 74 69 6f 6e 20 62 75 69 6c 64 44 65 70 50 61 63 6b 61 67 65 43 6f 6e 73 74 72 61 69 6e 74 73 ction.buildDepPackageConstraints
41ec0 28 24 64 65 70 49 74 65 6d 2c 20 24 64 65 70 54 79 70 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 ($depItem,.$depType).{.if.($this
41ee0 2d 3e 69 73 48 61 73 68 28 24 64 65 70 49 74 65 6d 29 29 20 7b 0a 24 64 65 70 49 74 65 6d 20 3d ->isHash($depItem)).{.$depItem.=
41f00 20 61 72 72 61 79 28 24 64 65 70 49 74 65 6d 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 61 .array($depItem);.}..$result.=.a
41f20 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 49 74 65 6d 20 61 73 20 24 73 75 rray();.foreach.($depItem.as.$su
41f40 62 44 65 70 49 74 65 6d 29 20 7b 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 73 bDepItem).{.$depChannelName.=.$s
41f60 75 62 44 65 70 49 74 65 6d 5b 27 63 68 61 6e 6e 65 6c 27 5d 3b 0a 24 64 65 70 50 61 63 6b 61 67 ubDepItem['channel'];.$depPackag
41f80 65 4e 61 6d 65 20 3d 20 24 73 75 62 44 65 70 49 74 65 6d 5b 27 6e 61 6d 65 27 5d 3b 0a 24 64 65 eName.=.$subDepItem['name'];.$de
41fa0 70 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 pVersionConstraint.=.$this->pars
41fc0 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 24 73 75 62 44 65 70 49 74 65 6d e20VersionConstraint($subDepItem
41fe0 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 73 75 62 44 65 70 49 74 65 6d 5b 27 63 6f 6e 66 6c 69 );.if.(isset($subDepItem['confli
42000 63 74 73 27 5d 29 29 20 7b 0a 24 64 65 70 54 79 70 65 20 3d 20 27 63 6f 6e 66 6c 69 63 74 73 27 cts'])).{.$depType.=.'conflicts'
42020 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 6e 65 77 20 44 65 70 65 6e 64 65 6e 63 79 43 ;.}..$result[].=.new.DependencyC
42040 6f 6e 73 74 72 61 69 6e 74 28 0a 24 64 65 70 54 79 70 65 2c 0a 24 64 65 70 56 65 72 73 69 6f 6e onstraint(.$depType,.$depVersion
42060 43 6f 6e 73 74 72 61 69 6e 74 2c 0a 24 64 65 70 43 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 64 65 Constraint,.$depChannelName,.$de
42080 70 50 61 63 6b 61 67 65 4e 61 6d 65 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c pPackageName.);.}..return.$resul
420a0 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 t;.}........private.function.par
420c0 73 65 32 30 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 61 72 72 61 79 20 24 64 61 74 se20VersionConstraint(array.$dat
420e0 61 29 0a 7b 0a 73 74 61 74 69 63 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 20 a).{.static.$dep20toOperatorMap.
42100 3d 20 61 72 72 61 79 28 27 68 61 73 27 3d 3e 27 3d 3d 27 2c 20 27 6d 69 6e 27 20 3d 3e 20 27 3e =.array('has'=>'==',.'min'.=>.'>
42120 3d 27 2c 20 27 6d 61 78 27 20 3d 3e 20 27 3c 3d 27 2c 20 27 65 78 63 6c 75 64 65 27 20 3d 3e 20 =',.'max'.=>.'<=',.'exclude'.=>.
42140 27 21 3d 27 29 3b 0a 0a 24 76 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 76 61 '!=');..$versions.=.array();.$va
42160 6c 75 65 73 20 3d 20 61 72 72 61 79 5f 69 6e 74 65 72 73 65 63 74 5f 6b 65 79 28 24 64 61 74 61 lues.=.array_intersect_key($data
42180 2c 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 29 3b 0a 69 66 20 28 30 20 3d 3d ,.$dep20toOperatorMap);.if.(0.==
421a0 20 63 6f 75 6e 74 28 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 2a 27 3b 0a 7d .count($values)).{.return.'*';.}
421c0 0a 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 6d 69 6e 27 5d 29 20 26 26 20 69 73 .if.(isset($values['min']).&&.is
421e0 73 65 74 28 24 76 61 6c 75 65 73 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 26 26 20 24 64 61 74 61 set($values['exclude']).&&.$data
42200 5b 27 6d 69 6e 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 7b 0a 24 ['min'].==.$data['exclude']).{.$
42220 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 27 3e 27 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 versions[].=.'>'...$this->parseV
42240 65 72 73 69 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 69 6e 27 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 ersion($values['min']);.}.elseif
42260 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 6d 61 78 27 5d 29 20 26 26 20 69 73 73 65 74 .(isset($values['max']).&&.isset
42280 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 6d ($values['exclude']).&&.$data['m
422a0 61 78 27 5d 20 3d 3d 20 24 64 61 74 61 5b 27 65 78 63 6c 75 64 65 27 5d 29 20 7b 0a 24 76 65 72 ax'].==.$data['exclude']).{.$ver
422c0 73 69 6f 6e 73 5b 5d 20 3d 20 27 3c 27 20 2e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 sions[].=.'<'...$this->parseVers
422e0 69 6f 6e 28 24 76 61 6c 75 65 73 5b 27 6d 61 78 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f ion($values['max']);.}.else.{.fo
42300 72 65 61 63 68 20 28 24 76 61 6c 75 65 73 20 61 73 20 24 6f 70 20 3d 3e 20 24 76 65 72 73 69 6f reach.($values.as.$op.=>.$versio
42320 6e 29 20 7b 0a 69 66 20 28 27 65 78 63 6c 75 64 65 27 20 3d 3d 20 24 6f 70 20 26 26 20 69 73 5f n).{.if.('exclude'.==.$op.&&.is_
42340 61 72 72 61 79 28 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 array($version)).{.foreach.($ver
42360 73 69 6f 6e 20 61 73 20 24 76 65 72 73 69 6f 6e 50 61 72 74 29 20 7b 0a 24 76 65 72 73 69 6f 6e sion.as.$versionPart).{.$version
42380 73 5b 5d 20 3d 20 24 64 65 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 6f 70 5d 20 2e s[].=.$dep20toOperatorMap[$op]..
423a0 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 50 61 72 .$this->parseVersion($versionPar
423c0 74 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 73 5b 5d 20 3d 20 24 64 65 t);.}.}.else.{.$versions[].=.$de
423e0 70 32 30 74 6f 4f 70 65 72 61 74 6f 72 4d 61 70 5b 24 6f 70 5d 20 2e 20 24 74 68 69 73 2d 3e 70 p20toOperatorMap[$op]...$this->p
42400 61 72 73 65 56 65 72 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 arseVersion($version);.}.}.}..re
42420 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 27 2c 20 24 76 65 72 73 69 6f 6e 73 29 3b 0a 7d 0a turn.implode(',',.$versions);.}.
42440 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 56 65 72 .......private.function.parseVer
42460 73 69 6f 6e 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 sion($version).{.if.(preg_match(
42480 27 7b 5e 76 3f 28 5c 64 7b 31 2c 33 7d 29 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 28 5c '{^v?(\d{1,3})(\.\d+)?(\.\d+)?(\
424a0 2e 5c 64 2b 29 3f 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 .\d+)?}i',.$version,.$matches)).
424c0 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 0a 2e 28 21 65 6d 70 74 {.$version.=.$matches[1]..(!empt
424e0 79 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 3a 20 27 y($matches[2]).?.$matches[2].:.'
42500 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 3f 20 24 6d 61 .0')..(!empty($matches[3]).?.$ma
42520 74 63 68 65 73 5b 33 5d 20 3a 20 27 2e 30 27 29 0a 2e 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 tches[3].:.'.0')..(!empty($match
42540 65 73 5b 34 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 34 5d 20 3a 20 27 2e 30 27 29 3b 0a 0a 72 es[4]).?.$matches[4].:.'.0');..r
42560 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a eturn.$version;.}..return.null;.
42580 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 48 61 73 68 }........private.function.isHash
425a0 28 61 72 72 61 79 20 24 61 72 72 61 79 29 0a 7b 0a 72 65 74 75 72 6e 20 21 61 72 72 61 79 5f 6b (array.$array).{.return.!array_k
425c0 65 79 5f 65 78 69 73 74 73 28 31 2c 20 24 61 72 72 61 79 29 20 26 26 20 21 61 72 72 61 79 5f 6b ey_exists(1,.$array).&&.!array_k
425e0 65 79 5f 65 78 69 73 74 73 28 30 2c 20 24 61 72 72 61 79 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a ey_exists(0,.$array);.}.}.<?php.
42600 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
42620 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e pository\Pear;.......class.Chann
42640 65 6c 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 elInfo.{.private.$name;.private.
42660 24 61 6c 69 61 73 3b 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 73 3b 0a 0a 0a 0a 0a 0a $alias;.private.$packages;......
42680 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
426a0 6d 65 2c 20 24 61 6c 69 61 73 2c 20 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 me,.$alias,.array.$packages).{.$
426c0 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 this->name.=.$name;.$this->alias
426e0 20 3d 20 24 61 6c 69 61 73 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 20 3d 20 24 70 61 .=.$alias;.$this->packages.=.$pa
42700 63 6b 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ckages;.}.......public.function.
42720 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a getName().{.return.$this->name;.
42740 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 6c 69 61 73 }.......public.function.getAlias
42760 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 0a ().{.return.$this->alias;.}.....
42780 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 73 28 29 0a ..public.function.getPackages().
427a0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 7d 0a 3c 3f {.return.$this->packages;.}.}.<?
427c0 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
427e0 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 65 72 r\Repository\Pear;..use.Composer
42800 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a \Util\RemoteFilesystem;.........
42820 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 class.ChannelReader.extends.Base
42840 43 68 61 6e 6e 65 6c 52 65 61 64 65 72 0a 7b 0a 0a 70 72 69 76 61 74 65 20 24 72 65 61 64 65 72 ChannelReader.{..private.$reader
42860 4d 61 70 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 Map;..public.function.__construc
42880 74 28 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a 70 61 72 65 6e t(RemoteFilesystem.$rfs).{.paren
428a0 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 66 73 29 3b 0a 0a 24 72 65 73 74 31 30 72 65 t::__construct($rfs);..$rest10re
428c0 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 65 72 28 24 ader.=.new.ChannelRest10Reader($
428e0 72 66 73 29 3b 0a 24 72 65 73 74 31 31 72 65 61 64 65 72 20 3d 20 6e 65 77 20 43 68 61 6e 6e 65 rfs);.$rest11reader.=.new.Channe
42900 6c 52 65 73 74 31 31 52 65 61 64 65 72 28 24 72 66 73 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 61 lRest11Reader($rfs);..$this->rea
42920 64 65 72 4d 61 70 20 3d 20 61 72 72 61 79 28 0a 27 52 45 53 54 31 2e 33 27 20 3d 3e 20 24 72 65 derMap.=.array(.'REST1.3'.=>.$re
42940 73 74 31 31 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 32 27 20 3d 3e 20 24 72 65 73 74 31 31 st11reader,.'REST1.2'.=>.$rest11
42960 72 65 61 64 65 72 2c 0a 27 52 45 53 54 31 2e 31 27 20 3d 3e 20 24 72 65 73 74 31 31 72 65 61 64 reader,.'REST1.1'.=>.$rest11read
42980 65 72 2c 0a 27 52 45 53 54 31 2e 30 27 20 3d 3e 20 24 72 65 73 74 31 30 72 65 61 64 65 72 2c 0a er,.'REST1.0'.=>.$rest10reader,.
429a0 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 72 65 61 );.}.........public.function.rea
429c0 64 28 24 75 72 6c 29 0a 7b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 d($url).{.$xml.=.$this->requestX
429e0 6d 6c 28 24 75 72 6c 2c 20 22 2f 63 68 61 6e 6e 65 6c 2e 78 6d 6c 22 29 3b 0a 0a 24 63 68 61 6e ml($url,."/channel.xml");..$chan
42a00 6e 65 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 6e 61 6d 65 3b 0a 24 nelName.=.(string).$xml->name;.$
42a20 63 68 61 6e 6e 65 6c 53 75 6d 6d 61 72 79 20 3d 20 28 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e channelSummary.=.(string).$xml->
42a40 73 75 6d 6d 61 72 79 3b 0a 24 63 68 61 6e 6e 65 6c 41 6c 69 61 73 20 3d 20 28 73 74 72 69 6e 67 summary;.$channelAlias.=.(string
42a60 29 20 24 78 6d 6c 2d 3e 73 75 67 67 65 73 74 65 64 61 6c 69 61 73 3b 0a 0a 24 73 75 70 70 6f 72 ).$xml->suggestedalias;..$suppor
42a80 74 65 64 56 65 72 73 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e tedVersions.=.array_keys($this->
42aa0 72 65 61 64 65 72 4d 61 70 29 3b 0a 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e readerMap);.$selectedRestVersion
42ac0 20 3d 20 24 74 68 69 73 2d 3e 73 65 6c 65 63 74 52 65 73 74 56 65 72 73 69 6f 6e 28 24 78 6d 6c .=.$this->selectRestVersion($xml
42ae0 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f 6e 73 29 3b 0a 69 66 20 28 21 24 73 65 6c ,.$supportedVersions);.if.(!$sel
42b00 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 ectedRestVersion).{.throw.new.\U
42b20 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 66 28 nexpectedValueException(sprintf(
42b40 27 50 45 41 52 20 72 65 70 6f 73 69 74 6f 72 79 20 25 73 20 64 6f 65 73 20 6e 6f 74 20 73 75 70 'PEAR.repository.%s.does.not.sup
42b60 70 6f 72 74 73 20 61 6e 79 20 6f 66 20 25 73 20 70 72 6f 74 6f 63 6f 6c 73 2e 27 2c 20 24 75 72 ports.any.of.%s.protocols.',.$ur
42b80 6c 2c 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 l,.implode(',.',.$supportedVersi
42ba0 6f 6e 73 29 29 29 3b 0a 7d 0a 0a 24 72 65 61 64 65 72 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 ons)));.}..$reader.=.$this->read
42bc0 65 72 4d 61 70 5b 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e 5b 27 76 65 72 73 erMap[$selectedRestVersion['vers
42be0 69 6f 6e 27 5d 5d 3b 0a 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 73 20 3d 20 24 72 ion']];.$packageDefinitions.=.$r
42c00 65 61 64 65 72 2d 3e 72 65 61 64 28 24 73 65 6c 65 63 74 65 64 52 65 73 74 56 65 72 73 69 6f 6e eader->read($selectedRestVersion
42c20 5b 27 62 61 73 65 55 72 6c 27 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 43 68 61 6e 6e 65 ['baseUrl']);..return.new.Channe
42c40 6c 49 6e 66 6f 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 63 68 61 6e 6e 65 6c 41 6c 69 61 lInfo($channelName,.$channelAlia
42c60 73 2c 20 24 70 61 63 6b 61 67 65 44 65 66 69 6e 69 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a s,.$packageDefinitions);.}......
42c80 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 52 65 73 74 56 65 ...private.function.selectRestVe
42ca0 72 73 69 6f 6e 28 24 63 68 61 6e 6e 65 6c 58 6d 6c 2c 20 24 73 75 70 70 6f 72 74 65 64 56 65 72 rsion($channelXml,.$supportedVer
42cc0 73 69 6f 6e 73 29 0a 7b 0a 24 63 68 61 6e 6e 65 6c 58 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 sions).{.$channelXml->registerXP
42ce0 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 48 41 4e 4e 45 4c athNamespace('ns',.self::CHANNEL
42d00 5f 4e 53 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 75 70 70 6f 72 74 65 64 56 65 72 73 69 6f _NS);..foreach.($supportedVersio
42d20 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 78 70 61 74 68 54 65 73 74 20 3d 20 22 ns.as.$version).{.$xpathTest.=."
42d40 6e 73 3a 73 65 72 76 65 72 73 2f 6e 73 3a 70 72 69 6d 61 72 79 2f 6e 73 3a 72 65 73 74 2f 6e 73 ns:servers/ns:primary/ns:rest/ns
42d60 3a 62 61 73 65 75 72 6c 5b 40 74 79 70 65 3d 27 7b 24 76 65 72 73 69 6f 6e 7d 27 5d 22 3b 0a 24 :baseurl[@type='{$version}']";.$
42d80 74 65 73 74 52 65 73 75 6c 74 20 3d 20 24 63 68 61 6e 6e 65 6c 58 6d 6c 2d 3e 78 70 61 74 68 28 testResult.=.$channelXml->xpath(
42da0 24 78 70 61 74 68 54 65 73 74 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 74 65 73 74 52 65 73 75 $xpathTest);.if.(count($testResu
42dc0 6c 74 29 20 3e 20 30 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 76 65 72 73 69 6f 6e lt).>.0).{.return.array('version
42de0 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 20 27 62 61 73 65 55 72 6c 27 20 3d 3e 20 28 73 74 72 '.=>.$version,.'baseUrl'.=>.(str
42e00 69 6e 67 29 20 24 74 65 73 74 52 65 73 75 6c 74 5b 30 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 ing).$testResult[0]);.}.}..retur
42e20 6e 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d n.null;.}.}.<?php............nam
42e40 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;
42e60 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 63 6b 61 67 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 61 .......class.PackageInfo.{.priva
42e80 74 65 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 te.$channelName;.private.$packag
42ea0 65 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 6c 69 63 65 6e 73 65 3b 0a 70 72 69 76 61 74 65 eName;.private.$license;.private
42ec0 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 .$shortDescription;.private.$des
42ee0 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 65 61 73 65 73 3b 0a 0a 0a 0a cription;.private.$releases;....
42f00 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
42f20 74 28 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 6c t($channelName,.$packageName,.$l
42f40 69 63 65 6e 73 65 2c 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 2c 20 24 64 65 73 63 icense,.$shortDescription,.$desc
42f60 72 69 70 74 69 6f 6e 2c 20 24 72 65 6c 65 61 73 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 68 61 ription,.$releases).{.$this->cha
42f80 6e 6e 65 6c 4e 61 6d 65 20 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e nnelName.=.$channelName;.$this->
42fa0 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 24 74 68 69 packageName.=.$packageName;.$thi
42fc0 73 2d 3e 6c 69 63 65 6e 73 65 20 3d 20 24 6c 69 63 65 6e 73 65 3b 0a 24 74 68 69 73 2d 3e 73 68 s->license.=.$license;.$this->sh
42fe0 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 ortDescription.=.$shortDescripti
43000 6f 6e 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 on;.$this->description.=.$descri
43020 70 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 73 20 3d 20 24 72 65 6c 65 61 73 ption;.$this->releases.=.$releas
43040 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 68 61 es;.}.....public.function.getCha
43060 6e 6e 65 6c 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 68 61 6e 6e nnelName().{.return.$this->chann
43080 65 6c 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 elName;.}.....public.function.ge
430a0 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 tPackageName().{.return.$this->p
430c0 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ackageName;.}.....public.functio
430e0 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
43100 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e s->description;.}.....public.fun
43120 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 ction.getShortDescription().{.re
43140 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a turn.$this->shortDescription;.}.
43160 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 29 ....public.function.getLicense()
43180 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 0a .{.return.$this->license;.}.....
431a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 73 28 29 0a 7b 0a public.function.getReleases().{.
431c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 return.$this->releases;.}.}.<?ph
431e0 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\
43200 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 Repository\Pear;.......class.Dep
43220 65 6e 64 65 6e 63 79 43 6f 6e 73 74 72 61 69 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 74 79 70 endencyConstraint.{.private.$typ
43240 65 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 70 72 69 76 61 74 65 20 e;.private.$constraint;.private.
43260 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
43280 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e me;........public.function.__con
432a0 73 74 72 75 63 74 28 24 74 79 70 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 24 63 68 61 6e struct($type,.$constraint,.$chan
432c0 6e 65 6c 4e 61 6d 65 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e nelName,.$packageName).{.$this->
432e0 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 20 type.=.$type;.$this->constraint.
43300 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d =.$constraint;.$this->channelNam
43320 65 20 3d 20 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 e.=.$channelName;.$this->package
43340 4e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 Name.=.$packageName;.}..public.f
43360 75 6e 63 74 69 6f 6e 20 67 65 74 43 68 61 6e 6e 65 6c 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 unction.getChannelName().{.retur
43380 6e 20 24 74 68 69 73 2d 3e 63 68 61 6e 6e 65 6c 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 n.$this->channelName;.}..public.
433a0 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 0a 7b 0a 72 65 74 75 72 function.getConstraint().{.retur
433c0 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 n.$this->constraint;.}..public.f
433e0 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 unction.getPackageName().{.retur
43400 6e 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 n.$this->packageName;.}..public.
43420 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 function.getType().{.return.$thi
43440 73 2d 3e 74 79 70 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 s->type;.}.}.<?php............na
43460 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 mespace.Composer\Repository\Pear
43480 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 31 52 ;...........class.ChannelRest11R
434a0 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 72 0a eader.extends.BaseChannelReader.
434c0 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 70 75 {.private.$dependencyReader;..pu
434e0 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 29 0a blic.function.__construct($rfs).
43500 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 24 74 {.parent::__construct($rfs);..$t
43520 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 63 6b his->dependencyReader.=.new.Pack
43540 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 0a 0a ageDependencyParser();.}........
43560 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 29 0a .public.function.read($baseUrl).
43580 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 64 43 68 61 6e 6e 65 6c 50 61 63 6b 61 {.return.$this->readChannelPacka
435a0 67 65 73 28 24 62 61 73 65 55 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ges($baseUrl);.}.........private
435c0 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 43 68 61 6e 6e 65 6c 50 61 63 6b 61 67 65 73 28 24 62 .function.readChannelPackages($b
435e0 61 73 65 55 72 6c 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 78 aseUrl).{.$result.=.array();..$x
43600 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c ml.=.$this->requestXml($baseUrl,
43620 20 22 2f 63 2f 63 61 74 65 67 6f 72 69 65 73 2e 78 6d 6c 22 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 ."/c/categories.xml");.$xml->reg
43640 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a isterXPathNamespace('ns',.self::
43660 41 4c 4c 5f 43 41 54 45 47 4f 52 49 45 53 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d ALL_CATEGORIES_NS);.foreach.($xm
43680 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 63 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 63 61 l->xpath('ns:c').as.$node).{.$ca
436a0 74 65 67 6f 72 79 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 3b 0a 24 63 61 tegoryName.=.(string).$node;.$ca
436c0 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 43 61 74 65 tegoryPackages.=.$this->readCate
436e0 67 6f 72 79 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 goryPackages($baseUrl,.$category
43700 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 Name);.$result.=.array_merge($re
43720 73 75 6c 74 2c 20 24 63 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 72 65 74 sult,.$categoryPackages);.}..ret
43740 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 urn.$result;.}..........private.
43760 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 43 61 74 65 67 6f 72 79 50 61 63 6b 61 67 65 73 28 24 62 function.readCategoryPackages($b
43780 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 29 0a 7b 0a 24 72 65 73 75 6c 74 aseUrl,.$categoryName).{.$result
437a0 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 63 61 74 65 67 6f 72 79 50 61 74 68 20 3d 20 27 2f 63 .=.array();..$categoryPath.=.'/c
437c0 2f 27 2e 75 72 6c 65 6e 63 6f 64 65 28 24 63 61 74 65 67 6f 72 79 4e 61 6d 65 29 2e 27 2f 70 61 /'.urlencode($categoryName).'/pa
437e0 63 6b 61 67 65 73 69 6e 66 6f 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 ckagesinfo.xml';.$xml.=.$this->r
43800 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 63 61 74 65 67 6f 72 79 50 61 74 equestXml($baseUrl,.$categoryPat
43820 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 h);.$xml->registerXPathNamespace
43840 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 41 54 45 47 4f 52 59 5f 50 41 43 4b 41 47 45 53 5f 49 ('ns',.self::CATEGORY_PACKAGES_I
43860 4e 46 4f 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d 6c 2d 3e 78 70 61 74 68 28 27 6e NFO_NS);.foreach.($xml->xpath('n
43880 73 3a 70 69 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 20 s:pi').as.$node).{.$packageInfo.
438a0 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 50 61 63 6b 61 67 65 28 24 6e 6f 64 65 29 3b 0a 24 72 =.$this->parsePackage($node);.$r
438c0 65 73 75 6c 74 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 75 72 esult[].=.$packageInfo;.}..retur
438e0 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 n.$result;.}........private.func
43900 74 69 6f 6e 20 70 61 72 73 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 49 6e 66 6f 29 0a tion.parsePackage($packageInfo).
43920 7b 0a 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 72 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d {.$packageInfo->registerXPathNam
43940 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 43 41 54 45 47 4f 52 59 5f 50 41 43 4b espace('ns',.self::CATEGORY_PACK
43960 41 47 45 53 5f 49 4e 46 4f 5f 4e 53 29 3b 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 28 73 AGES_INFO_NS);.$channelName.=.(s
43980 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 63 3b 0a 24 70 61 63 6b tring).$packageInfo->p->c;.$pack
439a0 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d ageName.=.(string).$packageInfo-
439c0 3e 70 2d 3e 6e 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b >p->n;.$license.=.(string).$pack
439e0 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 6c 3b 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e ageInfo->p->l;.$shortDescription
43a00 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 70 2d 3e 73 3b 0a .=.(string).$packageInfo->p->s;.
43a20 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 $description.=.(string).$package
43a40 49 6e 66 6f 2d 3e 70 2d 3e 64 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 73 20 3d 20 61 72 72 Info->p->d;..$dependencies.=.arr
43a60 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 78 70 61 ay();.foreach.($packageInfo->xpa
43a80 74 68 28 27 6e 73 3a 64 65 70 73 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 64 65 70 65 6e th('ns:deps').as.$node).{.$depen
43aa0 64 65 6e 63 79 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 76 dencyVersion.=.(string).$node->v
43ac0 3b 0a 24 64 65 70 65 6e 64 65 6e 63 79 41 72 72 61 79 20 3d 20 75 6e 73 65 72 69 61 6c 69 7a 65 ;.$dependencyArray.=.unserialize
43ae0 28 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 2d 3e 64 29 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 ((string).$node->d);..$dependenc
43b00 79 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 52 65 61 64 65 72 2d yInfo.=.$this->dependencyReader-
43b20 3e 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 65 6e 64 65 6e 63 79 >buildDependencyInfo($dependency
43b40 41 72 72 61 79 29 3b 0a 0a 24 64 65 70 65 6e 64 65 6e 63 69 65 73 5b 24 64 65 70 65 6e 64 65 6e Array);..$dependencies[$dependen
43b60 63 79 56 65 72 73 69 6f 6e 5d 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 7d 0a cyVersion].=.$dependencyInfo;.}.
43b80 0a 24 72 65 6c 65 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 6c 65 61 73 65 73 49 .$releases.=.array();.$releasesI
43ba0 6e 66 6f 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 2d 3e 78 70 61 74 68 28 27 6e 73 3a 61 2f nfo.=.$packageInfo->xpath('ns:a/
43bc0 6e 73 3a 72 27 29 3b 0a 69 66 20 28 24 72 65 6c 65 61 73 65 73 49 6e 66 6f 29 20 7b 0a 66 6f 72 ns:r');.if.($releasesInfo).{.for
43be0 65 61 63 68 20 28 24 72 65 6c 65 61 73 65 73 49 6e 66 6f 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a each.($releasesInfo.as.$node).{.
43c00 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 $releaseVersion.=.(string).$node
43c20 2d 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 20 3d 20 28 73 74 72 69 6e 67 ->v;.$releaseStability.=.(string
43c40 29 20 24 6e 6f 64 65 2d 3e 73 3b 0a 24 72 65 6c 65 61 73 65 73 5b 24 72 65 6c 65 61 73 65 56 65 ).$node->s;.$releases[$releaseVe
43c60 72 73 69 6f 6e 5d 20 3d 20 6e 65 77 20 52 65 6c 65 61 73 65 49 6e 66 6f 28 0a 24 72 65 6c 65 61 rsion].=.new.ReleaseInfo(.$relea
43c80 73 65 53 74 61 62 69 6c 69 74 79 2c 0a 69 73 73 65 74 28 24 64 65 70 65 6e 64 65 6e 63 69 65 73 seStability,.isset($dependencies
43ca0 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 29 20 3f 20 24 64 65 70 65 6e 64 65 6e 63 69 [$releaseVersion]).?.$dependenci
43cc0 65 73 5b 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 5d 20 3a 20 6e 65 77 20 44 65 70 65 6e 64 es[$releaseVersion].:.new.Depend
43ce0 65 6e 63 79 49 6e 66 6f 28 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 28 29 29 0a 29 3b 0a 7d 0a encyInfo(array(),.array()).);.}.
43d00 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 61 63 6b 61 67 65 49 6e 66 6f 28 0a 24 63 68 61 6e }..return.new.PackageInfo(.$chan
43d20 6e 65 6c 4e 61 6d 65 2c 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a 24 6c 69 63 65 6e 73 65 2c nelName,.$packageName,.$license,
43d40 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 64 65 73 63 72 69 70 74 69 6f 6e .$shortDescription,.$description
43d60 2c 0a 24 72 65 6c 65 61 73 65 73 0a 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a ,.$releases.);.}.}.<?php........
43d80 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
43da0 79 5c 50 65 61 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 6c 65 61 73 65 49 6e 66 6f 0a y\Pear;.......class.ReleaseInfo.
43dc0 7b 0a 70 72 69 76 61 74 65 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 70 72 69 76 61 74 65 20 24 64 {.private.$stability;.private.$d
43de0 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ependencyInfo;......public.funct
43e00 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 74 61 62 69 6c 69 74 79 2c 20 24 64 65 70 ion.__construct($stability,.$dep
43e20 65 6e 64 65 6e 63 79 49 6e 66 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 endencyInfo).{.$this->stability.
43e40 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 49 =.$stability;.$this->dependencyI
43e60 6e 66 6f 20 3d 20 24 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 nfo.=.$dependencyInfo;.}.....pub
43e80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 29 lic.function.getDependencyInfo()
43ea0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 3b .{.return.$this->dependencyInfo;
43ec0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c .}.....public.function.getStabil
43ee0 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 3b ity().{.return.$this->stability;
43f00 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.
43f20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 Composer\Repository\Pear;..use.C
43f40 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a omposer\Util\RemoteFilesystem;..
43f60 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 42 61 73 65 43 68 61 6e 6e 65 .......abstract.class.BaseChanne
43f80 6c 52 65 61 64 65 72 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 20 43 48 41 4e 4e 45 4c 5f 4e 53 20 3d 20 lReader.{....const.CHANNEL_NS.=.
43fa0 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 63 68 61 6e 6e 65 6c 2d 31 2e 30 'http://pear.php.net/channel-1.0
43fc0 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 43 41 54 45 47 4f 52 49 45 53 5f 4e 53 20 3d 20 27 68 74 ';.const.ALL_CATEGORIES_NS.=.'ht
43fe0 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c 63 61 tp://pear.php.net/dtd/rest.allca
44000 74 65 67 6f 72 69 65 73 27 3b 0a 63 6f 6e 73 74 20 43 41 54 45 47 4f 52 59 5f 50 41 43 4b 41 47 tegories';.const.CATEGORY_PACKAG
44020 45 53 5f 49 4e 46 4f 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 ES_INFO_NS.=.'http://pear.php.ne
44040 74 2f 64 74 64 2f 72 65 73 74 2e 63 61 74 65 67 6f 72 79 70 61 63 6b 61 67 65 69 6e 66 6f 27 3b t/dtd/rest.categorypackageinfo';
44060 0a 63 6f 6e 73 74 20 41 4c 4c 5f 50 41 43 4b 41 47 45 53 5f 4e 53 20 3d 20 27 68 74 74 70 3a 2f .const.ALL_PACKAGES_NS.=.'http:/
44080 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c 70 61 63 6b 61 67 /pear.php.net/dtd/rest.allpackag
440a0 65 73 27 3b 0a 63 6f 6e 73 74 20 41 4c 4c 5f 52 45 4c 45 41 53 45 53 5f 4e 53 20 3d 20 27 68 74 es';.const.ALL_RELEASES_NS.=.'ht
440c0 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 61 6c 6c 72 65 tp://pear.php.net/dtd/rest.allre
440e0 6c 65 61 73 65 73 27 3b 0a 63 6f 6e 73 74 20 50 41 43 4b 41 47 45 5f 49 4e 46 4f 5f 4e 53 20 3d leases';.const.PACKAGE_INFO_NS.=
44100 20 27 68 74 74 70 3a 2f 2f 70 65 61 72 2e 70 68 70 2e 6e 65 74 2f 64 74 64 2f 72 65 73 74 2e 70 .'http://pear.php.net/dtd/rest.p
44120 61 63 6b 61 67 65 27 3b 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 70 72 6f 74 65 63 ackage';...private.$rfs;..protec
44140 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 65 6d 6f 74 65 46 ted.function.__construct(RemoteF
44160 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 ilesystem.$rfs).{.$this->rfs.=.$
44180 72 66 73 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 69 rfs;.}..........protected.functi
441a0 6f 6e 20 72 65 71 75 65 73 74 43 6f 6e 74 65 6e 74 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 on.requestContent($origin,.$path
441c0 29 0a 7b 0a 24 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 6f 72 69 67 69 6e 2c 20 27 2f 27 29 20 2e ).{.$url.=.rtrim($origin,.'/')..
441e0 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 2f 27 29 3b 0a 24 63 6f 6e 74 65 .'/'...ltrim($path,.'/');.$conte
44200 6e 74 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 24 6f 72 nt.=.$this->rfs->getContents($or
44220 69 67 69 6e 2c 20 24 75 72 6c 2c 20 66 61 6c 73 65 29 3b 0a 69 66 20 28 21 24 63 6f 6e 74 65 6e igin,.$url,.false);.if.(!$conten
44240 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 t).{.throw.new.\UnexpectedValueE
44260 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 50 45 41 52 20 63 68 61 6e 6e 65 6c 20 61 74 20 27 20 xception('The.PEAR.channel.at.'.
44280 2e 20 24 75 72 6c 20 2e 20 27 20 64 69 64 20 6e 6f 74 20 72 65 73 70 6f 6e 64 2e 27 29 3b 0a 7d ..$url...'.did.not.respond.');.}
442a0 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 ..return.$content;.}..........pr
442c0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 65 73 74 58 6d 6c 28 24 6f 72 69 otected.function.requestXml($ori
442e0 67 69 6e 2c 20 24 70 61 74 68 29 0a 7b 0a 0a 20 24 78 6d 6c 20 3d 20 73 69 6d 70 6c 65 78 6d 6c gin,.$path).{...$xml.=.simplexml
44300 5f 6c 6f 61 64 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 43 6f 6e 74 65 _load_string($this->requestConte
44320 6e 74 28 24 6f 72 69 67 69 6e 2c 20 24 70 61 74 68 29 2c 20 22 53 69 6d 70 6c 65 58 4d 4c 45 6c nt($origin,.$path),."SimpleXMLEl
44340 65 6d 65 6e 74 22 2c 20 4c 49 42 58 4d 4c 5f 4e 4f 45 52 52 4f 52 29 3b 0a 0a 69 66 20 28 66 61 ement",.LIBXML_NOERROR);..if.(fa
44360 6c 73 65 20 3d 3d 20 24 78 6d 6c 29 20 7b 0a 24 75 72 6c 20 3d 20 72 74 72 69 6d 28 24 6f 72 69 lse.==.$xml).{.$url.=.rtrim($ori
44380 67 69 6e 2c 20 27 2f 27 29 20 2e 20 27 2f 27 20 2e 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 gin,.'/')...'/'...ltrim($path,.'
443a0 2f 27 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 /');.throw.new.\UnexpectedValueE
443c0 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 50 45 41 52 20 63 68 61 6e 6e xception(sprintf('The.PEAR.chann
443e0 65 6c 20 61 74 20 27 20 2e 20 24 6f 72 69 67 69 6e 20 2e 20 27 20 69 73 20 62 72 6f 6b 65 6e 2e el.at.'...$origin...'.is.broken.
44400 20 28 49 6e 76 61 6c 69 64 20 58 4d 4c 20 61 74 20 66 69 6c 65 20 60 25 73 60 29 27 2c 20 24 70 .(Invalid.XML.at.file.`%s`)',.$p
44420 61 74 68 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 78 6d 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 ath));.}..return.$xml;.}.}.<?php
44440 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
44460 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f epository\Pear;..use.Composer\Do
44480 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a wnloader\TransportException;....
444a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 68 61 6e 6e 65 6c 52 65 73 74 31 30 52 65 61 64 .........class.ChannelRest10Read
444c0 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
444e0 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
44500 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
44520 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
44540 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
44560 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
44580 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
445a0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 eturn.$this->readPackages($baseU
445c0 72 6c 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 rl);.}.........private.function.
445e0 72 65 61 64 50 61 63 6b 61 67 65 73 28 24 62 61 73 65 55 72 6c 29 0a 7b 0a 24 72 65 73 75 6c 74 readPackages($baseUrl).{.$result
44600 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 2f 70 2f 70 61 63 6b .=.array();..$xmlPath.=.'/p/pack
44620 61 67 65 73 2e 78 6d 6c 27 3b 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 ages.xml';.$xml.=.$this->request
44640 58 6d 6c 28 24 62 61 73 65 55 72 6c 2c 20 24 78 6d 6c 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 Xml($baseUrl,.$xmlPath);.$xml->r
44660 65 67 69 73 74 65 72 58 50 61 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 egisterXPathNamespace('ns',.self
44680 3a 3a 41 4c 4c 5f 50 41 43 4b 41 47 45 53 5f 4e 53 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 78 6d ::ALL_PACKAGES_NS);.foreach.($xm
446a0 6c 2d 3e 78 70 61 74 68 28 27 6e 73 3a 70 27 29 20 61 73 20 24 6e 6f 64 65 29 20 7b 0a 24 70 61 l->xpath('ns:p').as.$node).{.$pa
446c0 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 3b 0a 24 70 61 63 ckageName.=.(string).$node;.$pac
446e0 6b 61 67 65 49 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b 61 67 65 28 24 62 kageInfo.=.$this->readPackage($b
44700 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 72 65 73 75 6c 74 5b 5d aseUrl,.$packageName);.$result[]
44720 20 3d 20 24 70 61 63 6b 61 67 65 49 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 .=.$packageInfo;.}..return.$resu
44740 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 lt;.}..........private.function.
44760 72 65 61 64 50 61 63 6b 61 67 65 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 readPackage($baseUrl,.$packageNa
44780 6d 65 29 0a 7b 0a 24 78 6d 6c 50 61 74 68 20 3d 20 27 2f 70 2f 27 20 2e 20 73 74 72 74 6f 6c 6f me).{.$xmlPath.=.'/p/'...strtolo
447a0 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 2e 20 27 2f 69 6e 66 6f 2e 78 6d 6c 27 3b wer($packageName)...'/info.xml';
447c0 0a 24 78 6d 6c 20 3d 20 24 74 68 69 73 2d 3e 72 65 71 75 65 73 74 58 6d 6c 28 24 62 61 73 65 55 .$xml.=.$this->requestXml($baseU
447e0 72 6c 2c 20 24 78 6d 6c 50 61 74 68 29 3b 0a 24 78 6d 6c 2d 3e 72 65 67 69 73 74 65 72 58 50 61 rl,.$xmlPath);.$xml->registerXPa
44800 74 68 4e 61 6d 65 73 70 61 63 65 28 27 6e 73 27 2c 20 73 65 6c 66 3a 3a 50 41 43 4b 41 47 45 5f thNamespace('ns',.self::PACKAGE_
44820 49 4e 46 4f 5f 4e 53 29 3b 0a 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 20 3d 20 28 73 74 72 69 6e INFO_NS);..$channelName.=.(strin
44840 67 29 20 24 78 6d 6c 2d 3e 63 3b 0a 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 3d 20 28 73 74 72 69 g).$xml->c;.$packageName.=.(stri
44860 6e 67 29 20 24 78 6d 6c 2d 3e 6e 3b 0a 24 6c 69 63 65 6e 73 65 20 3d 20 28 73 74 72 69 6e 67 29 ng).$xml->n;.$license.=.(string)
44880 20 24 78 6d 6c 2d 3e 6c 3b 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 73 .$xml->l;.$shortDescription.=.(s
448a0 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 73 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 28 tring).$xml->s;.$description.=.(
448c0 73 74 72 69 6e 67 29 20 24 78 6d 6c 2d 3e 64 3b 0a 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 61 63 string).$xml->d;..return.new.Pac
448e0 6b 61 67 65 49 6e 66 6f 28 0a 24 63 68 61 6e 6e 65 6c 4e 61 6d 65 2c 0a 24 70 61 63 6b 61 67 65 kageInfo(.$channelName,.$package
44900 4e 61 6d 65 2c 0a 24 6c 69 63 65 6e 73 65 2c 0a 24 73 68 6f 72 74 44 65 73 63 72 69 70 74 69 6f Name,.$license,.$shortDescriptio
44920 6e 2c 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 2c 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 61 63 6b n,.$description,.$this->readPack
44940 61 67 65 52 65 6c 65 61 73 65 73 28 24 62 61 73 65 55 72 6c 2c 20 24 70 61 63 6b 61 67 65 4e 61 ageReleases($baseUrl,.$packageNa
44960 6d 65 29 0a 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 me).);.}...........private.funct
44980 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 65 55 72 6c ion.readPackageReleases($baseUrl
449a0 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 61 72 72 61 ,.$packageName).{.$result.=.arra
449c0 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 20 2e 20 73 y();..try.{.$xmlPath.=.'/r/'...s
449e0 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 61 6c 6c 72 trtolower($packageName)...'/allr
44a00 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 72 65 71 75 eleases.xml';.$xml.=.$this->requ
44a20 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 6d 6c estXml($baseUrl,.$xmlPath);.$xml
44a40 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 20 73 ->registerXPathNamespace('ns',.s
44a60 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 63 68 20 28 elf::ALL_RELEASES_NS);.foreach.(
44a80 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 29 20 7b 0a $xml->xpath('ns:r').as.$node).{.
44aa0 24 72 65 6c 65 61 73 65 56 65 72 73 69 6f 6e 20 3d 20 28 73 74 72 69 6e 67 29 20 24 6e 6f 64 65 $releaseVersion.=.(string).$node
44ac0 2d 3e 76 3b 0a 24 72 65 6c 65 61 73 65 53 74 61 62 69 6c 69 74 79 20 3d 20 28 73 74 72 69 6e 67 ->v;.$releaseStability.=.(string
44ae0 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 72 65 6c 65 ).$node->s;..try.{.$result[$rele
44b00 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 6f 28 0a 24 aseVersion].=.new.ReleaseInfo(.$
44b20 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 64 50 61 63 releaseStability,.$this->readPac
44b40 6b 61 67 65 52 65 6c 65 61 73 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 62 61 73 65 55 72 6c kageReleaseDependencies($baseUrl
44b60 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 69 6f 6e 29 ,.$packageName,.$releaseVersion)
44b80 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 69 6f 6e 20 .);.}.catch.(TransportException.
44ba0 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 2d 3e 67 65 $exception).{.if.($exception->ge
44bc0 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 65 70 74 69 tCode().!=.404).{.throw.$excepti
44be0 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 45 78 63 65 on;.}.}.}.}.catch.(TransportExce
44c00 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 65 70 74 69 ption.$exception).{.if.($excepti
44c20 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 77 20 24 65 on->getCode().!=.404).{.throw.$e
44c40 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 74 3b 0a 7d xception;.}.}..return.$result;.}
44c60 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 72 65 61 64 ...........private.function.read
44c80 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 65 PackageReleaseDependencies($base
44ca0 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 0a 7b 0a 24 Url,.$packageName,.$version).{.$
44cc0 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 44 65 dependencyReader.=.new.PackageDe
44ce0 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 68 20 3d 20 pendencyParser();..$depthPath.=.
44d00 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 61 6d 65 29 '/r/'...strtolower($packageName)
44d20 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 78 74 27 3b ...'/deps.'...$version...'.txt';
44d40 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 6e 74 65 6e .$content.=.$this->requestConten
44d60 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 70 65 6e 64 t($baseUrl,.$depthPath);.$depend
44d80 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 74 65 6e 74 encyArray.=.unserialize($content
44da0 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 65 72 2d 3e );.$result.=.$dependencyReader->
44dc0 62 75 69 6c 64 44 65 70 65 6e 64 65 6e 63 79 49 6e 66 6f 28 24 64 65 70 65 6e 64 65 6e 63 79 41 buildDependencyInfo($dependencyA
44de0 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 3c 3f 70 68 rray);..return.$result;.}.}.<?ph
44e00 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\
44e20 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 63 6b 61 67 Repository;..use.Composer\Packag
44e40 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 0a 69 6e 74 65 e\PackageInterface;.........inte
44e60 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 65 6e 64 rface.RepositoryInterface.extend
44e80 73 20 5c 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 53 45 41 52 43 48 5f 46 55 4c 4c s.\Countable.{.const.SEARCH_FULL
44ea0 54 45 58 54 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 45 41 52 43 48 5f 4e 41 4d 45 20 3d 20 31 3b TEXT.=.0;.const.SEARCH_NAME.=.1;
44ec0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 63 6b .........public.function.hasPack
44ee0 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 3b 0a age(PackageInterface.$package);.
44f00 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
44f20 6b 61 67 65 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a kage($name,.$version);..........
44f40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 50 61 63 6b 61 67 65 73 28 24 6e 61 public.function.findPackages($na
44f60 6d 65 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c me,.$version.=.null);.......publ
44f80 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 3b 0a 0a 0a 0a 0a 0a ic.function.getPackages();......
44fa0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 28 24 71 75 65 72 79 ...public.function.search($query
44fc0 2c 20 24 6d 6f 64 65 20 3d 20 30 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ,.$mode.=.0);.}.<?php...........
44fe0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 3b 0a .namespace.Composer\Repository;.
45000 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
45020 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
45040 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 6f 61 64 65 mposer\Package\Loader\ArrayLoade
45060 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 74 69 66 61 63 74 52 65 70 6f 73 69 74 6f 72 79 20 r;.....class.ArtifactRepository.
45080 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 0a 70 72 6f 74 65 extends.ArrayRepository.{..prote
450a0 63 74 65 64 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 6f 6f 6b 75 70 cted.$loader;..protected.$lookup
450c0 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 ;..public.function.__construct(a
450e0 72 72 61 79 20 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 rray.$repoConfig,.IOInterface.$i
45100 6f 29 0a 7b 0a 69 66 20 28 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a 69 70 27 o).{.if.(!extension_loaded('zip'
45120 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
45140 28 27 54 68 65 20 61 72 74 69 66 61 63 74 20 72 65 70 6f 73 69 74 6f 72 79 20 72 65 71 75 69 72 ('The.artifact.repository.requir
45160 65 73 20 50 48 50 5c 27 73 20 7a 69 70 20 65 78 74 65 6e 73 69 6f 6e 27 29 3b 0a 7d 0a 0a 24 74 es.PHP\'s.zip.extension');.}..$t
45180 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b his->loader.=.new.ArrayLoader();
451a0 0a 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 70 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 72 .$this->lookup.=.$repoConfig['ur
451c0 6c 27 5d 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 l'];.$this->io.=.$io;.}..protect
451e0 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 70 61 72 65 6e ed.function.initialize().{.paren
45200 74 3a 3a 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 63 61 6e 44 69 72 t::initialize();..$this->scanDir
45220 65 63 74 6f 72 79 28 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 70 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 ectory($this->lookup);.}..privat
45240 65 20 66 75 6e 63 74 69 6f 6e 20 73 63 61 6e 44 69 72 65 63 74 6f 72 79 28 24 70 61 74 68 29 0a e.function.scanDirectory($path).
45260 7b 0a 24 69 6f 20 3d 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 0a 24 64 69 72 65 63 74 6f 72 79 20 3d {.$io.=.$this->io;..$directory.=
45280 20 6e 65 77 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 .new.\RecursiveDirectoryIterator
452a0 28 24 70 61 74 68 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 ($path);.$iterator.=.new.\Recurs
452c0 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b iveIteratorIterator($directory);
452e0 0a 24 72 65 67 65 78 20 3d 20 6e 65 77 20 5c 52 65 67 65 78 49 74 65 72 61 74 6f 72 28 24 69 74 .$regex.=.new.\RegexIterator($it
45300 65 72 61 74 6f 72 2c 20 27 2f 5e 2e 2b 5c 2e 28 7a 69 70 7c 70 68 61 72 29 24 2f 69 27 29 3b 0a erator,.'/^.+\.(zip|phar)$/i');.
45320 66 6f 72 65 61 63 68 20 28 24 72 65 67 65 78 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 0a 69 66 20 foreach.($regex.as.$file).{..if.
45340 28 21 24 66 69 6c 65 2d 3e 69 73 46 69 6c 65 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d (!$file->isFile()).{.continue;.}
45360 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 ..$package.=.$this->getComposerI
45380 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 66 69 6c 65 29 3b 0a 69 66 20 28 21 24 70 61 63 6b 61 67 65 nformation($file);.if.(!$package
453a0 29 20 7b 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a 24 69 6f 2d ).{.if.($io->isVerbose()).{.$io-
453c0 3e 77 72 69 74 65 28 22 46 69 6c 65 20 3c 63 6f 6d 6d 65 6e 74 3e 7b 24 66 69 6c 65 2d 3e 67 65 >write("File.<comment>{$file->ge
453e0 74 42 61 73 65 6e 61 6d 65 28 29 7d 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 64 6f 65 73 6e 27 74 20 73 tBasename()}</comment>.doesn't.s
45400 65 65 6d 20 74 6f 20 68 6f 6c 64 20 61 20 70 61 63 6b 61 67 65 22 29 3b 0a 7d 0a 63 6f 6e 74 69 eem.to.hold.a.package");.}.conti
45420 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 69 6f 2d 3e 69 73 56 65 72 62 6f 73 65 28 29 29 20 7b 0a nue;.}..if.($io->isVerbose()).{.
45440 24 74 65 6d 70 6c 61 74 65 20 3d 20 27 46 6f 75 6e 64 20 70 61 63 6b 61 67 65 20 3c 69 6e 66 6f $template.=.'Found.package.<info
45460 3e 25 73 3c 2f 69 6e 66 6f 3e 20 28 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 >%s</info>.(<comment>%s</comment
45480 3e 29 20 69 6e 20 66 69 6c 65 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 3b 0a 24 69 6f >).in.file.<info>%s</info>';.$io
454a0 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 24 74 65 6d 70 6c 61 74 65 2c 20 24 70 61 63 6b ->write(sprintf($template,.$pack
454c0 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 age->getName(),.$package->getPre
454e0 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 66 69 6c 65 2d 3e 67 65 74 42 61 73 65 6e 61 6d 65 ttyVersion(),.$file->getBasename
45500 28 29 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 70 61 63 6b ()));.}..$this->addPackage($pack
45520 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 age);.}.}..private.function.getC
45540 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 20 omposerInformation(\SplFileInfo.
45560 24 66 69 6c 65 29 0a 7b 0a 24 7a 69 70 20 3d 20 6e 65 77 20 5c 5a 69 70 41 72 63 68 69 76 65 28 $file).{.$zip.=.new.\ZipArchive(
45580 29 3b 0a 24 7a 69 70 2d 3e 6f 70 65 6e 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 );.$zip->open($file->getPathname
455a0 28 29 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 20 24 7a 69 70 2d 3e 6e 75 6d 46 69 6c 65 73 29 20 7b ());..if.(0.==.$zip->numFiles).{
455c0 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 66 6f 75 6e 64 46 69 6c 65 49 6e 64 65 .return.false;.}..$foundFileInde
455e0 78 20 3d 20 24 7a 69 70 2d 3e 6c 6f 63 61 74 65 4e 61 6d 65 28 27 63 6f 6d 70 6f 73 65 72 2e 6a x.=.$zip->locateName('composer.j
45600 73 6f 6e 27 2c 20 5c 5a 69 70 41 72 63 68 69 76 65 3a 3a 46 4c 5f 4e 4f 44 49 52 29 3b 0a 69 66 son',.\ZipArchive::FL_NODIR);.if
45620 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 66 6f 75 6e 64 46 69 6c 65 49 6e 64 65 78 29 20 7b 0a 72 .(false.===.$foundFileIndex).{.r
45640 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 6f 6e 66 69 67 75 72 61 74 69 6f 6e 46 69 eturn.false;.}..$configurationFi
45660 6c 65 4e 61 6d 65 20 3d 20 24 7a 69 70 2d 3e 67 65 74 4e 61 6d 65 49 6e 64 65 78 28 24 66 6f 75 leName.=.$zip->getNameIndex($fou
45680 6e 64 46 69 6c 65 49 6e 64 65 78 29 3b 0a 0a 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 20 3d 20 22 ndFileIndex);..$composerFile.=."
456a0 7a 69 70 3a 2f 2f 7b 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 7d 23 24 63 6f zip://{$file->getPathname()}#$co
456c0 6e 66 69 67 75 72 61 74 69 6f 6e 46 69 6c 65 4e 61 6d 65 22 3b 0a 24 6a 73 6f 6e 20 3d 20 66 69 nfigurationFileName";.$json.=.fi
456e0 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 3b 0a le_get_contents($composerFile);.
45700 0a 24 70 61 63 6b 61 67 65 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 .$package.=.JsonFile::parseJson(
45720 24 6a 73 6f 6e 2c 20 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 3b 0a 24 70 61 63 6b 61 67 65 5b $json,.$composerFile);.$package[
45740 27 64 69 73 74 27 5d 20 3d 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 27 7a 69 70 27 'dist'].=.array(.'type'.=>.'zip'
45760 2c 0a 27 75 72 6c 27 20 3d 3e 20 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 2c ,.'url'.=>.$file->getRealPath(),
45780 0a 27 72 65 66 65 72 65 6e 63 65 27 20 3d 3e 20 24 66 69 6c 65 2d 3e 67 65 74 42 61 73 65 6e 61 .'reference'.=>.$file->getBasena
457a0 6d 65 28 29 2c 0a 27 73 68 61 73 75 6d 27 20 3d 3e 20 73 68 61 31 5f 66 69 6c 65 28 24 66 69 6c me(),.'shasum'.=>.sha1_file($fil
457c0 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 29 0a 29 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d e->getRealPath()).);..$package.=
457e0 20 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 29 3b 0a .$this->loader->load($package);.
45800 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .return.$package;.}.}.<?php.....
45820 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 69 .......namespace.Composer\Reposi
45840 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 4c 6f 61 64 tory;..use.Composer\Package\Load
45860 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 er\ArrayLoader;.use.Composer\Pac
45880 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 kage\Loader\ValidatingArrayLoade
458a0 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 74 6f 72 79 r;.......class.PackageRepository
458c0 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 72 69 76 61 .extends.ArrayRepository.{.priva
458e0 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 63 74 69 6f te.$config;.......public.functio
45900 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 0a 7b 0a 24 n.__construct(array.$config).{.$
45920 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 61 67 65 27 this->config.=.$config['package'
45940 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 68 69 73 2d ];....if.(!is_numeric(key($this-
45960 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 20 61 72 72 >config))).{.$this->config.=.arr
45980 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 72 6f 74 65 ay($this->config);.}.}.....prote
459a0 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
459c0 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 3d 20 6e 65 ent::initialize();..$loader.=.ne
459e0 77 20 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 28 6e 65 77 20 41 72 72 61 w.ValidatingArrayLoader(new.Arra
45a00 79 4c 6f 61 64 65 72 2c 20 66 61 6c 73 65 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d yLoader,.false);.foreach.($this-
45a20 3e 63 6f 6e 66 69 67 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 74 72 79 20 7b 0a 24 70 61 >config.as.$package).{.try.{.$pa
45a40 63 6b 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 ckage.=.$loader->load($package);
45a60 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 74 68 72 6f 77 .}.catch.(\Exception.$e).{.throw
45a80 20 6e 65 77 20 49 6e 76 61 6c 69 64 52 65 70 6f 73 69 74 6f 72 79 45 78 63 65 70 74 69 6f 6e 28 .new.InvalidRepositoryException(
45aa0 27 41 20 72 65 70 6f 73 69 74 6f 72 79 20 6f 66 20 74 79 70 65 20 22 70 61 63 6b 61 67 65 22 20 'A.repository.of.type."package".
45ac0 63 6f 6e 74 61 69 6e 73 20 61 6e 20 69 6e 76 61 6c 69 64 20 70 61 63 6b 61 67 65 20 64 65 66 69 contains.an.invalid.package.defi
45ae0 6e 69 74 69 6f 6e 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2e 22 5c 6e 5c 6e nition:.'.$e->getMessage()."\n\n
45b00 49 6e 76 61 6c 69 64 20 70 61 63 6b 61 67 65 20 64 65 66 69 6e 69 74 69 6f 6e 3a 5c 6e 22 2e 6a Invalid.package.definition:\n".j
45b20 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d son_encode($package));.}..$this-
45b40 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 7d 0a 3c 3f 70 >addPackage($package);.}.}.}.<?p
45b60 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
45b80 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6c 65 74 65 50 61 \Package;.......class.CompletePa
45ba0 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 ckage.extends.Package.implements
45bc0 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 .CompletePackageInterface.{.prot
45be0 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 ected.$repositories;.protected.$
45c00 6c 69 63 65 6e 73 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6b 65 license.=.array();.protected.$ke
45c20 79 77 6f 72 64 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 61 75 74 68 6f 72 73 3b 0a 70 72 6f 74 ywords;.protected.$authors;.prot
45c40 65 63 74 65 64 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 68 ected.$description;.protected.$h
45c60 6f 6d 65 70 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 63 72 69 70 74 73 20 3d 20 61 72 omepage;.protected.$scripts.=.ar
45c80 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 70 70 6f 72 74 20 3d 20 61 72 72 61 ray();.protected.$support.=.arra
45ca0 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 63 72 69 y();.....public.function.setScri
45cc0 70 74 73 28 61 72 72 61 79 20 24 73 63 72 69 70 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 63 72 pts(array.$scripts).{.$this->scr
45ce0 69 70 74 73 20 3d 20 24 73 63 72 69 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ipts.=.$scripts;.}.....public.fu
45d00 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 nction.getScripts().{.return.$th
45d20 69 73 2d 3e 73 63 72 69 70 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 is->scripts;.}.......public.func
45d40 74 69 6f 6e 20 73 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 72 65 70 6f 73 69 74 6f 72 69 tion.setRepositories($repositori
45d60 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 72 65 70 es).{.$this->repositories.=.$rep
45d80 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
45da0 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 .getRepositories().{.return.$thi
45dc0 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 s->repositories;.}.......public.
45de0 66 75 6e 63 74 69 6f 6e 20 73 65 74 4c 69 63 65 6e 73 65 28 61 72 72 61 79 20 24 6c 69 63 65 6e function.setLicense(array.$licen
45e00 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 20 3d 20 24 6c 69 63 65 6e 73 65 3b se).{.$this->license.=.$license;
45e20 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 .}.....public.function.getLicens
45e40 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 63 65 6e 73 65 3b 0a 7d 0a 0a e().{.return.$this->license;.}..
45e60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4b 65 79 77 6f 72 64 73 .....public.function.setKeywords
45e80 28 61 72 72 61 79 20 24 6b 65 79 77 6f 72 64 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6b 65 79 77 6f (array.$keywords).{.$this->keywo
45ea0 72 64 73 20 3d 20 24 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 rds.=.$keywords;.}.....public.fu
45ec0 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 nction.getKeywords().{.return.$t
45ee0 68 69 73 2d 3e 6b 65 79 77 6f 72 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 his->keywords;.}.......public.fu
45f00 6e 63 74 69 6f 6e 20 73 65 74 41 75 74 68 6f 72 73 28 61 72 72 61 79 20 24 61 75 74 68 6f 72 73 nction.setAuthors(array.$authors
45f20 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 73 20 3d 20 24 61 75 74 68 6f 72 73 3b 0a 7d ).{.$this->authors.=.$authors;.}
45f40 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 68 6f 72 73 28 .....public.function.getAuthors(
45f60 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 68 6f 72 73 3b 0a 7d 0a 0a 0a 0a ).{.return.$this->authors;.}....
45f80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 73 63 72 69 70 74 69 6f ...public.function.setDescriptio
45fa0 6e 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 n($description).{.$this->descrip
45fc0 74 69 6f 6e 20 3d 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 tion.=.$description;.}.....publi
45fe0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 c.function.getDescription().{.re
46000 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a turn.$this->description;.}......
46020 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 6f 6d 65 70 61 67 65 28 24 68 6f .public.function.setHomepage($ho
46040 6d 65 70 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 6f 6d 65 70 61 67 65 20 3d 20 24 68 6f 6d mepage).{.$this->homepage.=.$hom
46060 65 70 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 epage;.}.....public.function.get
46080 48 6f 6d 65 70 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 6f 6d 65 70 Homepage().{.return.$this->homep
460a0 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 age;.}.......public.function.set
460c0 53 75 70 70 6f 72 74 28 61 72 72 61 79 20 24 73 75 70 70 6f 72 74 29 0a 7b 0a 24 74 68 69 73 2d Support(array.$support).{.$this-
460e0 3e 73 75 70 70 6f 72 74 20 3d 20 24 73 75 70 70 6f 72 74 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 >support.=.$support;.}.....publi
46100 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 70 70 6f 72 74 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getSupport().{.return
46120 20 24 74 68 69 73 2d 3e 73 75 70 70 6f 72 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a .$this->support;.}.}.<?php......
46140 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 ......namespace.Composer\Package
46160 5c 44 75 6d 70 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 42 \Dumper;..use.Composer\Package\B
46180 61 73 65 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 asePackage;.use.Composer\Package
461a0 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c \PackageInterface;.use.Composer\
461c0 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 Package\CompletePackageInterface
461e0 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 ;.use.Composer\Package\RootPacka
46200 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 44 75 6d geInterface;......class.ArrayDum
46220 70 65 72 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 50 61 63 6b 61 per.{.public.function.dump(Packa
46240 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 6b 65 79 73 20 3d 20 geInterface.$package).{.$keys.=.
46260 61 72 72 61 79 28 0a 27 62 69 6e 61 72 69 65 73 27 20 3d 3e 20 27 62 69 6e 27 2c 0a 27 74 79 70 array(.'binaries'.=>.'bin',.'typ
46280 65 27 2c 0a 27 65 78 74 72 61 27 2c 0a 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 e',.'extra',.'installationSource
462a0 27 20 3d 3e 20 27 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 2d 73 6f 75 72 63 65 27 2c 0a 27 61 75 74 '.=>.'installation-source',.'aut
462c0 6f 6c 6f 61 64 27 2c 0a 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 27 20 3d 3e 20 27 6e 6f oload',.'notificationUrl'.=>.'no
462e0 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 2c 0a 27 69 6e 63 6c 75 64 65 50 61 74 68 73 27 20 tification-url',.'includePaths'.
46300 3d 3e 20 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d 20 61 =>.'include-path',.);..$data.=.a
46320 72 72 61 79 28 29 3b 0a 24 64 61 74 61 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 rray();.$data['name'].=.$package
46340 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 64 61 74 61 5b 27 76 65 72 73 69 6f ->getPrettyName();.$data['versio
46360 6e 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e n'].=.$package->getPrettyVersion
46380 28 29 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 5d 20 ();.$data['version_normalized'].
463a0 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 0a 69 66 20 28 24 =.$package->getVersion();..if.($
463c0 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 24 64 61 74 61 package->getTargetDir()).{.$data
463e0 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 ['target-dir'].=.$package->getTa
46400 72 67 65 74 44 69 72 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 rgetDir();.}..if.($package->getS
46420 6f 75 72 63 65 54 79 70 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 ourceType()).{.$data['source']['
46440 74 79 70 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 type'].=.$package->getSourceType
46460 28 29 3b 0a 24 64 61 74 61 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 24 70 61 ();.$data['source']['url'].=.$pa
46480 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 73 6f ckage->getSourceUrl();.$data['so
464a0 75 72 63 65 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e urce']['reference'].=.$package->
464c0 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 getSourceReference();.}..if.($pa
464e0 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 64 ckage->getDistType()).{.$data['d
46500 69 73 74 27 5d 5b 27 74 79 70 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 ist']['type'].=.$package->getDis
46520 74 54 79 70 65 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 20 3d 20 tType();.$data['dist']['url'].=.
46540 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 55 72 6c 28 29 3b 0a 24 64 61 74 61 5b 27 64 $package->getDistUrl();.$data['d
46560 69 73 74 27 5d 5b 27 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 ist']['reference'].=.$package->g
46580 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 24 64 61 74 61 5b 27 64 69 73 74 27 5d etDistReference();.$data['dist']
465a0 5b 27 73 68 61 73 75 6d 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 53 68 ['shasum'].=.$package->getDistSh
465c0 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 a1Checksum();.}..if.($package->g
465e0 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 61 72 etArchiveExcludes()).{.$data['ar
46600 63 68 69 76 65 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 chive']['exclude'].=.$package->g
46620 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 etArchiveExcludes();.}..foreach.
46640 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 (BasePackage::$supportedLinkType
46660 73 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6f 70 74 73 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b s.as.$type.=>.$opts).{.if.($link
46680 73 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 6f 70 s.=.$package->{'get'.ucfirst($op
466a0 74 73 5b 27 6d 65 74 68 6f 64 27 5d 29 7d 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 ts['method'])}()).{.foreach.($li
466c0 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 64 61 74 61 5b 24 74 79 70 65 5d 5b 24 6c 69 nks.as.$link).{.$data[$type][$li
466e0 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 nk->getTarget()].=.$link->getPre
46700 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 6b 73 6f 72 74 28 24 64 61 74 61 5b 24 ttyConstraint();.}.ksort($data[$
46720 74 79 70 65 5d 29 3b 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 type]);.}.}..if.($packages.=.$pa
46740 63 6b 61 67 65 2d 3e 67 65 74 53 75 67 67 65 73 74 73 28 29 29 20 7b 0a 6b 73 6f 72 74 28 24 70 ckage->getSuggests()).{.ksort($p
46760 61 63 6b 61 67 65 73 29 3b 0a 24 64 61 74 61 5b 27 73 75 67 67 65 73 74 27 5d 20 3d 20 24 70 61 ackages);.$data['suggest'].=.$pa
46780 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 ckages;.}..if.($package->getRele
467a0 61 73 65 44 61 74 65 28 29 29 20 7b 0a 24 64 61 74 61 5b 27 74 69 6d 65 27 5d 20 3d 20 24 70 61 aseDate()).{.$data['time'].=.$pa
467c0 63 6b 61 67 65 2d 3e 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 2d 3e 66 6f 72 6d 61 74 28 ckage->getReleaseDate()->format(
467e0 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 'Y-m-d.H:i:s');.}..$data.=.$this
46800 2d 3e 64 75 6d 70 56 61 6c 75 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 6b 65 79 73 2c 20 24 64 ->dumpValues($package,.$keys,.$d
46820 61 74 61 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 43 ata);..if.($package.instanceof.C
46840 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6b 65 79 73 ompletePackageInterface).{.$keys
46860 20 3d 20 61 72 72 61 79 28 0a 27 73 63 72 69 70 74 73 27 2c 0a 27 6c 69 63 65 6e 73 65 27 2c 0a .=.array(.'scripts',.'license',.
46880 27 61 75 74 68 6f 72 73 27 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 2c 0a 27 68 6f 6d 65 70 'authors',.'description',.'homep
468a0 61 67 65 27 2c 0a 27 6b 65 79 77 6f 72 64 73 27 2c 0a 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 age',.'keywords',.'repositories'
468c0 2c 0a 27 73 75 70 70 6f 72 74 27 2c 0a 29 3b 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e ,.'support',.);..$data.=.$this->
468e0 64 75 6d 70 56 61 6c 75 65 73 28 24 70 61 63 6b 61 67 65 2c 20 24 6b 65 79 73 2c 20 24 64 61 74 dumpValues($package,.$keys,.$dat
46900 61 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 5d a);..if.(isset($data['keywords']
46920 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 ).&&.is_array($data['keywords'])
46940 29 20 7b 0a 73 6f 72 74 28 24 64 61 74 61 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 3b 0a 7d 0a 7d ).{.sort($data['keywords']);.}.}
46960 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 52 6f 6f 74 50 61 ..if.($package.instanceof.RootPa
46980 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c ckageInterface).{.$minimumStabil
469a0 69 74 79 20 3d 20 24 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 ity.=.$package->getMinimumStabil
469c0 69 74 79 28 29 3b 0a 69 66 20 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 20 7b 0a ity();.if.($minimumStability).{.
469e0 24 64 61 74 61 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 20 3d 20 24 6d 69 $data['minimum-stability'].=.$mi
46a00 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 nimumStability;.}.}..return.$dat
46a20 61 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 56 61 6c 75 65 a;.}..private.function.dumpValue
46a40 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 s(PackageInterface.$package,.arr
46a60 61 79 20 24 6b 65 79 73 2c 20 61 72 72 61 79 20 24 64 61 74 61 29 0a 7b 0a 66 6f 72 65 61 63 68 ay.$keys,.array.$data).{.foreach
46a80 20 28 24 6b 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 .($keys.as.$method.=>.$key).{.if
46aa0 20 28 69 73 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 .(is_numeric($method)).{.$method
46ac0 20 3d 20 24 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 .=.$key;.}..$getter.=.'get'.ucfi
46ae0 72 73 74 28 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 rst($method);.$value.=.$package-
46b00 3e 24 67 65 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 >$getter();..if.(null.!==.$value
46b20 20 26 26 20 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 .&&.!(is_array($value).&&.0.===.
46b40 63 6f 75 6e 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 count($value))).{.$data[$key].=.
46b60 24 76 61 6c 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 $value;.}.}..return.$data;.}.}.<
46b80 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
46ba0 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 76 er\Package\Loader;.....class.Inv
46bc0 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 45 78 alidPackageException.extends.\Ex
46be0 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 65 72 72 6f 72 73 3b 0a 70 72 69 76 61 ception.{.private.$errors;.priva
46c00 74 65 20 24 77 61 72 6e 69 6e 67 73 3b 0a 70 72 69 76 61 74 65 20 24 64 61 74 61 3b 0a 0a 70 75 te.$warnings;.private.$data;..pu
46c20 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.
46c40 24 65 72 72 6f 72 73 2c 20 61 72 72 61 79 20 24 77 61 72 6e 69 6e 67 73 2c 20 61 72 72 61 79 20 $errors,.array.$warnings,.array.
46c60 24 64 61 74 61 29 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 $data).{.$this->errors.=.$errors
46c80 3b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 20 3d 20 24 77 61 72 6e 69 6e 67 73 3b 0a 24 ;.$this->warnings.=.$warnings;.$
46ca0 74 68 69 73 2d 3e 64 61 74 61 20 3d 20 24 64 61 74 61 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f this->data.=.$data;.parent::__co
46cc0 6e 73 74 72 75 63 74 28 22 49 6e 76 61 6c 69 64 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 nstruct("Invalid.package.informa
46ce0 74 69 6f 6e 3a 20 5c 6e 22 2e 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 61 72 72 61 79 5f 6d 65 tion:.\n".implode("\n",.array_me
46d00 72 67 65 28 24 65 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 29 29 29 3b 0a 7d 0a 0a 70 75 rge($errors,.$warnings)));.}..pu
46d20 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 61 74 61 28 29 0a 7b 0a 72 65 74 75 72 6e blic.function.getData().{.return
46d40 20 24 74 68 69 73 2d 3e 64 61 74 61 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .$this->data;.}..public.function
46d60 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 .getErrors().{.return.$this->err
46d80 6f 72 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 57 61 72 6e 69 ors;.}..public.function.getWarni
46da0 6e 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 3b 0a ngs().{.return.$this->warnings;.
46dc0 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
46de0 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d omposer\Package\Loader;..use.Com
46e00 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 63 6c 61 73 73 20 4a poser\Json\JsonFile;.....class.J
46e20 73 6f 6e 4c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 75 sonLoader.{.private.$loader;..pu
46e40 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 4c 6f 61 64 65 72 blic.function.__construct(Loader
46e60 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 Interface.$loader).{.$this->load
46e80 65 72 20 3d 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 er.=.$loader;.}......public.func
46ea0 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 6e 73 tion.load($json).{.if.($json.ins
46ec0 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 24 6a tanceof.JsonFile).{.$config.=.$j
46ee0 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 69 73 son->read();.}.elseif.(file_exis
46f00 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 65 3a ts($json)).{.$config.=.JsonFile:
46f20 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 6a 73 :parseJson(file_get_contents($js
46f40 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 6e 67 on),.$json);.}.elseif.(is_string
46f60 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 3a 70 ($json)).{.$config.=.JsonFile::p
46f80 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 24 74 68 69 73 arseJson($json);.}..return.$this
46fa0 2d 3e 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 3c 3f 70 ->loader->load($config);.}.}.<?p
46fc0 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
46fe0 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 \Package\Loader;.......interface
47000 20 4c 6f 61 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .LoaderInterface.{........public
47020 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 2c 20 24 .function.load(array.$package,.$
47040 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 class.=.'Composer\Package\Comple
47060 74 65 50 61 63 6b 61 67 65 27 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tePackage');.}.<?php............
47080 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
470a0 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f r;..use.Composer\Package;.use.Co
470c0 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
470e0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 .Composer\Package\RootAliasPacka
47100 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 52 6f 6f 74 50 61 63 ge;.use.Composer\Package\RootPac
47120 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b kageInterface;.use.Composer\Pack
47140 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a age\Version\VersionParser;......
47160 63 6c 61 73 73 20 41 72 72 61 79 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 6f 61 class.ArrayLoader.implements.Loa
47180 64 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f derInterface.{.protected.$versio
471a0 6e 50 61 72 73 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 nParser;..public.function.__cons
471c0 74 72 75 63 74 28 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e 75 truct(VersionParser.$parser.=.nu
471e0 6c 6c 29 0a 7b 0a 69 66 20 28 21 24 70 61 72 73 65 72 29 20 7b 0a 24 70 61 72 73 65 72 20 3d 20 ll).{.if.(!$parser).{.$parser.=.
47200 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 7d 0a 24 74 68 69 73 2d 3e 76 65 72 73 new.VersionParser;.}.$this->vers
47220 69 6f 6e 50 61 72 73 65 72 20 3d 20 24 70 61 72 73 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 ionParser.=.$parser;.}..public.f
47240 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 unction.load(array.$config,.$cla
47260 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 ss.=.'Composer\Package\CompleteP
47280 61 63 6b 61 67 65 27 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 6e ackage').{.if.(!isset($config['n
472a0 61 6d 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 ame'])).{.throw.new.\UnexpectedV
472c0 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 6b 6e 6f 77 6e 20 70 61 63 6b 61 67 65 20 68 alueException('Unknown.package.h
472e0 61 73 20 6e 6f 20 6e 61 6d 65 20 64 65 66 69 6e 65 64 20 28 27 2e 6a 73 6f 6e 5f 65 6e 63 6f 64 as.no.name.defined.('.json_encod
47300 65 28 24 63 6f 6e 66 69 67 29 2e 27 29 2e 27 29 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 e($config).').');.}.if.(!isset($
47320 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 config['version'])).{.throw.new.
47340 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 61 63 6b 61 \UnexpectedValueException('Packa
47360 67 65 20 27 2e 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2e 27 20 68 61 73 20 6e 6f 20 76 65 ge.'.$config['name'].'.has.no.ve
47380 72 73 69 6f 6e 20 64 65 66 69 6e 65 64 2e 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 rsion.defined.');.}....if.(isset
473a0 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 29 ($config['version_normalized']))
473c0 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 5f 6e .{.$version.=.$config['version_n
473e0 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d ormalized'];.}.else.{.$version.=
47400 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 7a 65 .$this->versionParser->normalize
47420 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 ($config['version']);.}.$package
47440 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2c 20 24 .=.new.$class($config['name'],.$
47460 76 65 72 73 69 6f 6e 2c 20 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 24 70 version,.$config['version']);.$p
47480 61 63 6b 61 67 65 2d 3e 73 65 74 54 79 70 65 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 74 ackage->setType(isset($config['t
474a0 79 70 65 27 5d 29 20 3f 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 63 6f 6e 66 69 67 5b 27 74 79 70 ype']).?.strtolower($config['typ
474c0 65 27 5d 29 20 3a 20 27 6c 69 62 72 61 72 79 27 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 e']).:.'library');..if.(isset($c
474e0 6f 6e 66 69 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 onfig['target-dir'])).{.$package
47500 2d 3e 73 65 74 54 61 72 67 65 74 44 69 72 28 24 63 6f 6e 66 69 67 5b 27 74 61 72 67 65 74 2d 64 ->setTargetDir($config['target-d
47520 69 72 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 ir']);.}..if.(isset($config['ext
47540 72 61 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 ra']).&&.is_array($config['extra
47560 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 45 78 74 72 61 28 24 63 6f 6e 66 69 '])).{.$package->setExtra($confi
47580 67 5b 27 65 78 74 72 61 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 g['extra']);.}..if.(isset($confi
475a0 67 5b 27 62 69 6e 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 g['bin'])).{.if.(!is_array($conf
475c0 69 67 5b 27 62 69 6e 27 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 ig['bin'])).{.throw.new.\Unexpec
475e0 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 27 2e 24 63 6f tedValueException('Package.'.$co
47600 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2e 27 5c 27 73 20 62 69 6e 20 6b 65 79 20 73 68 6f 75 6c 64 nfig['name'].'\'s.bin.key.should
47620 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 63 6f 6e 66 69 67 5b .be.an.array,.'.gettype($config[
47640 27 62 69 6e 27 5d 29 2e 27 20 67 69 76 65 6e 2e 27 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 'bin']).'.given.');.}.foreach.($
47660 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 62 69 6e 29 20 7b config['bin'].as.$key.=>.$bin).{
47680 0a 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 5b 24 6b 65 79 5d 3d 20 6c 74 72 69 6d 28 24 62 69 .$config['bin'][$key]=.ltrim($bi
476a0 6e 2c 20 27 2f 27 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 42 69 6e 61 72 69 65 73 n,.'/');.}.$package->setBinaries
476c0 28 24 63 6f 6e 66 69 67 5b 27 62 69 6e 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 ($config['bin']);.}..if.(isset($
476e0 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 29 29 20 config['installation-source'])).
47700 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 72 63 {.$package->setInstallationSourc
47720 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 65 27 5d e($config['installation-source']
47740 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 63 65 27 );.}..if.(isset($config['source'
47760 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 72 63 65 ])).{.if.(!isset($config['source
47780 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 5b 27 73 ']['type']).||.!isset($config['s
477a0 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 29 20 7c 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 ource']['url']).||.!isset($confi
477c0 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 29 20 7b 0a 74 68 72 g['source']['reference'])).{.thr
477e0 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
47800 28 73 70 72 69 6e 74 66 28 0a 22 50 61 63 6b 61 67 65 20 25 73 27 73 20 73 6f 75 72 63 65 20 6b (sprintf(."Package.%s's.source.k
47820 65 79 20 73 68 6f 75 6c 64 20 62 65 20 73 70 65 63 69 66 69 65 64 20 61 73 20 7b 5c 22 74 79 70 ey.should.be.specified.as.{\"typ
47840 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 66 65 72 65 e\":....,.\"url\":....,.\"refere
47860 6e 63 65 5c 22 3a 20 2e 2e 2e 7d 2c 5c 6e 25 73 20 67 69 76 65 6e 2e 22 2c 0a 24 63 6f 6e 66 69 nce\":....},\n%s.given.",.$confi
47880 67 5b 27 6e 61 6d 65 27 5d 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 5b 27 g['name'],.json_encode($config['
478a0 73 6f 75 72 63 65 27 5d 29 0a 29 29 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 source']).));.}.$package->setSou
478c0 72 63 65 54 79 70 65 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 74 79 70 65 27 rceType($config['source']['type'
478e0 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 6f 75 72 63 65 55 72 6c 28 24 63 6f 6e 66 ]);.$package->setSourceUrl($conf
47900 69 67 5b 27 73 6f 75 72 63 65 27 5d 5b 27 75 72 6c 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e ig['source']['url']);.$package->
47920 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 24 63 6f 6e 66 69 67 5b 27 73 6f 75 72 setSourceReference($config['sour
47940 63 65 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 ce']['reference']);.}..if.(isset
47960 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 28 ($config['dist'])).{.if.(!isset(
47980 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 74 79 70 65 27 5d 29 0a 7c 7c 20 21 69 73 73 $config['dist']['type']).||.!iss
479a0 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 29 29 20 7b 0a 74 68 et($config['dist']['url'])).{.th
479c0 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f row.new.\UnexpectedValueExceptio
479e0 6e 28 73 70 72 69 6e 74 66 28 0a 22 50 61 63 6b 61 67 65 20 25 73 27 73 20 64 69 73 74 20 6b 65 n(sprintf(."Package.%s's.dist.ke
47a00 79 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 22 y.should.be.specified.as.".."{\"
47a20 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 66 type\":....,.\"url\":....,.\"ref
47a40 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 2c erence\":....,.\"shasum\":....},
47a60 5c 6e 25 73 20 67 69 76 65 6e 2e 22 2c 0a 24 63 6f 6e 66 69 67 5b 27 6e 61 6d 65 27 5d 2c 0a 6a \n%s.given.",.$config['name'],.j
47a80 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 29 0a 29 29 3b 0a son_encode($config['dist']).));.
47aa0 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 54 79 70 65 28 24 63 6f 6e 66 69 67 5b }.$package->setDistType($config[
47ac0 27 64 69 73 74 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 44 'dist']['type']);.$package->setD
47ae0 69 73 74 55 72 6c 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 75 72 6c 27 5d 29 3b 0a istUrl($config['dist']['url']);.
47b00 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 69 73 73 65 74 $package->setDistReference(isset
47b20 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 29 20 3f ($config['dist']['reference']).?
47b40 20 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 72 65 66 65 72 65 6e 63 65 27 5d 20 3a 20 .$config['dist']['reference'].:.
47b60 6e 75 6c 6c 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 69 73 74 53 68 61 31 43 68 65 63 null);.$package->setDistSha1Chec
47b80 6b 73 75 6d 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 ksum(isset($config['dist']['shas
47ba0 75 6d 27 5d 29 20 3f 20 24 63 6f 6e 66 69 67 5b 27 64 69 73 74 27 5d 5b 27 73 68 61 73 75 6d 27 um']).?.$config['dist']['shasum'
47bc0 5d 20 3a 20 6e 75 6c 6c 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 50 61 63 6b 61 67 65 5c 42 ].:.null);.}..foreach.(Package\B
47be0 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 20 asePackage::$supportedLinkTypes.
47c00 61 73 20 24 74 79 70 65 20 3d 3e 20 24 6f 70 74 73 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 as.$type.=>.$opts).{.if.(isset($
47c20 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 29 29 20 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 27 73 65 74 config[$type])).{.$method.=.'set
47c40 27 2e 75 63 66 69 72 73 74 28 24 6f 70 74 73 5b 27 6d 65 74 68 6f 64 27 5d 29 3b 0a 24 70 61 63 '.ucfirst($opts['method']);.$pac
47c60 6b 61 67 65 2d 3e 7b 24 6d 65 74 68 6f 64 7d 28 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 kage->{$method}(.$this->versionP
47c80 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 arser->parseLinks(.$package->get
47ca0 4e 61 6d 65 28 29 2c 0a 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 Name(),.$package->getPrettyVersi
47cc0 6f 6e 28 29 2c 0a 24 6f 70 74 73 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 2c 0a 24 63 6f 6e on(),.$opts['description'],.$con
47ce0 66 69 67 5b 24 74 79 70 65 5d 0a 29 0a 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 fig[$type].).);.}.}..if.(isset($
47d00 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 config['suggest']).&&.is_array($
47d20 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 config['suggest'])).{.foreach.($
47d40 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 config['suggest'].as.$target.=>.
47d60 24 72 65 61 73 6f 6e 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d 3d $reason).{.if.('self.version'.==
47d80 3d 20 74 72 69 6d 28 24 72 65 61 73 6f 6e 29 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 =.trim($reason)).{.$config['sugg
47da0 65 73 74 27 5d 5b 24 74 61 72 67 65 74 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 est'][$target].=.$package->getPr
47dc0 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 ettyVersion();.}.}.$package->set
47de0 53 75 67 67 65 73 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 3b 0a 7d 0a Suggests($config['suggest']);.}.
47e00 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 29 29 .if.(isset($config['autoload']))
47e20 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 28 24 63 6f 6e 66 69 67 .{.$package->setAutoload($config
47e40 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e ['autoload']);.}..if.(isset($con
47e60 66 69 67 5b 27 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 fig['include-path'])).{.$package
47e80 2d 3e 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 24 63 6f 6e 66 69 67 5b 27 69 6e 63 6c 75 ->setIncludePaths($config['inclu
47ea0 64 65 2d 70 61 74 68 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 de-path']);.}..if.(!empty($confi
47ec0 67 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 24 74 69 6d 65 20 3d 20 63 74 79 70 65 5f 64 69 67 69 g['time'])).{.$time.=.ctype_digi
47ee0 74 28 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 20 3f 20 27 40 27 2e 24 63 6f 6e 66 69 67 t($config['time']).?.'@'.$config
47f00 5b 27 74 69 6d 65 27 5d 20 3a 20 24 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 3b 0a 0a 74 72 79 ['time'].:.$config['time'];..try
47f20 20 7b 0a 24 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 74 69 6d 65 2c 20 .{.$date.=.new.\DateTime($time,.
47f40 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 24 70 61 63 6b new.\DateTimeZone('UTC'));.$pack
47f60 61 67 65 2d 3e 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 24 64 61 74 65 29 3b 0a 7d 20 63 61 age->setReleaseDate($date);.}.ca
47f80 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 tch.(\Exception.$e).{.}.}..if.(!
47fa0 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 empty($config['notification-url'
47fc0 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 ])).{.$package->setNotificationU
47fe0 72 6c 28 24 63 6f 6e 66 69 67 5b 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 2d 75 72 6c 27 5d 29 3b rl($config['notification-url']);
48000 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 72 63 68 69 76 65 27 .}..if.(!empty($config['archive'
48020 5d 5b 27 65 78 63 6c 75 64 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 72 ]['exclude'])).{.$package->setAr
48040 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 24 63 6f 6e 66 69 67 5b 27 61 72 63 68 69 76 65 27 5d chiveExcludes($config['archive']
48060 5b 27 65 78 63 6c 75 64 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e ['exclude']);.}..if.($package.in
48080 73 74 61 6e 63 65 6f 66 20 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 stanceof.Package\CompletePackage
480a0 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 Interface).{.if.(isset($config['
480c0 73 63 72 69 70 74 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 scripts']).&&.is_array($config['
480e0 73 63 72 69 70 74 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 5b 27 scripts'])).{.foreach.($config['
48100 73 63 72 69 70 74 73 27 5d 20 61 73 20 24 65 76 65 6e 74 20 3d 3e 20 24 6c 69 73 74 65 6e 65 72 scripts'].as.$event.=>.$listener
48120 73 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 5b 24 65 76 65 6e 74 5d 20 s).{.$config['scripts'][$event].
48140 3d 20 28 61 72 72 61 79 29 20 24 6c 69 73 74 65 6e 65 72 73 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 =.(array).$listeners;.}.$package
48160 2d 3e 73 65 74 53 63 72 69 70 74 73 28 24 63 6f 6e 66 69 67 5b 27 73 63 72 69 70 74 73 27 5d 29 ->setScripts($config['scripts'])
48180 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 ;.}..if.(!empty($config['descrip
481a0 74 69 6f 6e 27 5d 29 20 26 26 20 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 64 65 tion']).&&.is_string($config['de
481c0 73 63 72 69 70 74 69 6f 6e 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 73 scription'])).{.$package->setDes
481e0 63 72 69 70 74 69 6f 6e 28 24 63 6f 6e 66 69 67 5b 27 64 65 73 63 72 69 70 74 69 6f 6e 27 5d 29 cription($config['description'])
48200 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 ;.}..if.(!empty($config['homepag
48220 65 27 5d 29 20 26 26 20 69 73 5f 73 74 72 69 6e 67 28 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 e']).&&.is_string($config['homep
48240 61 67 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 48 6f 6d 65 70 61 67 65 28 age'])).{.$package->setHomepage(
48260 24 63 6f 6e 66 69 67 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d $config['homepage']);.}..if.(!em
48280 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 6f 72 64 73 27 5d 29 20 26 26 20 69 73 5f 61 pty($config['keywords']).&&.is_a
482a0 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 20 7b 0a 24 70 61 rray($config['keywords'])).{.$pa
482c0 63 6b 61 67 65 2d 3e 73 65 74 4b 65 79 77 6f 72 64 73 28 24 63 6f 6e 66 69 67 5b 27 6b 65 79 77 ckage->setKeywords($config['keyw
482e0 6f 72 64 73 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 63 6f 6e 66 69 67 5b 27 ords']);.}..if.(!empty($config['
48300 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 4c 69 63 65 6e license'])).{.$package->setLicen
48320 73 65 28 69 73 5f 61 72 72 61 79 28 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 20 se(is_array($config['license']).
48340 3f 20 24 63 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 20 3a 20 61 72 72 61 79 28 24 63 6f ?.$config['license'].:.array($co
48360 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 nfig['license']));.}..if.(!empty
48380 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 20 26 26 20 69 73 5f 61 72 72 61 79 ($config['authors']).&&.is_array
483a0 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 ($config['authors'])).{.$package
483c0 2d 3e 73 65 74 41 75 74 68 6f 72 73 28 24 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 ->setAuthors($config['authors'])
483e0 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 ;.}..if.(isset($config['support'
48400 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 53 75 70 70 6f 72 74 28 24 63 6f 6e 66 ])).{.$package->setSupport($conf
48420 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 61 6c 69 61 73 4e ig['support']);.}.}..if.($aliasN
48440 6f 72 6d 61 6c 69 7a 65 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 72 61 6e 63 68 41 6c 69 61 ormalized.=.$this->getBranchAlia
48460 73 28 24 63 6f 6e 66 69 67 29 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 s($config)).{.if.($package.insta
48480 6e 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 70 nceof.RootPackageInterface).{.$p
484a0 61 63 6b 61 67 65 20 3d 20 6e 65 77 20 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 ackage.=.new.RootAliasPackage($p
484c0 61 63 6b 61 67 65 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 2c 20 70 72 65 67 5f 72 ackage,.$aliasNormalized,.preg_r
484e0 65 70 6c 61 63 65 28 27 7b 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 61 6c 69 eplace('{(\.9{7})+}',.'.x',.$ali
48500 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 asNormalized));.}.else.{.$packag
48520 65 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 e.=.new.AliasPackage($package,.$
48540 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 7a 65 64 2c 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b aliasNormalized,.preg_replace('{
48560 28 5c 2e 39 7b 37 7d 29 2b 7d 27 2c 20 27 2e 78 27 2c 20 24 61 6c 69 61 73 4e 6f 72 6d 61 6c 69 (\.9{7})+}',.'.x',.$aliasNormali
48580 7a 65 64 29 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a zed));.}.}..return.$package;.}..
485a0 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 42 72 61 6e 63 68 41 ......public.function.getBranchA
485c0 6c 69 61 73 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 69 66 20 28 27 64 65 76 2d 27 lias(array.$config).{.if.('dev-'
485e0 20 21 3d 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 2c 20 .!==.substr($config['version'],.
48600 30 2c 20 34 29 0a 7c 7c 20 21 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 0,.4).||.!isset($config['extra']
48620 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 0a 7c 7c 20 21 69 73 5f 61 72 72 61 79 28 24 ['branch-alias']).||.!is_array($
48640 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 config['extra']['branch-alias'])
48660 0a 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 .).{.return;.}..foreach.($config
48680 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 73 20 24 73 6f ['extra']['branch-alias'].as.$so
486a0 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 29 20 7b 0a 0a urceBranch.=>.$targetBranch).{..
486c0 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 67 65 74 42 72 .if.('-dev'.!==.substr($targetBr
486e0 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 0a 20 24 76 61 6c anch,.-4)).{.continue;.}....$val
48700 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 76 65 72 73 idatedTargetBranch.=.$this->vers
48720 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 75 62 73 74 ionParser->normalizeBranch(subst
48740 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 20 28 27 2d r($targetBranch,.0,.-4));.if.('-
48760 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 72 67 65 74 dev'.!==.substr($validatedTarget
48780 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 0a 20 69 66 Branch,.-4)).{.continue;.}....if
487a0 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 29 .(strtolower($config['version'])
487c0 20 21 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 6f 75 72 63 65 42 72 61 6e 63 68 29 29 20 .!==.strtolower($sourceBranch)).
487e0 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 69 64 61 74 65 64 {.continue;.}..return.$validated
48800 54 61 72 67 65 74 42 72 61 6e 63 68 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a TargetBranch;.}.}.}.<?php.......
48820 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\
48840 4c 6f 61 64 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 75 Loader;..use.Composer\Package;.u
48860 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 6b 61 67 65 3b se.Composer\Package\BasePackage;
48880 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
488a0 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 61 6c 69 64 61 74 69 6e rsionParser;.....class.Validatin
488c0 67 41 72 72 61 79 4c 6f 61 64 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 6f 61 64 65 72 49 6e gArrayLoader.implements.LoaderIn
488e0 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 6c 6f 61 64 65 72 3b 0a 70 72 69 76 61 terface.{.private.$loader;.priva
48900 74 65 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 69 76 61 74 65 20 24 65 72 72 6f te.$versionParser;.private.$erro
48920 72 73 3b 0a 70 72 69 76 61 74 65 20 24 77 61 72 6e 69 6e 67 73 3b 0a 70 72 69 76 61 74 65 20 24 rs;.private.$warnings;.private.$
48940 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 73 74 72 69 63 74 4e 61 6d 65 3b 0a 0a 70 75 config;.private.$strictName;..pu
48960 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 4c 6f 61 64 65 72 blic.function.__construct(Loader
48980 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 61 64 65 72 2c 20 24 73 74 72 69 63 74 4e 61 6d 65 20 3d Interface.$loader,.$strictName.=
489a0 20 74 72 75 65 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 65 72 20 3d 20 6e .true,.VersionParser.$parser.=.n
489c0 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 3b 0a ull).{.$this->loader.=.$loader;.
489e0 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 24 70 61 72 73 65 72 20 3f $this->versionParser.=.$parser.?
48a00 3a 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 73 74 :.new.VersionParser();.$this->st
48a20 72 69 63 74 4e 61 6d 65 20 3d 20 24 73 74 72 69 63 74 4e 61 6d 65 3b 0a 7d 0a 0a 70 75 62 6c 69 rictName.=.$strictName;.}..publi
48a40 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 c.function.load(array.$config,.$
48a60 63 6c 61 73 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 43 6f 6d 70 6c 65 class.=.'Composer\Package\Comple
48a80 74 65 50 61 63 6b 61 67 65 27 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 20 3d 20 61 72 tePackage').{.$this->errors.=.ar
48aa0 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 28 29 ray();.$this->warnings.=.array()
48ac0 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 0a 69 66 20 28 ;.$this->config.=.$config;..if.(
48ae0 24 74 68 69 73 2d 3e 73 74 72 69 63 74 4e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 $this->strictName).{.$this->vali
48b00 64 61 74 65 52 65 67 65 78 28 27 6e 61 6d 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 5d 5b 41 dateRegex('name',.'[A-Za-z0-9][A
48b20 2d 5a 61 2d 7a 30 2d 39 5f 2e 2d 5d 2a 2f 5b 41 2d 5a 61 2d 7a 30 2d 39 5d 5b 41 2d 5a 61 2d 7a -Za-z0-9_.-]*/[A-Za-z0-9][A-Za-z
48b40 30 2d 39 5f 2e 2d 5d 2a 27 2c 20 74 72 75 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 0-9_.-]*',.true);.}.else.{.$this
48b60 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 6e 61 6d 65 27 2c 20 74 72 75 65 29 3b 0a ->validateString('name',.true);.
48b80 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 }..if.(!empty($this->config['ver
48ba0 73 69 6f 6e 27 5d 29 29 20 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 sion'])).{.try.{.$this->versionP
48bc0 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 arser->normalize($this->config['
48be0 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 version']);.}.catch.(\Exception.
48c00 24 65 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 76 65 72 73 69 $e).{.unset($this->config['versi
48c20 6f 6e 27 5d 29 3b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 76 65 72 73 69 6f on']);.$this->errors[].=.'versio
48c40 6e 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 n.:.invalid.value.('.$this->conf
48c60 69 67 5b 27 76 65 72 73 69 6f 6e 27 5d 2e 27 29 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 ig['version'].'):.'.$e->getMessa
48c80 67 65 28 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 ge();.}.}..$this->validateRegex(
48ca0 27 74 79 70 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 2d 5d 2b 27 29 3b 0a 24 74 68 69 73 2d 'type',.'[A-Za-z0-9-]+');.$this-
48cc0 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 74 61 72 67 65 74 2d 64 69 72 27 29 3b 0a 24 >validateString('target-dir');.$
48ce0 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 65 78 74 72 61 27 29 3b 0a 24 74 this->validateArray('extra');.$t
48d00 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 62 69 6e 27 29 3b 0a 24 his->validateFlatArray('bin');.$
48d20 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 73 63 72 69 70 74 73 27 29 3b 20 this->validateArray('scripts');.
48d40 0a 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 64 65 73 63 72 69 70 ..$this->validateString('descrip
48d60 74 69 6f 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 55 72 6c 28 27 68 6f 6d 65 tion');.$this->validateUrl('home
48d80 70 61 67 65 27 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 page');.$this->validateFlatArray
48da0 28 27 6b 65 79 77 6f 72 64 73 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 20 2e 5f 2d 5d 2b 27 29 ('keywords',.'[A-Za-z0-9.._-]+')
48dc0 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6c 69 63 65 ;..if.(isset($this->config['lice
48de0 6e 73 65 27 5d 29 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 nse'])).{.if.(is_string($this->c
48e00 6f 6e 66 69 67 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 onfig['license'])).{.$this->vali
48e20 64 61 74 65 52 65 67 65 78 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 5b 41 2d 5a 61 2d 7a 30 2d 39 dateRegex('license',.'[A-Za-z0-9
48e40 2b 2e 20 28 29 2d 5d 2b 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 +..()-]+');.}.else.{.$this->vali
48e60 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 6c 69 63 65 6e 73 65 27 2c 20 27 5b 41 2d 5a 61 2d dateFlatArray('license',.'[A-Za-
48e80 7a 30 2d 39 2b 2e 20 28 29 2d 5d 2b 27 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 z0-9+..()-]+');.}.}..$this->vali
48ea0 64 61 74 65 53 74 72 69 6e 67 28 27 74 69 6d 65 27 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 dateString('time');.if.(!empty($
48ec0 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 29 20 7b 0a 74 72 79 20 7b 0a 24 this->config['time'])).{.try.{.$
48ee0 64 61 74 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 date.=.new.\DateTime($this->conf
48f00 69 67 5b 27 74 69 6d 65 27 5d 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 ig['time'],.new.\DateTimeZone('U
48f20 54 43 27 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b TC'));.}.catch.(\Exception.$e).{
48f40 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 74 69 6d 65 20 3a 20 69 6e 76 61 6c .$this->errors[].=.'time.:.inval
48f60 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 id.value.('.$this->config['time'
48f80 5d 2e 27 29 3a 20 27 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 75 6e 73 65 74 28 ].'):.'.$e->getMessage();.unset(
48fa0 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 69 6d 65 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 $this->config['time']);.}.}..if.
48fc0 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 61 75 74 68 6f 72 73 27 29 ($this->validateArray('authors')
48fe0 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 .&&.!empty($this->config['author
49000 73 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 s'])).{.foreach.($this->config['
49020 61 75 74 68 6f 72 73 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 61 75 74 68 6f 72 29 20 7b 0a authors'].as.$key.=>.$author).{.
49040 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 61 75 74 68 6f 72 29 29 20 7b 0a 24 74 68 69 73 2d if.(!is_array($author)).{.$this-
49060 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 >errors[].=.'authors.'.$key.'.:.
49080 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 24 61 should.be.an.array,.'.gettype($a
490a0 75 74 68 6f 72 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f uthor).'.given';.unset($this->co
490c0 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 nfig['authors'][$key]);.continue
490e0 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 68 6f 6d 65 70 61 67 65 27 2c 20 27 ;.}.foreach.(array('homepage',.'
49100 65 6d 61 69 6c 27 2c 20 27 6e 61 6d 65 27 2c 20 27 72 6f 6c 65 27 29 20 61 73 20 24 61 75 74 68 email',.'name',.'role').as.$auth
49120 6f 72 44 61 74 61 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b 24 61 75 74 orData).{.if.(isset($author[$aut
49140 68 6f 72 44 61 74 61 5d 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 61 75 74 68 6f 72 5b horData]).&&.!is_string($author[
49160 24 61 75 74 68 6f 72 44 61 74 61 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d $authorData])).{.$this->errors[]
49180 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 27 2e 24 61 75 74 68 6f 72 44 61 .=.'authors.'.$key.'.'.$authorDa
491a0 74 61 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 ta.'.:.invalid.value,.must.be.a.
491c0 73 74 72 69 6e 67 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 string';.unset($this->config['au
491e0 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 5b 24 61 75 74 68 6f 72 44 61 74 61 5d 29 3b 0a 7d 0a 7d thors'][$key][$authorData]);.}.}
49200 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 68 6f 72 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 20 .if.(isset($author['homepage']).
49220 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 6c 28 24 61 75 74 68 6f 72 5b 27 68 6f &&.!$this->filterUrl($author['ho
49240 6d 65 70 61 67 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d mepage'])).{.$this->warnings[].=
49260 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 68 6f 6d 65 70 61 67 65 20 3a 20 69 6e .'authors.'.$key.'.homepage.:.in
49280 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 61 75 74 68 6f 72 5b 27 68 6f 6d 65 70 61 67 65 valid.value.('.$author['homepage
492a0 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 6e 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c '].'),.must.be.an.http/https.URL
492c0 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 ';.unset($this->config['authors'
492e0 5d 5b 24 6b 65 79 5d 5b 27 68 6f 6d 65 70 61 67 65 27 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 ][$key]['homepage']);.}.if.(isse
49300 74 28 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 t($author['email']).&&.!filter_v
49320 61 72 28 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 ar($author['email'],.FILTER_VALI
49340 44 41 54 45 5f 45 4d 41 49 4c 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d DATE_EMAIL)).{.$this->warnings[]
49360 20 3d 20 27 61 75 74 68 6f 72 73 2e 27 2e 24 6b 65 79 2e 27 2e 65 6d 61 69 6c 20 3a 20 69 6e 76 .=.'authors.'.$key.'.email.:.inv
49380 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 61 75 74 68 6f 72 5b 27 65 6d 61 69 6c 27 5d 2e 27 alid.value.('.$author['email'].'
493a0 29 2c 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 ),.must.be.a.valid.email.address
493c0 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 ';.unset($this->config['authors'
493e0 5d 5b 24 6b 65 79 5d 5b 27 65 6d 61 69 6c 27 5d 29 3b 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 ][$key]['email']);.}.if.(empty($
49400 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 5b 24 6b 65 79 5d 29 29 20 this->config['authors'][$key])).
49420 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d {.unset($this->config['authors']
49440 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f [$key]);.}.}.if.(empty($this->co
49460 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d nfig['authors'])).{.unset($this-
49480 3e 63 6f 6e 66 69 67 5b 27 61 75 74 68 6f 72 73 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 >config['authors']);.}.}..if.($t
494a0 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 73 75 70 70 6f 72 74 27 29 20 26 26 his->validateArray('support').&&
494c0 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d .!empty($this->config['support']
494e0 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 69 73 73 75 65 73 27 2c 20 27 66 )).{.foreach.(array('issues',.'f
49500 6f 72 75 6d 27 2c 20 27 77 69 6b 69 27 2c 20 27 73 6f 75 72 63 65 27 2c 20 27 65 6d 61 69 6c 27 orum',.'wiki',.'source',.'email'
49520 2c 20 27 69 72 63 27 29 20 61 73 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 ,.'irc').as.$key).{.if.(isset($t
49540 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 20 26 26 his->config['support'][$key]).&&
49560 20 21 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f .!is_string($this->config['suppo
49580 72 74 27 5d 5b 24 6b 65 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d rt'][$key])).{.$this->errors[].=
495a0 20 27 73 75 70 70 6f 72 74 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c .'support.'.$key.'.:.invalid.val
495c0 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 27 3b 0a 75 6e 73 65 74 28 24 74 68 ue,.must.be.a.string';.unset($th
495e0 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a is->config['support'][$key]);.}.
49600 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 }..if.(isset($this->config['supp
49620 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 29 20 26 26 20 21 66 69 6c 74 65 72 5f 76 61 72 28 24 ort']['email']).&&.!filter_var($
49640 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d this->config['support']['email']
49660 2c 20 46 49 4c 54 45 52 5f 56 41 4c 49 44 41 54 45 5f 45 4d 41 49 4c 29 29 20 7b 0a 24 74 68 69 ,.FILTER_VALIDATE_EMAIL)).{.$thi
49680 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 65 6d 61 69 6c 20 3a s->warnings[].=.'support.email.:
496a0 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b .invalid.value.('.$this->config[
496c0 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 'support']['email'].'),.must.be.
496e0 61 20 76 61 6c 69 64 20 65 6d 61 69 6c 20 61 64 64 72 65 73 73 27 3b 0a 75 6e 73 65 74 28 24 74 a.valid.email.address';.unset($t
49700 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 65 6d 61 69 6c 27 5d 29 his->config['support']['email'])
49720 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 ;.}..if.(isset($this->config['su
49740 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 pport']['irc']).&&.!$this->filte
49760 72 55 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 rUrl($this->config['support']['i
49780 72 63 27 5d 2c 20 61 72 72 61 79 28 27 69 72 63 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 rc'],.array('irc'))).{.$this->wa
497a0 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 2e 69 72 63 20 3a 20 69 6e 76 61 6c 69 rnings[].=.'support.irc.:.invali
497c0 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 d.value.('.$this->config['suppor
497e0 74 27 5d 5b 27 69 72 63 27 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 20 69 72 63 3a 2f 2f 3c t']['irc'].'),.must.be.a.irc://<
49800 73 65 72 76 65 72 3e 2f 3c 63 68 61 6e 6e 65 6c 3e 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 server>/<channel>.URL';.unset($t
49820 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 27 69 72 63 27 5d 29 3b 0a his->config['support']['irc']);.
49840 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 69 73 73 75 65 73 27 2c 20 27 66 6f 72 }..foreach.(array('issues',.'for
49860 75 6d 27 2c 20 27 77 69 6b 69 27 2c 20 27 73 6f 75 72 63 65 27 29 20 61 73 20 24 6b 65 79 29 20 um',.'wiki',.'source').as.$key).
49880 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f {.if.(isset($this->config['suppo
498a0 72 74 27 5d 5b 24 6b 65 79 5d 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 55 72 6c rt'][$key]).&&.!$this->filterUrl
498c0 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 29 ($this->config['support'][$key])
498e0 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 73 75 70 70 6f 72 74 ).{.$this->warnings[].=.'support
49900 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 .'.$key.'.:.invalid.value.('.$th
49920 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d 2e 27 29 2c 20 is->config['support'][$key].'),.
49940 6d 75 73 74 20 62 65 20 61 6e 20 68 74 74 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e 73 65 must.be.an.http/https.URL';.unse
49960 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 70 70 6f 72 74 27 5d 5b 24 6b 65 79 5d t($this->config['support'][$key]
49980 29 3b 0a 7d 0a 7d 0a 69 66 20 28 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 );.}.}.if.(empty($this->config['
499a0 73 75 70 70 6f 72 74 27 5d 29 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 support'])).{.unset($this->confi
499c0 67 5b 27 73 75 70 70 6f 72 74 27 5d 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 61 72 72 g['support']);.}.}..foreach.(arr
499e0 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 4c ay_keys(BasePackage::$supportedL
49a00 69 6e 6b 54 79 70 65 73 29 20 61 73 20 24 6c 69 6e 6b 54 79 70 65 29 20 7b 0a 69 66 20 28 24 74 inkTypes).as.$linkType).{.if.($t
49a20 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 24 6c 69 6e 6b 54 79 70 65 29 20 26 26 his->validateArray($linkType).&&
49a40 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 29 .isset($this->config[$linkType])
49a60 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b ).{.foreach.($this->config[$link
49a80 54 79 70 65 5d 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 Type].as.$package.=>.$constraint
49aa0 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 41 2d 5a 61 2d 7a 30 2d ).{.if.(!preg_match('{^[A-Za-z0-
49ac0 39 5f 2e 2f 2d 5d 2b 24 7d 27 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 9_./-]+$}',.$package)).{.$this->
49ae0 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b warnings[].=.$linkType.'.'.$pack
49b00 61 67 65 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 6b 65 79 2c 20 70 61 63 6b 61 67 65 20 6e 61 6d age.'.:.invalid.key,.package.nam
49b20 65 73 20 6d 75 73 74 20 62 65 20 73 74 72 69 6e 67 73 20 63 6f 6e 74 61 69 6e 69 6e 67 20 6f 6e es.must.be.strings.containing.on
49b40 6c 79 20 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d 5d 27 3b 0a 7d 0a 69 66 20 28 21 69 73 5f 73 ly.[A-Za-z0-9_./-]';.}.if.(!is_s
49b60 74 72 69 6e 67 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 tring($constraint)).{.$this->err
49b80 6f 72 73 5b 5d 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 ors[].=.$linkType.'.'.$package.'
49ba0 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 .:.invalid.value,.must.be.a.stri
49bc0 6e 67 20 63 6f 6e 74 61 69 6e 69 6e 67 20 61 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 ng.containing.a.version.constrai
49be0 6e 74 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 nt';.unset($this->config[$linkTy
49c00 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 73 65 6c 66 2e pe][$package]);.}.elseif.('self.
49c20 76 65 72 73 69 6f 6e 27 20 21 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 74 72 79 20 version'.!==.$constraint).{.try.
49c40 7b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 43 6f 6e {.$this->versionParser->parseCon
49c60 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 straints($constraint);.}.catch.(
49c80 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d \Exception.$e).{.$this->errors[]
49ca0 20 3d 20 24 6c 69 6e 6b 54 79 70 65 2e 27 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 3a 20 69 6e .=.$linkType.'.'.$package.'.:.in
49cc0 76 61 6c 69 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 28 27 2e 24 65 2d 3e valid.version.constraint.('.$e->
49ce0 67 65 74 4d 65 73 73 61 67 65 28 29 2e 27 29 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 getMessage().')';.unset($this->c
49d00 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 7d 0a 7d onfig[$linkType][$package]);.}.}
49d20 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 .}.}.}..if.($this->validateArray
49d40 28 27 73 75 67 67 65 73 74 27 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e ('suggest').&&.!empty($this->con
49d60 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 fig['suggest'])).{.foreach.($thi
49d80 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 67 67 65 73 74 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 s->config['suggest'].as.$package
49da0 20 3d 3e 20 24 64 65 73 63 72 69 70 74 69 6f 6e 29 20 7b 0a 69 66 20 28 21 69 73 5f 73 74 72 69 .=>.$description).{.if.(!is_stri
49dc0 6e 67 28 24 64 65 73 63 72 69 70 74 69 6f 6e 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 ng($description)).{.$this->error
49de0 73 5b 5d 20 3d 20 27 73 75 67 67 65 73 74 2e 27 2e 24 70 61 63 6b 61 67 65 2e 27 20 3a 20 69 6e s[].=.'suggest.'.$package.'.:.in
49e00 76 61 6c 69 64 20 76 61 6c 75 65 2c 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 6e 67 20 64 65 valid.value,.must.be.a.string.de
49e20 73 63 72 69 62 69 6e 67 20 77 68 79 20 74 68 65 20 70 61 63 6b 61 67 65 20 69 73 20 73 75 67 67 scribing.why.the.package.is.sugg
49e40 65 73 74 65 64 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 73 75 67 ested';.unset($this->config['sug
49e60 67 65 73 74 27 5d 5b 24 70 61 63 6b 61 67 65 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 gest'][$package]);.}.}.}..if.($t
49e80 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e 67 28 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 his->validateString('minimum-sta
49ea0 62 69 6c 69 74 79 27 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 bility').&&.!empty($this->config
49ec0 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 ['minimum-stability'])).{.if.(!i
49ee0 73 73 65 74 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 sset(BasePackage::$stabilities[$
49f00 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 this->config['minimum-stability'
49f20 5d 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 6d 69 6e 69 6d 75 ]])).{.$this->errors[].=.'minimu
49f40 6d 2d 73 74 61 62 69 6c 69 74 79 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 m-stability.:.invalid.value.('.$
49f60 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 this->config['minimum-stability'
49f80 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 6f 6e 65 20 6f 66 20 27 2e 69 6d 70 6c 6f 64 65 28 27 ].'),.must.be.one.of.'.implode('
49fa0 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 ,.',.array_keys(BasePackage::$st
49fc0 61 62 69 6c 69 74 69 65 73 29 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 abilities));.unset($this->config
49fe0 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 ['minimum-stability']);.}.}..if.
4a000 28 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 41 72 72 61 79 28 27 61 75 74 6f 6c 6f 61 64 27 ($this->validateArray('autoload'
4a020 29 20 26 26 20 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c ).&&.!empty($this->config['autol
4a040 6f 61 64 27 5d 29 29 20 7b 0a 24 74 79 70 65 73 20 3d 20 61 72 72 61 79 28 27 70 73 72 2d 30 27 oad'])).{.$types.=.array('psr-0'
4a060 2c 20 27 70 73 72 2d 34 27 2c 20 27 63 6c 61 73 73 6d 61 70 27 2c 20 27 66 69 6c 65 73 27 29 3b ,.'psr-4',.'classmap',.'files');
4a080 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 .foreach.($this->config['autoloa
4a0a0 64 27 5d 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 74 79 70 65 43 6f 6e 66 69 67 29 20 7b 0a 69 d'].as.$type.=>.$typeConfig).{.i
4a0c0 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 74 79 70 65 2c 20 24 74 79 70 65 73 29 29 20 7b 0a 24 f.(!in_array($type,.$types)).{.$
4a0e0 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 61 75 74 6f 6c 6f 61 64 20 3a 20 69 6e 76 this->errors[].=.'autoload.:.inv
4a100 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 79 70 65 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 alid.value.('.$type.'),.must.be.
4a120 6f 6e 65 20 6f 66 20 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 74 79 70 65 73 29 3b 0a one.of.'.implode(',.',.$types);.
4a140 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 5b unset($this->config['autoload'][
4a160 24 74 79 70 65 5d 29 3b 0a 7d 0a 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 34 27 $type]);.}.if.($type.===.'psr-4'
4a180 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 79 70 65 43 6f 6e 66 69 67 20 61 73 20 24 6e 61 6d ).{.foreach.($typeConfig.as.$nam
4a1a0 65 73 70 61 63 65 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a 69 66 20 28 24 6e 61 6d 65 73 70 61 63 espace.=>.$dirs).{.if.($namespac
4a1c0 65 20 21 3d 3d 20 27 27 20 26 26 20 27 5c 5c 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 6e 61 6d e.!==.''.&&.'\\'.!==.substr($nam
4a1e0 65 73 70 61 63 65 2c 20 2d 31 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d espace,.-1)).{.$this->errors[].=
4a200 20 27 61 75 74 6f 6c 6f 61 64 2e 70 73 72 2d 34 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 .'autoload.psr-4.:.invalid.value
4a220 20 28 27 2e 24 6e 61 6d 65 73 70 61 63 65 2e 27 29 2c 20 6e 61 6d 65 73 70 61 63 65 73 20 6d 75 .('.$namespace.'),.namespaces.mu
4a240 73 74 20 65 6e 64 20 77 69 74 68 20 61 20 6e 61 6d 65 73 70 61 63 65 20 73 65 70 61 72 61 74 6f st.end.with.a.namespace.separato
4a260 72 2c 20 73 68 6f 75 6c 64 20 62 65 20 27 2e 24 6e 61 6d 65 73 70 61 63 65 2e 27 5c 5c 27 3b 0a r,.should.be.'.$namespace.'\\';.
4a280 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e }.}.}.}.}..if.(!empty($this->con
4a2a0 66 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 5b 27 70 73 72 2d 34 27 5d 29 20 26 26 20 21 65 6d fig['autoload']['psr-4']).&&.!em
4a2c0 70 74 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 74 61 72 67 65 74 2d 64 69 72 27 5d 29 pty($this->config['target-dir'])
4a2e0 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 74 61 72 67 65 74 2d 64 69 ).{.$this->errors[].=.'target-di
4a300 72 20 3a 20 74 68 69 73 20 63 61 6e 20 6e 6f 74 20 62 65 20 75 73 65 64 20 74 6f 67 65 74 68 65 r.:.this.can.not.be.used.togethe
4a320 72 20 77 69 74 68 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 2e 70 73 72 2d 34 20 73 65 74 74 69 6e r.with.the.autoload.psr-4.settin
4a340 67 2c 20 72 65 6d 6f 76 65 20 74 61 72 67 65 74 2d 64 69 72 20 74 6f 20 75 70 67 72 61 64 65 20 g,.remove.target-dir.to.upgrade.
4a360 74 6f 20 70 73 72 2d 34 27 3b 0a 0a 20 0a 20 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 to.psr-4';.....unset($this->conf
4a380 69 67 5b 27 61 75 74 6f 6c 6f 61 64 27 5d 5b 27 70 73 72 2d 34 27 5d 29 3b 0a 7d 0a 0a 0a 20 0a ig['autoload']['psr-4']);.}.....
4a3a0 0a 0a 20 0a 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 27 69 .....$this->validateFlatArray('i
4a3c0 6e 63 6c 75 64 65 2d 70 61 74 68 27 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 nclude-path');....if.(isset($thi
4a3e0 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 s->config['extra']['branch-alias
4a400 27 5d 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 '])).{.if.(!is_array($this->conf
4a420 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 29 29 20 7b 0a ig['extra']['branch-alias'])).{.
4a440 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d $this->errors[].=.'extra.branch-
4a460 61 6c 69 61 73 20 3a 20 6d 75 73 74 20 62 65 20 61 6e 20 61 72 72 61 79 20 6f 66 20 76 65 72 73 alias.:.must.be.an.array.of.vers
4a480 69 6f 6e 73 20 3d 3e 20 61 6c 69 61 73 65 73 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 ions.=>.aliases';.}.else.{.forea
4a4a0 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e ch.($this->config['extra']['bran
4a4c0 63 68 2d 61 6c 69 61 73 27 5d 20 61 73 20 24 73 6f 75 72 63 65 42 72 61 6e 63 68 20 3d 3e 20 24 ch-alias'].as.$sourceBranch.=>.$
4a4e0 74 61 72 67 65 74 42 72 61 6e 63 68 29 20 7b 0a 0a 20 69 66 20 28 27 2d 64 65 76 27 20 21 3d 3d targetBranch).{...if.('-dev'.!==
4a500 20 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 24 74 .substr($targetBranch,.-4)).{.$t
4a520 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d his->warnings[].=.'extra.branch-
4a540 61 6c 69 61 73 2e 27 2e 24 73 6f 75 72 63 65 42 72 61 6e 63 68 2e 27 20 3a 20 74 68 65 20 74 61 alias.'.$sourceBranch.'.:.the.ta
4a560 72 67 65 74 20 62 72 61 6e 63 68 20 28 27 2e 24 74 61 72 67 65 74 42 72 61 6e 63 68 2e 27 29 20 rget.branch.('.$targetBranch.').
4a580 6d 75 73 74 20 65 6e 64 20 69 6e 20 2d 64 65 76 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e must.end.in.-dev';.unset($this->
4a5a0 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b config['extra']['branch-alias'][
4a5c0 24 73 6f 75 72 63 65 42 72 61 6e 63 68 5d 29 3b 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a $sourceBranch]);..continue;.}...
4a5e0 20 24 76 61 6c 69 64 61 74 65 64 54 61 72 67 65 74 42 72 61 6e 63 68 20 3d 20 24 74 68 69 73 2d .$validatedTargetBranch.=.$this-
4a600 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(
4a620 73 75 62 73 74 72 28 24 74 61 72 67 65 74 42 72 61 6e 63 68 2c 20 30 2c 20 2d 34 29 29 3b 0a 69 substr($targetBranch,.0,.-4));.i
4a640 66 20 28 27 2d 64 65 76 27 20 21 3d 3d 20 73 75 62 73 74 72 28 24 76 61 6c 69 64 61 74 65 64 54 f.('-dev'.!==.substr($validatedT
4a660 61 72 67 65 74 42 72 61 6e 63 68 2c 20 2d 34 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 argetBranch,.-4)).{.$this->warni
4a680 6e 67 73 5b 5d 20 3d 20 27 65 78 74 72 61 2e 62 72 61 6e 63 68 2d 61 6c 69 61 73 2e 27 2e 24 73 ngs[].=.'extra.branch-alias.'.$s
4a6a0 6f 75 72 63 65 42 72 61 6e 63 68 2e 27 20 3a 20 74 68 65 20 74 61 72 67 65 74 20 62 72 61 6e 63 ourceBranch.'.:.the.target.branc
4a6c0 68 20 28 27 2e 24 74 61 72 67 65 74 42 72 61 6e 63 68 2e 27 29 20 6d 75 73 74 20 62 65 20 61 20 h.('.$targetBranch.').must.be.a.
4a6e0 70 61 72 73 65 61 62 6c 65 20 6e 75 6d 62 65 72 20 6c 69 6b 65 20 32 2e 30 2d 64 65 76 27 3b 0a parseable.number.like.2.0-dev';.
4a700 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 65 78 74 72 61 27 5d 5b 27 62 72 unset($this->config['extra']['br
4a720 61 6e 63 68 2d 61 6c 69 61 73 27 5d 5b 24 73 6f 75 72 63 65 42 72 61 6e 63 68 5d 29 3b 0a 7d 0a anch-alias'][$sourceBranch]);.}.
4a740 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 29 20 7b 0a 74 68 72 6f }.}.}..if.($this->errors).{.thro
4a760 77 20 6e 65 77 20 49 6e 76 61 6c 69 64 50 61 63 6b 61 67 65 45 78 63 65 70 74 69 6f 6e 28 24 74 w.new.InvalidPackageException($t
4a780 68 69 73 2d 3e 65 72 72 6f 72 73 2c 20 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 2c 20 24 63 his->errors,.$this->warnings,.$c
4a7a0 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 61 onfig);.}..$package.=.$this->loa
4a7c0 64 65 72 2d 3e 6c 6f 61 64 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 29 der->load($this->config,.$class)
4a7e0 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 ;.$this->config.=.null;..return.
4a800 24 70 61 63 6b 61 67 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 $package;.}..public.function.get
4a820 57 61 72 6e 69 6e 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 72 6e 69 Warnings().{.return.$this->warni
4a840 6e 67 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 45 72 72 6f 72 ngs;.}..public.function.getError
4a860 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 3b 0a 7d 0a 0a 70 s().{.return.$this->errors;.}..p
4a880 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 52 65 67 65 78 28 24 70 rivate.function.validateRegex($p
4a8a0 72 6f 70 65 72 74 79 2c 20 24 72 65 67 65 78 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 roperty,.$regex,.$mandatory.=.fa
4a8c0 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 69 6e lse).{.if.(!$this->validateStrin
4a8e0 67 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a 72 65 74 75 g($property,.$mandatory)).{.retu
4a900 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e rn.false;.}..if.(!preg_match('{^
4a920 27 2e 24 72 65 67 65 78 2e 27 24 7d 75 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 '.$regex.'$}u',.$this->config[$p
4a940 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 70 72 6f 70 65 72 74 roperty])).{.$message.=.$propert
4a960 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f y.'.:.invalid.value.('.$this->co
4a980 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 2e 27 29 2c 20 6d 75 73 74 20 6d 61 74 63 68 20 27 nfig[$property].'),.must.match.'
4a9a0 2e 24 72 65 67 65 78 3b 0a 69 66 20 28 24 6d 61 6e 64 61 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 .$regex;.if.($mandatory).{.$this
4a9c0 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a ->errors[].=.$message;.}.else.{.
4a9e0 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 0a $this->warnings[].=.$message;.}.
4aa00 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b unset($this->config[$property]);
4aa20 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a ..return.false;.}..return.true;.
4aa40 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 53 74 72 69 }..private.function.validateStri
4aa60 6e 67 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 ng($property,.$mandatory.=.false
4aa80 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f ).{.if.(isset($this->config[$pro
4aaa0 70 65 72 74 79 5d 29 20 26 26 20 21 69 73 5f 73 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 63 6f 6e perty]).&&.!is_string($this->con
4aac0 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 fig[$property])).{.$this->errors
4aae0 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 73 68 6f 75 6c 64 20 62 65 20 61 20 73 [].=.$property.'.:.should.be.a.s
4ab00 74 72 69 6e 67 2c 20 27 2e 67 65 74 74 79 70 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 tring,.'.gettype($this->config[$
4ab20 70 72 6f 70 65 72 74 79 5d 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 property]).'.given';.unset($this
4ab40 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 ->config[$property]);..return.fa
4ab60 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 lse;.}..if.(!isset($this->config
4ab80 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 7c 7c 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 6f 6e 66 [$property]).||.trim($this->conf
4aba0 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 20 3d 3d 3d 20 27 27 29 20 7b 0a 69 66 20 28 24 6d 61 ig[$property]).===.'').{.if.($ma
4abc0 6e 64 61 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 ndatory).{.$this->errors[].=.$pr
4abe0 6f 70 65 72 74 79 2e 27 20 3a 20 6d 75 73 74 20 62 65 20 70 72 65 73 65 6e 74 27 3b 0a 7d 0a 75 operty.'.:.must.be.present';.}.u
4ac00 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a nset($this->config[$property]);.
4ac20 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d .return.false;.}..return.true;.}
4ac40 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 41 72 72 61 79 ..private.function.validateArray
4ac60 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 66 61 6c 73 65 29 0a ($property,.$mandatory.=.false).
4ac80 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 {.if.(isset($this->config[$prope
4aca0 72 74 79 5d 29 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 rty]).&&.!is_array($this->config
4acc0 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 [$property])).{.$this->errors[].
4ace0 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 20 3a 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 =.$property.'.:.should.be.an.arr
4ad00 61 79 2c 20 27 2e 67 65 74 74 79 70 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f ay,.'.gettype($this->config[$pro
4ad20 70 65 72 74 79 5d 29 2e 27 20 67 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 perty]).'.given';.unset($this->c
4ad40 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 onfig[$property]);..return.false
4ad60 3b 0a 7d 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 ;.}..if.(!isset($this->config[$p
4ad80 72 6f 70 65 72 74 79 5d 29 20 7c 7c 20 21 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 roperty]).||.!count($this->confi
4ada0 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 7b 0a 69 66 20 28 24 6d 61 6e 64 61 74 6f 72 79 29 g[$property])).{.if.($mandatory)
4adc0 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e 27 .{.$this->errors[].=.$property.'
4ade0 20 3a 20 6d 75 73 74 20 62 65 20 70 72 65 73 65 6e 74 20 61 6e 64 20 63 6f 6e 74 61 69 6e 20 61 .:.must.be.present.and.contain.a
4ae00 74 20 6c 65 61 73 74 20 6f 6e 65 20 65 6c 65 6d 65 6e 74 27 3b 0a 7d 0a 75 6e 73 65 74 28 24 74 t.least.one.element';.}.unset($t
4ae20 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e his->config[$property]);..return
4ae40 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 .false;.}..return.true;.}..priva
4ae60 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 46 6c 61 74 41 72 72 61 79 28 24 70 te.function.validateFlatArray($p
4ae80 72 6f 70 65 72 74 79 2c 20 24 72 65 67 65 78 20 3d 20 6e 75 6c 6c 2c 20 24 6d 61 6e 64 61 74 6f roperty,.$regex.=.null,.$mandato
4aea0 72 79 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 ry.=.false).{.if.(!$this->valida
4aec0 74 65 41 72 72 61 79 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 29 29 20 teArray($property,.$mandatory)).
4aee0 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 70 61 73 73 20 3d 20 74 72 75 65 3b {.return.false;.}..$pass.=.true;
4af00 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 .foreach.($this->config[$propert
4af20 79 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 21 69 73 5f y].as.$key.=>.$value).{.if.(!is_
4af40 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 20 26 26 20 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 string($value).&&.!is_numeric($v
4af60 61 6c 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 73 5b 5d 20 3d 20 24 70 72 6f 70 alue)).{.$this->errors[].=.$prop
4af80 65 72 74 79 2e 27 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 6d 75 73 74 20 62 65 20 61 20 73 74 72 69 erty.'.'.$key.'.:.must.be.a.stri
4afa0 6e 67 20 6f 72 20 69 6e 74 2c 20 27 2e 67 65 74 74 79 70 65 28 24 76 61 6c 75 65 29 2e 27 20 67 ng.or.int,.'.gettype($value).'.g
4afc0 69 76 65 6e 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 iven';.unset($this->config[$prop
4afe0 65 72 74 79 5d 5b 24 6b 65 79 5d 29 3b 0a 24 70 61 73 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 63 6f erty][$key]);.$pass.=.false;..co
4b000 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 67 65 78 20 26 26 20 21 70 72 65 67 5f 6d ntinue;.}..if.($regex.&&.!preg_m
4b020 61 74 63 68 28 27 7b 5e 27 2e 24 72 65 67 65 78 2e 27 24 7d 75 27 2c 20 24 76 61 6c 75 65 29 29 atch('{^'.$regex.'$}u',.$value))
4b040 20 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 .{.$this->warnings[].=.$property
4b060 2e 27 2e 27 2e 24 6b 65 79 2e 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 .'.'.$key.'.:.invalid.value.('.$
4b080 76 61 6c 75 65 2e 27 29 2c 20 6d 75 73 74 20 6d 61 74 63 68 20 27 2e 24 72 65 67 65 78 3b 0a 75 value.'),.must.match.'.$regex;.u
4b0a0 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 5b 24 6b nset($this->config[$property][$k
4b0c0 65 79 5d 29 3b 0a 24 70 61 73 73 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e ey]);.$pass.=.false;.}.}..return
4b0e0 20 24 70 61 73 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 .$pass;.}..private.function.vali
4b100 64 61 74 65 55 72 6c 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 20 3d 20 dateUrl($property,.$mandatory.=.
4b120 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 53 74 72 false).{.if.(!$this->validateStr
4b140 69 6e 67 28 24 70 72 6f 70 65 72 74 79 2c 20 24 6d 61 6e 64 61 74 6f 72 79 29 29 20 7b 0a 72 65 ing($property,.$mandatory)).{.re
4b160 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 66 69 6c 74 65 turn.false;.}..if.(!$this->filte
4b180 72 55 72 6c 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 29 20 rUrl($this->config[$property])).
4b1a0 7b 0a 24 74 68 69 73 2d 3e 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 24 70 72 6f 70 65 72 74 79 2e {.$this->warnings[].=.$property.
4b1c0 27 20 3a 20 69 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 '.:.invalid.value.('.$this->conf
4b1e0 69 67 5b 24 70 72 6f 70 65 72 74 79 5d 2e 27 29 2c 20 6d 75 73 74 20 62 65 20 61 6e 20 68 74 74 ig[$property].'),.must.be.an.htt
4b200 70 2f 68 74 74 70 73 20 55 52 4c 27 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 p/https.URL';.unset($this->confi
4b220 67 5b 24 70 72 6f 70 65 72 74 79 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a g[$property]);..return.false;.}.
4b240 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f .return.true;.}..private.functio
4b260 6e 20 66 69 6c 74 65 72 55 72 6c 28 24 76 61 6c 75 65 2c 20 61 72 72 61 79 20 24 73 63 68 65 6d n.filterUrl($value,.array.$schem
4b280 65 73 20 3d 20 61 72 72 61 79 28 27 68 74 74 70 27 2c 20 27 68 74 74 70 73 27 29 29 0a 7b 0a 69 es.=.array('http',.'https')).{.i
4b2a0 66 20 28 24 76 61 6c 75 65 20 3d 3d 3d 20 27 27 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b f.($value.===.'').{.return.true;
4b2c0 0a 7d 0a 0a 24 62 69 74 73 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 76 61 6c 75 65 29 3b 0a 69 .}..$bits.=.parse_url($value);.i
4b2e0 66 20 28 65 6d 70 74 79 28 24 62 69 74 73 5b 27 73 63 68 65 6d 65 27 5d 29 20 7c 7c 20 65 6d 70 f.(empty($bits['scheme']).||.emp
4b300 74 79 28 24 62 69 74 73 5b 27 68 6f 73 74 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 ty($bits['host'])).{.return.fals
4b320 65 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 62 69 74 73 5b 27 73 63 68 65 6d e;.}..if.(!in_array($bits['schem
4b340 65 27 5d 2c 20 24 73 63 68 65 6d 65 73 2c 20 74 72 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 e'],.$schemes,.true)).{.return.f
4b360 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a alse;.}..return.true;.}.}.<?php.
4b380 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 ...........namespace.Composer\Pa
4b3a0 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 50 61 63 6b ckage\Loader;..use.Composer\Pack
4b3c0 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 61 age\BasePackage;.use.Composer\Pa
4b3e0 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ckage\AliasPackage;.use.Composer
4b400 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 61 63 74 6f 72 79 3b 0a 75 \Config;.use.Composer\Factory;.u
4b420 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 65 72 73 69 6f 6e 5c 56 65 72 73 se.Composer\Package\Version\Vers
4b440 69 6f 6e 50 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 ionParser;.use.Composer\Reposito
4b460 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
4b480 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 5c 48 67 44 72 69 76 65 72 3b 0a 75 73 65 20 er\Repository\Vcs\HgDriver;.use.
4b4a0 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 4e 75 6c 6c 49 4f 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 Composer\IO\NullIO;.use.Composer
4b4c0 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 70 6f \Util\ProcessExecutor;.use.Compo
4b4e0 73 65 72 5c 55 74 69 6c 5c 47 69 74 20 61 73 20 47 69 74 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a ser\Util\Git.as.GitUtil;........
4b500 0a 63 6c 61 73 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 72 20 65 78 74 65 6e 64 73 .class.RootPackageLoader.extends
4b520 20 41 72 72 61 79 4c 6f 61 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 6d 61 6e 61 67 65 72 3b .ArrayLoader.{.private.$manager;
4b540 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 .private.$config;.private.$proce
4b560 73 73 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 ss;..public.function.__construct
4b580 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 2c 20 43 6f 6e (RepositoryManager.$manager,.Con
4b5a0 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 20 24 70 61 72 73 fig.$config,.VersionParser.$pars
4b5c0 65 72 20 3d 20 6e 75 6c 6c 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 er.=.null,.ProcessExecutor.$proc
4b5e0 65 73 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 20 3d 20 24 ess.=.null).{.$this->manager.=.$
4b600 6d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 manager;.$this->config.=.$config
4b620 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 6e ;.$this->process.=.$process.?:.n
4b640 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f ew.ProcessExecutor();.parent::__
4b660 63 6f 6e 73 74 72 75 63 74 28 24 70 61 72 73 65 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 construct($parser);.}..public.fu
4b680 6e 63 74 69 6f 6e 20 6c 6f 61 64 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 nction.load(array.$config,.$clas
4b6a0 73 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 s.=.'Composer\Package\RootPackag
4b6c0 65 27 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 65 27 5d e').{.if.(!isset($config['name']
4b6e0 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 74 5f 5f )).{.$config['name'].=.'__root__
4b700 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 69 6f 6e ';.}.if.(!isset($config['version
4b720 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 5f 52 4f '])).{...if.(getenv('COMPOSER_RO
4b740 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 74 65 6e OT_VERSION')).{.$version.=.geten
4b760 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 20 65 6c v('COMPOSER_ROOT_VERSION');.}.el
4b780 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 65 72 73 se.{.$version.=.$this->guessVers
4b7a0 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 6e 29 20 ion($config);.}..if.(!$version).
4b7c0 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 66 69 67 {.$version.=.'1.0.0';.}..$config
4b7e0 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 0a 0a 24 72 65 61 6c ['version'].=.$version;.}..$real
4b800 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 20 3d 20 70 61 72 65 6e 74 3a 3a 6c 6f 61 Package.=.$package.=.parent::loa
4b820 64 28 24 63 6f 6e 66 69 67 2c 20 24 63 6c 61 73 73 29 3b 0a 0a 69 66 20 28 24 72 65 61 6c 50 61 d($config,.$class);..if.($realPa
4b840 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b ckage.instanceof.AliasPackage).{
4b860 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 .$realPackage.=.$package->getAli
4b880 61 73 4f 66 28 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 6d 69 asOf();.}..if.(isset($config['mi
4b8a0 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 29 20 7b 0a 24 72 65 61 6c 50 61 63 6b 61 nimum-stability'])).{.$realPacka
4b8c0 67 65 2d 3e 73 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 56 65 72 73 69 6f 6e 50 ge->setMinimumStability(VersionP
4b8e0 61 72 73 65 72 3a 3a 6e 6f 72 6d 61 6c 69 7a 65 53 74 61 62 69 6c 69 74 79 28 24 63 6f 6e 66 69 arser::normalizeStability($confi
4b900 67 5b 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 29 3b 0a 7d 0a 0a 24 61 6c g['minimum-stability']));.}..$al
4b920 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 iases.=.array();.$stabilityFlags
4b940 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 79 28 .=.array();.$references.=.array(
4b960 29 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 72 65 71 75 69 72 65 27 2c 20 27 72 65 );.foreach.(array('require',.'re
4b980 71 75 69 72 65 2d 64 65 76 27 29 20 61 73 20 24 6c 69 6e 6b 54 79 70 65 29 20 7b 0a 69 66 20 28 quire-dev').as.$linkType).{.if.(
4b9a0 69 73 73 65 74 28 24 63 6f 6e 66 69 67 5b 24 6c 69 6e 6b 54 79 70 65 5d 29 29 20 7b 0a 24 6c 69 isset($config[$linkType])).{.$li
4b9c0 6e 6b 49 6e 66 6f 20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 75 70 70 6f 72 74 65 64 nkInfo.=.BasePackage::$supported
4b9e0 4c 69 6e 6b 54 79 70 65 73 5b 24 6c 69 6e 6b 54 79 70 65 5d 3b 0a 24 6d 65 74 68 6f 64 20 3d 20 LinkTypes[$linkType];.$method.=.
4ba00 27 67 65 74 27 2e 75 63 66 69 72 73 74 28 24 6c 69 6e 6b 49 6e 66 6f 5b 27 6d 65 74 68 6f 64 27 'get'.ucfirst($linkInfo['method'
4ba20 5d 29 3b 0a 24 6c 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 ]);.$links.=.array();.foreach.($
4ba40 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 24 6d 65 74 68 6f 64 28 29 20 61 73 20 24 6c 69 6e 6b 29 realPackage->$method().as.$link)
4ba60 20 7b 0a 24 6c 69 6e 6b 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 .{.$links[$link->getTarget()].=.
4ba80 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 2d 3e 67 65 74 50 72 65 74 74 $link->getConstraint()->getPrett
4baa0 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 65 yString();.}.$aliases.=.$this->e
4bac0 78 74 72 61 63 74 41 6c 69 61 73 65 73 28 24 6c 69 6e 6b 73 2c 20 24 61 6c 69 61 73 65 73 29 3b xtractAliases($links,.$aliases);
4bae0 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 .$stabilityFlags.=.$this->extrac
4bb00 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 24 6c 69 6e 6b 73 2c 20 24 73 74 61 62 69 6c 69 tStabilityFlags($links,.$stabili
4bb20 74 79 46 6c 61 67 73 2c 20 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 67 65 74 4d 69 6e 69 6d 75 tyFlags,.$realPackage->getMinimu
4bb40 6d 53 74 61 62 69 6c 69 74 79 28 29 29 3b 0a 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 74 68 mStability());.$references.=.$th
4bb60 69 73 2d 3e 65 78 74 72 61 63 74 52 65 66 65 72 65 6e 63 65 73 28 24 6c 69 6e 6b 73 2c 20 24 72 is->extractReferences($links,.$r
4bb80 65 66 65 72 65 6e 63 65 73 29 3b 0a 7d 0a 7d 0a 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 eferences);.}.}..$realPackage->s
4bba0 65 74 41 6c 69 61 73 65 73 28 24 61 6c 69 61 73 65 73 29 3b 0a 24 72 65 61 6c 50 61 63 6b 61 67 etAliases($aliases);.$realPackag
4bbc0 65 2d 3e 73 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 24 73 74 61 62 69 6c 69 74 79 46 e->setStabilityFlags($stabilityF
4bbe0 6c 61 67 73 29 3b 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 66 65 72 65 6e 63 lags);.$realPackage->setReferenc
4bc00 65 73 28 24 72 65 66 65 72 65 6e 63 65 73 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 63 6f 6e es($references);..if.(isset($con
4bc20 66 69 67 5b 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 27 5d 29 29 20 7b 0a 24 72 65 61 6c 50 61 fig['prefer-stable'])).{.$realPa
4bc40 63 6b 61 67 65 2d 3e 73 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 28 62 6f 6f 6c 29 20 24 63 ckage->setPreferStable((bool).$c
4bc60 6f 6e 66 69 67 5b 27 70 72 65 66 65 72 2d 73 74 61 62 6c 65 27 5d 29 3b 0a 7d 0a 0a 24 72 65 70 onfig['prefer-stable']);.}..$rep
4bc80 6f 73 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 os.=.Factory::createDefaultRepos
4bca0 69 74 6f 72 69 65 73 28 6e 75 6c 6c 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 itories(null,.$this->config,.$th
4bcc0 69 73 2d 3e 6d 61 6e 61 67 65 72 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 20 61 73 is->manager);.foreach.($repos.as
4bce0 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 61 67 65 72 2d 3e 61 64 64 52 65 70 .$repo).{.$this->manager->addRep
4bd00 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 24 72 65 61 6c 50 61 63 6b 61 67 65 2d 3e ository($repo);.}.$realPackage->
4bd20 73 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 setRepositories($this->config->g
4bd40 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b etRepositories());..return.$pack
4bd60 61 67 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 age;.}..private.function.extract
4bd80 41 6c 69 61 73 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 Aliases(array.$requires,.array.$
4bda0 61 6c 69 61 73 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 aliases).{.foreach.($requires.as
4bdc0 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 7b 0a 69 66 20 28 .$reqName.=>.$reqVersion).{.if.(
4bde0 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 23 5d 2b 29 28 3f 3a 23 5b 5e 20 5d preg_match('{^([^,\s#]+)(?:#[^.]
4be00 2b 29 3f 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 72 73 69 +)?.+as.+([^,\s]+)$}',.$reqVersi
4be20 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 72 72 61 on,.$match)).{.$aliases[].=.arra
4be40 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 65 71 4e y(.'package'.=>.strtolower($reqN
4be60 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 73 69 6f ame),.'version'.=>.$this->versio
4be80 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 2c 20 24 72 nParser->normalize($match[1],.$r
4bea0 65 71 56 65 72 73 69 6f 6e 29 2c 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 6d 61 74 63 68 5b 32 5d eqVersion),.'alias'.=>.$match[2]
4bec0 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 20 3d 3e 20 24 74 68 69 73 2d 3e 76 ,.'alias_normalized'.=>.$this->v
4bee0 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 24 6d 61 74 63 68 5b 32 ersionParser->normalize($match[2
4bf00 5d 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 ],.$reqVersion),.);.}.}..return.
4bf20 24 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 78 $aliases;.}..private.function.ex
4bf40 74 72 61 63 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 61 72 72 61 79 20 24 72 65 71 75 69 tractStabilityFlags(array.$requi
4bf60 72 65 73 2c 20 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 20 24 6d 69 6e res,.array.$stabilityFlags,.$min
4bf80 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 29 0a 7b 0a 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 imumStability).{.$stabilities.=.
4bfa0 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 3b 0a 24 6d 69 6e 69 BasePackage::$stabilities;.$mini
4bfc0 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 6d 69 6e mumStability.=.$stabilities[$min
4bfe0 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 imumStability];.foreach.($requir
4c000 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 7b es.as.$reqName.=>.$reqVersion).{
4c020 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 27 ...if.(preg_match('{^[^,\s]*?@('
4c040 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 6c .implode('|',.array_keys($stabil
4c060 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 61 ities)).')$}i',.$reqVersion,.$ma
4c080 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 4e tch)).{.$name.=.strtolower($reqN
4c0a0 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 5b ame);.$stability.=.$stabilities[
4c0c0 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 74 VersionParser::normalizeStabilit
4c0e0 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 69 y($match[1])];..if.(isset($stabi
4c100 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 46 lityFlags[$name]).&&.$stabilityF
4c120 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 74 lags[$name].>.$stability).{.cont
4c140 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 3d inue;.}.$stabilityFlags[$name].=
4c160 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 0a 20 24 .$stability;..continue;.}......$
4c180 72 65 71 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5b 5e reqVersion.=.preg_replace('{^([^
4c1a0 2c 5c 73 40 5d 2b 29 20 61 73 20 2e 2b 24 7d 27 2c 20 27 24 31 27 2c 20 24 72 65 71 56 65 72 73 ,\s@]+).as..+$}',.'$1',.$reqVers
4c1c0 69 6f 6e 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 5e 2c 5c 73 40 5d 2b ion);.if.(preg_match('{^[^,\s@]+
4c1e0 24 7d 27 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 20 26 26 20 27 73 74 61 62 6c 65 27 20 21 3d $}',.$reqVersion).&&.'stable'.!=
4c200 3d 20 28 24 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 =.($stabilityName.=.VersionParse
4c220 72 3a 3a 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 72 65 71 56 65 72 73 69 6f 6e 29 29 29 r::parseStability($reqVersion)))
4c240 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 4e 61 6d 65 29 3b .{.$name.=.strtolower($reqName);
4c260 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 5b 24 73 74 61 62 .$stability.=.$stabilities[$stab
4c280 69 6c 69 74 79 4e 61 6d 65 5d 3b 0a 69 66 20 28 28 69 73 73 65 74 28 24 73 74 61 62 69 6c 69 74 ilityName];.if.((isset($stabilit
4c2a0 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 46 6c 61 67 yFlags[$name]).&&.$stabilityFlag
4c2c0 73 5b 24 6e 61 6d 65 5d 20 3e 20 24 73 74 61 62 69 6c 69 74 79 29 20 7c 7c 20 28 24 6d 69 6e 69 s[$name].>.$stability).||.($mini
4c2e0 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3e 20 24 73 74 61 62 69 6c 69 74 79 29 29 20 7b 0a 63 6f mumStability.>.$stability)).{.co
4c300 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 61 6d 65 5d ntinue;.}.$stabilityFlags[$name]
4c320 20 3d 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 74 61 62 .=.$stability;.}.}..return.$stab
4c340 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 ilityFlags;.}..private.function.
4c360 65 78 74 72 61 63 74 52 65 66 65 72 65 6e 63 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 extractReferences(array.$require
4c380 73 2c 20 61 72 72 61 79 20 24 72 65 66 65 72 65 6e 63 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 s,.array.$references).{.foreach.
4c3a0 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 4e 61 6d 65 20 3d 3e 20 24 72 65 71 56 65 ($requires.as.$reqName.=>.$reqVe
4c3c0 72 73 69 6f 6e 29 20 7b 0a 24 72 65 71 56 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c rsion).{.$reqVersion.=.preg_repl
4c3e0 61 63 65 28 27 7b 5e 28 5b 5e 2c 5c 73 40 5d 2b 29 20 61 73 20 2e 2b 24 7d 27 2c 20 27 24 31 27 ace('{^([^,\s@]+).as..+$}',.'$1'
4c400 2c 20 24 72 65 71 56 65 72 73 69 6f 6e 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 ,.$reqVersion);.if.(preg_match('
4c420 7b 5e 5b 5e 2c 5c 73 40 5d 2b 3f 23 28 5b 61 2d 66 30 2d 39 5d 2b 29 24 7d 27 2c 20 24 72 65 71 {^[^,\s@]+?#([a-f0-9]+)$}',.$req
4c440 56 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 20 26 26 20 27 64 65 76 27 20 3d 3d 3d 20 28 24 Version,.$match).&&.'dev'.===.($
4c460 73 74 61 62 69 6c 69 74 79 4e 61 6d 65 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 stabilityName.=.VersionParser::p
4c480 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 72 65 71 56 65 72 73 69 6f 6e 29 29 29 20 7b 0a 24 arseStability($reqVersion))).{.$
4c4a0 6e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 4e 61 6d 65 29 3b 0a 24 72 65 name.=.strtolower($reqName);.$re
4c4c0 66 65 72 65 6e 63 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d ferences[$name].=.$match[1];.}.}
4c4e0 0a 0a 72 65 74 75 72 6e 20 24 72 65 66 65 72 65 6e 63 65 73 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 ..return.$references;.}..private
4c500 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 73 73 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 63 6f .function.guessVersion(array.$co
4c520 6e 66 69 67 29 0a 7b 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f nfig).{.if.(function_exists('pro
4c540 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 c_open')).{.$version.=.$this->gu
4c560 65 73 73 47 69 74 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 69 66 20 28 6e 75 6c 6c essGitVersion($config);.if.(null
4c580 20 21 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e .!==.$version).{.return.$version
4c5a0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 75 65 73 73 48 67 56 65 72 73 69 6f ;.}..return.$this->guessHgVersio
4c5c0 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f n($config);.}.}..private.functio
4c5e0 6e 20 67 75 65 73 73 47 69 74 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 n.guessGitVersion(array.$config)
4c600 0a 7b 0a 24 75 74 69 6c 20 3d 20 6e 65 77 20 47 69 74 55 74 69 6c 3b 0a 24 75 74 69 6c 2d 3e 63 .{.$util.=.new.GitUtil;.$util->c
4c620 6c 65 61 6e 45 6e 76 28 29 3b 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 leanEnv();....if.(0.===.$this->p
4c640 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 64 65 73 63 72 69 62 65 20 2d 2d rocess->execute('git.describe.--
4c660 65 78 61 63 74 2d 6d 61 74 63 68 20 2d 2d 74 61 67 73 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b exact-match.--tags',.$output)).{
4c680 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
4c6a0 65 72 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 28 74 72 69 6d 28 24 6f 75 74 70 75 74 29 29 3b 0a 7d 20 er->normalize(trim($output));.}.
4c6c0 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 7d 0a 7d 0a 0a 0a 20 69 catch.(\Exception.$e).{.}.}....i
4c6e0 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
4c700 28 27 67 69 74 20 62 72 61 6e 63 68 20 2d 2d 6e 6f 2d 63 6f 6c 6f 72 20 2d 2d 6e 6f 2d 61 62 62 ('git.branch.--no-color.--no-abb
4c720 72 65 76 20 2d 76 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 62 72 61 6e 63 68 65 73 20 3d rev.-v',.$output)).{.$branches.=
4c740 20 61 72 72 61 79 28 29 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 66 61 6c .array();.$isFeatureBranch.=.fal
4c760 73 65 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 se;.$version.=.null;....foreach.
4c780 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 75 74 ($this->process->splitLines($out
4c7a0 70 75 74 29 20 61 73 20 24 62 72 61 6e 63 68 29 20 7b 0a 69 66 20 28 24 62 72 61 6e 63 68 20 26 put).as.$branch).{.if.($branch.&
4c7c0 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5c 2a 20 29 20 2a 28 5c 28 6e 6f 20 62 &.preg_match('{^(?:\*.).*(\(no.b
4c7e0 72 61 6e 63 68 5c 29 7c 5c 28 64 65 74 61 63 68 65 64 20 66 72 6f 6d 20 5b 61 2d 66 30 2d 39 5d ranch\)|\(detached.from.[a-f0-9]
4c800 2b 5c 29 7c 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 20 2e 2a 24 7d 27 2c 20 24 62 72 +\)|\S+).*([a-f0-9]+)..*$}',.$br
4c820 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 5b 31 5d 20 3d anch,.$match)).{.if.($match[1].=
4c840 3d 3d 20 27 28 6e 6f 20 62 72 61 6e 63 68 29 27 20 7c 7c 20 73 75 62 73 74 72 28 24 6d 61 74 63 ==.'(no.branch)'.||.substr($matc
4c860 68 5b 31 5d 2c 20 30 2c 20 31 30 29 20 3d 3d 3d 20 27 28 64 65 74 61 63 68 65 64 20 27 29 20 7b h[1],.0,.10).===.'(detached.').{
4c880 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b 32 5d 3b 0a 24 69 .$version.=.'dev-'.$match[2];.$i
4c8a0 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a sFeatureBranch.=.true;.}.else.{.
4c8c0 24 76 65 72 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 $version.=.$this->versionParser-
4c8e0 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 24 69 73 >normalizeBranch($match[1]);.$is
4c900 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 65 FeatureBranch.=.0.===.strpos($ve
4c920 72 73 69 6f 6e 2c 20 27 64 65 76 2d 27 29 3b 0a 69 66 20 28 27 39 39 39 39 39 39 39 2d 64 65 76 rsion,.'dev-');.if.('9999999-dev
4c940 27 20 3d 3d 3d 20 24 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 '.===.$version).{.$version.=.'de
4c960 76 2d 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 62 72 61 6e 63 v-'.$match[1];.}.}.}..if.($branc
4c980 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 20 2a 5b 5e 2f 5d 2b 2f 48 45 41 44 h.&&.!preg_match('{^.*[^/]+/HEAD
4c9a0 20 7d 27 2c 20 24 62 72 61 6e 63 68 29 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 .}',.$branch)).{.if.(preg_match(
4c9c0 27 7b 5e 28 3f 3a 5c 2a 20 29 3f 20 2a 28 5c 53 2b 29 20 2a 28 5b 61 2d 66 30 2d 39 5d 2b 29 20 '{^(?:\*.)?.*(\S+).*([a-f0-9]+).
4c9e0 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
4ca00 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 69 66 20 28 21 ches[].=.$match[1];.}.}.}..if.(!
4ca20 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 24 76 65 72 73 $isFeatureBranch).{.return.$vers
4ca40 69 6f 6e 3b 0a 7d 0a 0a 0a 20 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 ion;.}....$version.=.$this->gues
4ca60 73 46 65 61 74 75 72 65 56 65 72 73 69 6f 6e 28 24 63 6f 6e 66 69 67 2c 20 24 76 65 72 73 69 6f sFeatureVersion($config,.$versio
4ca80 6e 2c 20 24 62 72 61 6e 63 68 65 73 2c 20 27 67 69 74 20 72 65 76 2d 6c 69 73 74 20 25 63 61 6e n,.$branches,.'git.rev-list.%can
4caa0 64 69 64 61 74 65 25 2e 2e 25 62 72 61 6e 63 68 25 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 65 didate%..%branch%');..return.$ve
4cac0 72 73 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 75 65 rsion;.}.}..private.function.gue
4cae0 73 73 48 67 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 0a 20 69 ssHgVersion(array.$config).{...i
4cb00 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
4cb20 28 27 68 67 20 62 72 61 6e 63 68 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 62 72 61 6e 63 ('hg.branch',.$output)).{.$branc
4cb40 68 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 74 h.=.trim($output);.$version.=.$t
4cb60 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 7a 65 42 72 61 his->versionParser->normalizeBra
4cb80 6e 63 68 28 24 62 72 61 6e 63 68 29 3b 0a 24 69 73 46 65 61 74 75 72 65 42 72 61 6e 63 68 20 3d nch($branch);.$isFeatureBranch.=
4cba0 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 64 65 76 2d 27 29 3b .0.===.strpos($version,.'dev-');
4cbc0 0a 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 65 72 73 69 6f 6e ..if.('9999999-dev'.===.$version
4cbe0 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 62 72 61 6e 63 68 3b 0a 7d ).{.$version.=.'dev-'.$branch;.}
4cc00 0a 0a 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 ..if.(!$isFeatureBranch).{.retur
4cc20 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 n.$version;.}....$config.=.array
4cc40 28 27 75 72 6c 27 20 3d 3e 20 67 65 74 63 77 64 28 29 29 3b 0a 24 64 72 69 76 65 72 20 3d 20 6e ('url'.=>.getcwd());.$driver.=.n
4cc60 65 77 20 48 67 44 72 69 76 65 72 28 24 63 6f 6e 66 69 67 2c 20 6e 65 77 20 4e 75 6c 6c 49 4f 28 ew.HgDriver($config,.new.NullIO(
4cc80 29 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 ),.$this->config,.$this->process
4cca0 29 3b 0a 24 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 64 72 69 76 65 );.$branches.=.array_keys($drive
4ccc0 72 2d 3e 67 65 74 42 72 61 6e 63 68 65 73 28 29 29 3b 0a 0a 0a 20 24 76 65 72 73 69 6f 6e 20 3d r->getBranches());....$version.=
4cce0 20 24 74 68 69 73 2d 3e 67 75 65 73 73 46 65 61 74 75 72 65 56 65 72 73 69 6f 6e 28 24 63 6f 6e .$this->guessFeatureVersion($con
4cd00 66 69 67 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 62 72 61 6e 63 68 65 73 2c 20 27 68 67 20 6c 6f fig,.$version,.$branches,.'hg.lo
4cd20 67 20 2d 72 20 22 6e 6f 74 20 61 6e 63 65 73 74 6f 72 73 28 5c 27 25 63 61 6e 64 69 64 61 74 65 g.-r."not.ancestors(\'%candidate
4cd40 25 5c 27 29 20 61 6e 64 20 61 6e 63 65 73 74 6f 72 73 28 5c 27 25 62 72 61 6e 63 68 25 5c 27 29 %\').and.ancestors(\'%branch%\')
4cd60 22 20 2d 2d 74 65 6d 70 6c 61 74 65 20 22 7b 6e 6f 64 65 7d 5c 5c 6e 22 27 29 3b 0a 0a 72 65 74 ".--template."{node}\\n"');..ret
4cd80 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 urn.$version;.}.}..private.funct
4cda0 69 6f 6e 20 67 75 65 73 73 46 65 61 74 75 72 65 56 65 72 73 69 6f 6e 28 61 72 72 61 79 20 24 63 ion.guessFeatureVersion(array.$c
4cdc0 6f 6e 66 69 67 2c 20 24 76 65 72 73 69 6f 6e 2c 20 61 72 72 61 79 20 24 62 72 61 6e 63 68 65 73 onfig,.$version,.array.$branches
4cde0 2c 20 24 73 63 6d 43 6d 64 6c 69 6e 65 29 0a 7b 0a 0a 20 0a 20 69 66 20 28 28 69 73 73 65 74 28 ,.$scmCmdline).{.....if.((isset(
4ce00 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 27 5d $config['extra']['branch-alias']
4ce20 29 20 26 26 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 ).&&.!isset($config['extra']['br
4ce40 61 6e 63 68 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 anch-alias'][$version])).||.strp
4ce60 6f 73 28 6a 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 os(json_encode($config),.'"self.
4ce80 76 65 72 73 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 version"').).{.$branch.=.preg_re
4cea0 70 6c 61 63 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 place('{^dev-}',.'',.$version);.
4cec0 24 6c 65 6e 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 $length.=.PHP_INT_MAX;.foreach.(
4cee0 24 62 72 61 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 $branches.as.$candidate).{...if.
4cf00 28 24 63 61 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 ($candidate.===.$branch.||.!preg
4cf20 5f 6d 61 74 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 _match('{^(master|trunk|default|
4cf40 64 65 76 65 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 2c develop|\d+\..+)$}',.$candidate,
4cf60 20 24 6d 61 74 63 68 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6d 64 4c 69 6e .$match)).{.continue;.}..$cmdLin
4cf80 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 25 63 61 6e 64 69 64 61 74 e.=.str_replace(array('%candidat
4cfa0 65 25 27 2c 20 27 25 62 72 61 6e 63 68 25 27 29 2c 20 61 72 72 61 79 28 24 63 61 6e 64 69 64 61 e%',.'%branch%'),.array($candida
4cfc0 74 65 2c 20 24 62 72 61 6e 63 68 29 2c 20 24 73 63 6d 43 6d 64 6c 69 6e 65 29 3b 0a 69 66 20 28 te,.$branch),.$scmCmdline);.if.(
4cfe0 30 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 0.!==.$this->process->execute($c
4d000 6d 64 4c 69 6e 65 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a mdLine,.$output)).{.continue;.}.
4d020 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6f 75 74 70 75 74 29 20 3c 20 24 6c 65 6e 67 74 68 29 20 .if.(strlen($output).<.$length).
4d040 7b 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 6f 75 74 70 75 74 29 3b 0a 24 76 65 {.$length.=.strlen($output);.$ve
4d060 72 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 rsion.=.$this->versionParser->no
4d080 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 69 66 20 28 27 rmalizeBranch($candidate);.if.('
4d0a0 39 39 39 39 39 39 39 2d 64 65 76 27 20 3d 3d 3d 20 24 76 65 72 73 69 6f 6e 29 20 7b 0a 24 76 65 9999999-dev'.===.$version).{.$ve
4d0c0 72 73 69 6f 6e 20 3d 20 27 64 65 76 2d 27 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a rsion.=.'dev-'.$match[1];.}.}.}.
4d0e0 7d 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a }..return.$version;.}.}.<?php...
4d100 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
4d120 61 67 65 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 6c 65 age;..use.Composer\Json\JsonFile
4d140 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
4d160 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 52 65 70 6f 73 ationManager;.use.Composer\Repos
4d180 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 73 65 20 43 6f 6d itory\RepositoryManager;.use.Com
4d1a0 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 73 65 20 poser\Util\ProcessExecutor;.use.
4d1c0 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 Composer\Package\AliasPackage;.u
4d1e0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 41 72 72 61 79 52 65 70 6f se.Composer\Repository\ArrayRepo
4d200 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 44 75 6d sitory;.use.Composer\Package\Dum
4d220 70 65 72 5c 41 72 72 61 79 44 75 6d 70 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 per\ArrayDumper;.use.Composer\Pa
4d240 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f ckage\Loader\ArrayLoader;.use.Co
4d260 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 61 mposer\Package\Version\VersionPa
4d280 72 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 47 69 74 20 61 73 20 47 rser;.use.Composer\Util\Git.as.G
4d2a0 69 74 55 74 69 6c 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 itUtil;.use.Composer\IO\IOInterf
4d2c0 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 6f 63 6b 65 72 0a 7b 0a 70 72 69 76 61 ace;........class.Locker.{.priva
4d2e0 74 65 20 24 6c 6f 63 6b 46 69 6c 65 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 te.$lockFile;.private.$repositor
4d300 79 4d 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d yManager;.private.$installationM
4d320 61 6e 61 67 65 72 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 68 3b 0a 70 72 69 76 61 74 65 20 24 anager;.private.$hash;.private.$
4d340 6c 6f 61 64 65 72 3b 0a 70 72 69 76 61 74 65 20 24 64 75 6d 70 65 72 3b 0a 70 72 69 76 61 74 65 loader;.private.$dumper;.private
4d360 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 44 61 74 61 43 61 63 68 .$process;.private.$lockDataCach
4d380 65 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 20 5f 5f 63 e;...........public.function.__c
4d3a0 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 4a 73 6f 6e 46 69 onstruct(IOInterface.$io,.JsonFi
4d3c0 6c 65 20 24 6c 6f 63 6b 46 69 6c 65 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 le.$lockFile,.RepositoryManager.
4d3e0 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2c 20 49 6e 73 74 61 6c 6c 61 74 69 6f 6e $repositoryManager,.Installation
4d400 4d 61 6e 61 67 65 72 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 24 68 Manager.$installationManager,.$h
4d420 61 73 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 20 3d 20 24 6c 6f 63 6b 46 69 ash).{.$this->lockFile.=.$lockFi
4d440 6c 65 3b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 le;.$this->repositoryManager.=.$
4d460 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c repositoryManager;.$this->instal
4d480 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e lationManager.=.$installationMan
4d4a0 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 68 61 73 68 20 3d 20 24 68 61 73 68 3b 0a 24 74 68 69 73 ager;.$this->hash.=.$hash;.$this
4d4c0 2d 3e 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 28 29 3b 0a 24 74 ->loader.=.new.ArrayLoader();.$t
4d4e0 68 69 73 2d 3e 64 75 6d 70 65 72 20 3d 20 6e 65 77 20 41 72 72 61 79 44 75 6d 70 65 72 28 29 3b his->dumper.=.new.ArrayDumper();
4d500 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 .$this->process.=.new.ProcessExe
4d520 63 75 74 6f 72 28 24 69 6f 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 cutor($io);.}.......public.funct
4d540 69 6f 6e 20 69 73 4c 6f 63 6b 65 64 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 63 ion.isLocked().{.if.(!$this->loc
4d560 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b kFile->exists()).{.return.false;
4d580 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 .}..$data.=.$this->getLockData()
4d5a0 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 64 61 74 61 5b 27 70 61 63 6b 61 67 65 73 27 ;..return.isset($data['packages'
4d5c0 5d 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 69 73 46 72 ]);.}.......public.function.isFr
4d5e0 65 73 68 28 29 0a 7b 0a 24 6c 6f 63 6b 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d esh().{.$lock.=.$this->lockFile-
4d600 3e 72 65 61 64 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 68 20 3d 3d 3d >read();..return.$this->hash.===
4d620 20 24 6c 6f 63 6b 5b 27 68 61 73 68 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 .$lock['hash'];.}.........public
4d640 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 24 77 .function.getLockedRepository($w
4d660 69 74 68 44 65 76 52 65 71 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 ithDevReqs.=.false).{.$lockData.
4d680 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 24 70 61 63 6b 61 67 65 =.$this->getLockData();.$package
4d6a0 73 20 3d 20 6e 65 77 20 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 0a 24 6c 6f 63 s.=.new.ArrayRepository();..$loc
4d6c0 6b 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 kedPackages.=.$lockData['package
4d6e0 73 27 5d 3b 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 69 66 20 28 69 73 73 s'];.if.($withDevReqs).{.if.(iss
4d700 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 5d 29 29 20 7b et($lockData['packages-dev'])).{
4d720 0a 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 .$lockedPackages.=.array_merge($
4d740 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 2c 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 61 63 6b 61 lockedPackages,.$lockData['packa
4d760 67 65 73 2d 64 65 76 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c ges-dev']);.}.else.{.throw.new.\
4d780 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 6c 6f 63 6b 20 66 69 6c 65 20 RuntimeException('The.lock.file.
4d7a0 64 6f 65 73 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 72 65 71 75 69 72 65 2d 64 65 76 20 69 6e 66 does.not.contain.require-dev.inf
4d7c0 6f 72 6d 61 74 69 6f 6e 2c 20 72 75 6e 20 69 6e 73 74 61 6c 6c 20 77 69 74 68 20 74 68 65 20 2d ormation,.run.install.with.the.-
4d7e0 2d 6e 6f 2d 64 65 76 20 6f 70 74 69 6f 6e 20 6f 72 20 72 75 6e 20 75 70 64 61 74 65 20 74 6f 20 -no-dev.option.or.run.update.to.
4d800 69 6e 73 74 61 6c 6c 20 74 68 6f 73 65 20 70 61 63 6b 61 67 65 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a install.those.packages.');.}.}..
4d820 69 66 20 28 65 6d 70 74 79 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 73 29 29 20 7b 0a 72 65 if.(empty($lockedPackages)).{.re
4d840 74 75 72 6e 20 24 70 61 63 6b 61 67 65 73 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6c 6f turn.$packages;.}..if.(isset($lo
4d860 63 6b 65 64 50 61 63 6b 61 67 65 73 5b 30 5d 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 66 6f 72 65 ckedPackages[0]['name'])).{.fore
4d880 61 63 68 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 ach.($lockedPackages.as.$info).{
4d8a0 0a 24 70 61 63 6b 61 67 65 73 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 74 68 69 73 2d 3e 6c 6f .$packages->addPackage($this->lo
4d8c0 61 64 65 72 2d 3e 6c 6f 61 64 28 24 69 6e 66 6f 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 ader->load($info));.}..return.$p
4d8e0 61 63 6b 61 67 65 73 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 ackages;.}..throw.new.\RuntimeEx
4d900 63 65 70 74 69 6f 6e 28 27 59 6f 75 72 20 63 6f 6d 70 6f 73 65 72 2e 6c 6f 63 6b 20 77 61 73 20 ception('Your.composer.lock.was.
4d920 63 72 65 61 74 65 64 20 62 65 66 6f 72 65 20 32 30 31 32 2d 30 39 2d 31 35 2c 20 61 6e 64 20 69 created.before.2012-09-15,.and.i
4d940 73 20 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 20 61 6e 79 6d 6f 72 65 2e 20 52 75 6e 20 22 63 6f s.not.supported.anymore..Run."co
4d960 6d 70 6f 73 65 72 20 75 70 64 61 74 65 22 20 74 6f 20 67 65 6e 65 72 61 74 65 20 61 20 6e 65 77 mposer.update".to.generate.a.new
4d980 20 6f 6e 65 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .one.');.}........public.functio
4d9a0 6e 20 67 65 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 77 69 74 68 44 n.getPlatformRequirements($withD
4d9c0 65 76 52 65 71 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 evReqs.=.false).{.$lockData.=.$t
4d9e0 68 69 73 2d 3e 67 65 74 4c 6f 63 6b 44 61 74 61 28 29 3b 0a 24 76 65 72 73 69 6f 6e 50 61 72 73 his->getLockData();.$versionPars
4da00 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 24 72 65 71 75 69 er.=.new.VersionParser();.$requi
4da20 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 rements.=.array();..if.(!empty($
4da40 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 29 29 20 7b 0a 24 72 65 71 75 69 72 lockData['platform'])).{.$requir
4da60 65 6d 65 6e 74 73 20 3d 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 ements.=.$versionParser->parseLi
4da80 6e 6b 73 28 0a 27 5f 5f 52 4f 4f 54 5f 5f 27 2c 0a 27 31 2e 30 2e 30 27 2c 0a 27 72 65 71 75 69 nks(.'__ROOT__',.'1.0.0',.'requi
4daa0 72 65 73 27 2c 0a 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 27 res',.isset($lockData['platform'
4dac0 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 20 3a 20 61 72 72 ]).?.$lockData['platform'].:.arr
4dae0 61 79 28 29 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 73 20 26 26 20 21 ay().);.}..if.($withDevReqs.&&.!
4db00 65 6d 70 74 79 28 24 6c 6f 63 6b 44 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 29 empty($lockData['platform-dev'])
4db20 29 20 7b 0a 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 24 76 65 72 73 69 6f 6e 50 ).{.$devRequirements.=.$versionP
4db40 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 0a 27 5f 5f 52 4f 4f 54 5f 5f 27 2c 0a 27 arser->parseLinks(.'__ROOT__',.'
4db60 31 2e 30 2e 30 27 2c 0a 27 72 65 71 75 69 72 65 73 27 2c 0a 69 73 73 65 74 28 24 6c 6f 63 6b 44 1.0.0',.'requires',.isset($lockD
4db80 61 74 61 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 ata['platform-dev']).?.$lockData
4dba0 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 20 3a 20 61 72 72 61 79 28 29 0a 29 3b 0a 0a 24 ['platform-dev'].:.array().);..$
4dbc0 72 65 71 75 69 72 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 71 75 requirements.=.array_merge($requ
4dbe0 69 72 65 6d 65 6e 74 73 2c 20 24 64 65 76 52 65 71 75 69 72 65 6d 65 6e 74 73 29 3b 0a 7d 0a 0a irements,.$devRequirements);.}..
4dc00 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 6d 65 6e 74 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 return.$requirements;.}..public.
4dc20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 0a 7b function.getMinimumStability().{
4dc40 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(
4dc60 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 6d 69 6e 69 );..return.isset($lockData['mini
4dc80 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 6d 69 mum-stability']).?.$lockData['mi
4dca0 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 27 5d 20 3a 20 27 73 74 61 62 6c 65 27 3b 0a 7d 0a nimum-stability'].:.'stable';.}.
4dcc0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 .public.function.getStabilityFla
4dce0 67 73 28 29 0a 7b 0a 24 6c 6f 63 6b 44 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4c 6f 63 gs().{.$lockData.=.$this->getLoc
4dd00 6b 44 61 74 61 28 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 6c 6f 63 6b 44 61 74 61 kData();..return.isset($lockData
4dd20 5b 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 ['stability-flags']).?.$lockData
4dd40 5b 27 73 74 61 62 69 6c 69 74 79 2d 66 6c 61 67 73 27 5d 20 3a 20 61 72 72 61 79 28 29 3b 0a 7d ['stability-flags'].:.array();.}
4dd60 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 65 73 28 29 0a 7b ..public.function.getAliases().{
4dd80 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(
4dda0 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 61 6c 69 61 );..return.isset($lockData['alia
4ddc0 73 65 73 27 5d 29 20 3f 20 24 6c 6f 63 6b 44 61 74 61 5b 27 61 6c 69 61 73 65 73 27 5d 20 3a 20 ses']).?.$lockData['aliases'].:.
4dde0 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c array();.}..public.function.getL
4de00 6f 63 6b 44 61 74 61 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e ockData().{.if.(null.!==.$this->
4de20 6c 6f 63 6b 44 61 74 61 43 61 63 68 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c lockDataCache).{.return.$this->l
4de40 6f 63 6b 44 61 74 61 43 61 63 68 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 63 ockDataCache;.}..if.(!$this->loc
4de60 6b 46 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f kFile->exists()).{.throw.new.\Lo
4de80 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 6c 6f 63 6b 66 69 6c 65 20 66 6f 75 6e 64 2e gicException('No.lockfile.found.
4dea0 20 55 6e 61 62 6c 65 20 74 6f 20 72 65 61 64 20 6c 6f 63 6b 65 64 20 70 61 63 6b 61 67 65 73 27 .Unable.to.read.locked.packages'
4dec0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 );.}..return.$this->lockDataCach
4dee0 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d 0a 0a e.=.$this->lockFile->read();.}..
4df00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 .............public.function.set
4df20 4c 6f 63 6b 44 61 74 61 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 2c 20 24 64 65 76 50 61 LockData(array.$packages,.$devPa
4df40 63 6b 61 67 65 73 2c 20 61 72 72 61 79 20 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 2c 20 24 70 6c ckages,.array.$platformReqs,.$pl
4df60 61 74 66 6f 72 6d 44 65 76 52 65 71 73 2c 20 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 2c 20 24 atformDevReqs,.array.$aliases,.$
4df80 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2c 20 61 72 72 61 79 20 24 73 74 61 62 69 6c 69 minimumStability,.array.$stabili
4dfa0 74 79 46 6c 61 67 73 29 0a 7b 0a 24 6c 6f 63 6b 20 3d 20 61 72 72 61 79 28 0a 27 5f 72 65 61 64 tyFlags).{.$lock.=.array(.'_read
4dfc0 6d 65 27 20 3d 3e 20 61 72 72 61 79 28 27 54 68 69 73 20 66 69 6c 65 20 6c 6f 63 6b 73 20 74 68 me'.=>.array('This.file.locks.th
4dfe0 65 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 6a 65 63 74 20 74 e.dependencies.of.your.project.t
4e000 6f 20 61 20 6b 6e 6f 77 6e 20 73 74 61 74 65 27 2c 20 27 52 65 61 64 20 6d 6f 72 65 20 61 62 6f o.a.known.state',.'Read.more.abo
4e020 75 74 20 69 74 20 61 74 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f ut.it.at.http://getcomposer.org/
4e040 64 6f 63 2f 30 31 2d 62 61 73 69 63 2d 75 73 61 67 65 2e 6d 64 23 63 6f 6d 70 6f 73 65 72 2d 6c doc/01-basic-usage.md#composer-l
4e060 6f 63 6b 2d 74 68 65 2d 6c 6f 63 6b 2d 66 69 6c 65 27 29 2c 0a 27 68 61 73 68 27 20 3d 3e 20 24 ock-the-lock-file'),.'hash'.=>.$
4e080 74 68 69 73 2d 3e 68 61 73 68 2c 0a 27 70 61 63 6b 61 67 65 73 27 20 3d 3e 20 6e 75 6c 6c 2c 0a this->hash,.'packages'.=>.null,.
4e0a0 27 70 61 63 6b 61 67 65 73 2d 64 65 76 27 20 3d 3e 20 6e 75 6c 6c 2c 0a 27 61 6c 69 61 73 65 73 'packages-dev'.=>.null,.'aliases
4e0c0 27 20 3d 3e 20 61 72 72 61 79 28 29 2c 0a 27 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 '.=>.array(),.'minimum-stability
4e0e0 27 20 3d 3e 20 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 2c 0a 27 73 74 61 62 69 6c 69 '.=>.$minimumStability,.'stabili
4e100 74 79 2d 66 6c 61 67 73 27 20 3d 3e 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 0a 29 3b ty-flags'.=>.$stabilityFlags,.);
4e120 0a 0a 66 6f 72 65 61 63 68 20 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 ..foreach.($aliases.as.$package.
4e140 3d 3e 20 24 76 65 72 73 69 6f 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f =>.$versions).{.foreach.($versio
4e160 6e 73 20 61 73 20 24 76 65 72 73 69 6f 6e 20 3d 3e 20 24 61 6c 69 61 73 29 20 7b 0a 24 6c 6f 63 ns.as.$version.=>.$alias).{.$loc
4e180 6b 5b 27 61 6c 69 61 73 65 73 27 5d 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 6c 69 61 73 27 20 k['aliases'][].=.array(.'alias'.
4e1a0 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 =>.$alias['alias'],.'alias_norma
4e1c0 6c 69 7a 65 64 27 20 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a lized'.=>.$alias['alias_normaliz
4e1e0 65 64 27 5d 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 72 73 69 6f 6e 2c 0a 27 70 61 ed'],.'version'.=>.$version,.'pa
4e200 63 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 24 6c 6f 63 ckage'.=>.$package,.);.}.}..$loc
4e220 6b 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 k['packages'].=.$this->lockPacka
4e240 67 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 ges($packages);.if.(null.!==.$de
4e260 76 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 vPackages).{.$lock['packages-dev
4e280 27 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 50 61 63 6b 61 67 65 73 28 24 64 65 76 50 61 63 '].=.$this->lockPackages($devPac
4e2a0 6b 61 67 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 61 63 6b kages);.}..if.(empty($lock['pack
4e2c0 61 67 65 73 27 5d 29 20 26 26 20 65 6d 70 74 79 28 24 6c 6f 63 6b 5b 27 70 61 63 6b 61 67 65 73 ages']).&&.empty($lock['packages
4e2e0 2d 64 65 76 27 5d 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e -dev'])).{.if.($this->lockFile->
4e300 65 78 69 73 74 73 28 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 exists()).{.unlink($this->lockFi
4e320 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b le->getPath());.}..return.false;
4e340 0a 7d 0a 0a 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 6d 27 5d 20 3d 20 24 70 6c 61 74 66 6f 72 .}..$lock['platform'].=.$platfor
4e360 6d 52 65 71 73 3b 0a 24 6c 6f 63 6b 5b 27 70 6c 61 74 66 6f 72 6d 2d 64 65 76 27 5d 20 3d 20 24 mReqs;.$lock['platform-dev'].=.$
4e380 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 73 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 platformDevReqs;..if.(!$this->is
4e3a0 4c 6f 63 6b 65 64 28 29 20 7c 7c 20 24 6c 6f 63 6b 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 Locked().||.$lock.!==.$this->get
4e3c0 4c 6f 63 6b 44 61 74 61 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 46 69 6c 65 2d 3e 77 LockData()).{.$this->lockFile->w
4e3e0 72 69 74 65 28 24 6c 6f 63 6b 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 44 61 74 61 43 61 63 68 rite($lock);.$this->lockDataCach
4e400 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 e.=.null;..return.true;.}..retur
4e420 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 63 n.false;.}..private.function.loc
4e440 6b 50 61 63 6b 61 67 65 73 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 6c 6f kPackages(array.$packages).{.$lo
4e460 63 6b 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 cked.=.array();..foreach.($packa
4e480 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 ges.as.$package).{.if.($package.
4e4a0 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 63 6f 6e 74 69 instanceof.AliasPackage).{.conti
4e4c0 6e 75 65 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 nue;.}..$name.=.$package->getPre
4e4e0 74 74 79 4e 61 6d 65 28 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e ttyName();.$version.=.$package->
4e500 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 21 24 6e 61 6d 65 20 getPrettyVersion();..if.(!$name.
4e520 7c 7c 20 21 24 76 65 72 73 69 6f 6e 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 ||.!$version).{.throw.new.\Logic
4e540 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 50 61 63 6b 61 67 65 20 22 25 73 22 Exception(sprintf(.'Package."%s"
4e560 20 68 61 73 20 6e 6f 20 76 65 72 73 69 6f 6e 20 6f 72 20 6e 61 6d 65 20 61 6e 64 20 63 61 6e 20 .has.no.version.or.name.and.can.
4e580 6e 6f 74 20 62 65 20 6c 6f 63 6b 65 64 27 2c 20 24 70 61 63 6b 61 67 65 0a 29 29 3b 0a 7d 0a 0a not.be.locked',.$package.));.}..
4e5a0 24 73 70 65 63 20 3d 20 24 74 68 69 73 2d 3e 64 75 6d 70 65 72 2d 3e 64 75 6d 70 28 24 70 61 63 $spec.=.$this->dumper->dump($pac
4e5c0 6b 61 67 65 29 3b 0a 75 6e 73 65 74 28 24 73 70 65 63 5b 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d kage);.unset($spec['version_norm
4e5e0 61 6c 69 7a 65 64 27 5d 29 3b 0a 0a 0a 20 24 74 69 6d 65 20 3d 20 69 73 73 65 74 28 24 73 70 65 alized']);....$time.=.isset($spe
4e600 63 5b 27 74 69 6d 65 27 5d 29 20 3f 20 24 73 70 65 63 5b 27 74 69 6d 65 27 5d 20 3a 20 6e 75 6c c['time']).?.$spec['time'].:.nul
4e620 6c 3b 0a 75 6e 73 65 74 28 24 73 70 65 63 5b 27 74 69 6d 65 27 5d 29 3b 0a 69 66 20 28 24 70 61 l;.unset($spec['time']);.if.($pa
4e640 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 ckage->isDev().&&.$package->getI
4e660 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 29 20 3d 3d 3d 20 27 73 6f 75 72 63 65 27 nstallationSource().===.'source'
4e680 29 20 7b 0a 0a 20 24 74 69 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 54 ).{...$time.=.$this->getPackageT
4e6a0 69 6d 65 28 24 70 61 63 6b 61 67 65 29 20 3f 3a 20 24 74 69 6d 65 3b 0a 7d 0a 69 66 20 28 6e 75 ime($package).?:.$time;.}.if.(nu
4e6c0 6c 6c 20 21 3d 3d 20 24 74 69 6d 65 29 20 7b 0a 24 73 70 65 63 5b 27 74 69 6d 65 27 5d 20 3d 20 ll.!==.$time).{.$spec['time'].=.
4e6e0 24 74 69 6d 65 3b 0a 7d 0a 0a 75 6e 73 65 74 28 24 73 70 65 63 5b 27 69 6e 73 74 61 6c 6c 61 74 $time;.}..unset($spec['installat
4e700 69 6f 6e 2d 73 6f 75 72 63 65 27 5d 29 3b 0a 0a 24 6c 6f 63 6b 65 64 5b 5d 20 3d 20 24 73 70 65 ion-source']);..$locked[].=.$spe
4e720 63 3b 0a 7d 0a 0a 75 73 6f 72 74 28 24 6c 6f 63 6b 65 64 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 c;.}..usort($locked,.function.($
4e740 61 2c 20 24 62 29 20 7b 0a 24 63 6f 6d 70 61 72 69 73 6f 6e 20 3d 20 73 74 72 63 6d 70 28 24 61 a,.$b).{.$comparison.=.strcmp($a
4e760 5b 27 6e 61 6d 65 27 5d 2c 20 24 62 5b 27 6e 61 6d 65 27 5d 29 3b 0a 0a 69 66 20 28 30 20 21 3d ['name'],.$b['name']);..if.(0.!=
4e780 3d 20 24 63 6f 6d 70 61 72 69 73 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 61 72 69 =.$comparison).{.return.$compari
4e7a0 73 6f 6e 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 73 74 72 63 6d 70 28 24 61 5b 27 76 65 72 73 son;.}....return.strcmp($a['vers
4e7c0 69 6f 6e 27 5d 2c 20 24 62 5b 27 76 65 72 73 69 6f 6e 27 5d 29 3b 0a 7d 29 3b 0a 0a 72 65 74 75 ion'],.$b['version']);.});..retu
4e7e0 72 6e 20 24 6c 6f 63 6b 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e rn.$locked;.}........private.fun
4e800 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 54 69 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 ction.getPackageTime(PackageInte
4e820 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f rface.$package).{.if.(!function_
4e840 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 exists('proc_open')).{.return.nu
4e860 6c 6c 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 69 ll;.}..$path.=.realpath($this->i
4e880 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 nstallationManager->getInstallPa
4e8a0 74 68 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 24 73 6f 75 72 63 65 54 79 70 65 20 3d 20 24 70 61 th($package));.$sourceType.=.$pa
4e8c0 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 65 74 69 6d ckage->getSourceType();.$datetim
4e8e0 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 24 70 61 74 68 20 26 26 20 69 6e 5f 61 72 72 61 79 e.=.null;..if.($path.&&.in_array
4e900 28 24 73 6f 75 72 63 65 54 79 70 65 2c 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 67 27 29 ($sourceType,.array('git',.'hg')
4e920 29 29 20 7b 0a 24 73 6f 75 72 63 65 52 65 66 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 )).{.$sourceRef.=.$package->getS
4e940 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 3f 3a 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 ourceReference().?:.$package->ge
4e960 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 73 77 69 74 63 68 20 28 24 73 6f 75 72 63 tDistReference();.switch.($sourc
4e980 65 54 79 70 65 29 20 7b 0a 63 61 73 65 20 27 67 69 74 27 3a 0a 24 75 74 69 6c 20 3d 20 6e 65 77 eType).{.case.'git':.$util.=.new
4e9a0 20 47 69 74 55 74 69 6c 3b 0a 24 75 74 69 6c 2d 3e 63 6c 65 61 6e 45 6e 76 28 29 3b 0a 0a 69 66 .GitUtil;.$util->cleanEnv();..if
4e9c0 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 .(0.===.$this->process->execute(
4e9e0 27 67 69 74 20 6c 6f 67 20 2d 6e 31 20 2d 2d 70 72 65 74 74 79 3d 25 63 74 20 27 2e 65 73 63 61 'git.log.-n1.--pretty=%ct.'.esca
4ea00 70 65 73 68 65 6c 6c 61 72 67 28 24 73 6f 75 72 63 65 52 65 66 29 2c 20 24 6f 75 74 70 75 74 2c peshellarg($sourceRef),.$output,
4ea20 20 24 70 61 74 68 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 5c 64 2b 5c .$path).&&.preg_match('{^\s*\d+\
4ea40 73 2a 24 7d 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 64 61 74 65 74 69 6d 65 20 3d 20 6e s*$}',.$output)).{.$datetime.=.n
4ea60 65 77 20 5c 44 61 74 65 54 69 6d 65 28 27 40 27 2e 74 72 69 6d 28 24 6f 75 74 70 75 74 29 2c 20 ew.\DateTime('@'.trim($output),.
4ea80 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 7d 0a 62 72 65 new.\DateTimeZone('UTC'));.}.bre
4eaa0 61 6b 3b 0a 0a 63 61 73 65 20 27 68 67 27 3a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d ak;..case.'hg':.if.(0.===.$this-
4eac0 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 68 67 20 6c 6f 67 20 2d 2d 74 65 6d 70 >process->execute('hg.log.--temp
4eae0 6c 61 74 65 20 22 7b 64 61 74 65 7c 68 67 64 61 74 65 7d 22 20 2d 72 20 27 2e 65 73 63 61 70 65 late."{date|hgdate}".-r.'.escape
4eb00 73 68 65 6c 6c 61 72 67 28 24 73 6f 75 72 63 65 52 65 66 29 2c 20 24 6f 75 74 70 75 74 2c 20 24 shellarg($sourceRef),.$output,.$
4eb20 70 61 74 68 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5c 73 2a 28 5c 64 2b 29 5c path).&&.preg_match('{^\s*(\d+)\
4eb40 73 2a 7d 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 64 61 74 65 74 s*}',.$output,.$match)).{.$datet
4eb60 69 6d 65 20 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 27 40 27 2e 24 6d 61 74 63 68 5b 31 ime.=.new.\DateTime('@'.$match[1
4eb80 5d 2c 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 5a 6f 6e 65 28 27 55 54 43 27 29 29 3b 0a 7d 0a ],.new.\DateTimeZone('UTC'));.}.
4eba0 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 61 74 65 74 69 6d 65 20 3f 20 24 break;.}.}..return.$datetime.?.$
4ebc0 64 61 74 65 74 69 6d 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 3a 73 27 29 20 datetime->format('Y-m-d.H:i:s').
4ebe0 3a 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 61 6d :.null;.}.}.<?php............nam
4ec00 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
4ec20 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 6e 74 65 mposer\Repository\RepositoryInte
4ec40 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 50 61 63 6b 61 67 65 49 6e rface;.......interface.PackageIn
4ec60 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 terface.{......public.function.g
4ec80 65 74 4e 61 6d 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 etName();.......public.function.
4eca0 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 getPrettyName();..........public
4ecc0 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .function.getNames();.......publ
4ece0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 64 28 24 69 64 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 ic.function.setId($id);.......pu
4ed00 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 blic.function.getId();.......pub
4ed20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c lic.function.isDev();.......publ
4ed40 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 ic.function.getType();.......pub
4ed60 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 29 3b 0a 0a 0a 0a lic.function.getTargetDir();....
4ed80 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 3b 0a 0a ...public.function.getExtra();..
4eda0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 .....public.function.setInstalla
4edc0 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 tionSource($type);.......public.
4ede0 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 72 63 65 28 29 function.getInstallationSource()
4ee00 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 6f 75 72 63 ;.......public.function.getSourc
4ee20 65 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 eType();.......public.function.g
4ee40 65 74 53 6f 75 72 63 65 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 etSourceUrl();.......public.func
4ee60 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 3b 0a 0a 0a 0a 0a 0a tion.getSourceReference();......
4ee80 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 3b 0a .public.function.getDistType();.
4eea0 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 55 72 6c ......public.function.getDistUrl
4eec0 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 69 73 ();.......public.function.getDis
4eee0 74 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 66 75 6e 63 74 tReference();.......public.funct
4ef00 69 6f 6e 20 67 65 74 44 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 3b 0a 0a 0a 0a 0a 0a ion.getDistSha1Checksum();......
4ef20 0a 70 75 62 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 .public.function.getVersion();..
4ef40 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 56 65 .....public.function.getPrettyVe
4ef60 72 73 69 6f 6e 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 rsion();.......public.function.g
4ef80 65 74 52 65 6c 65 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 etReleaseDate();.......public.fu
4efa0 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 nction.getStability();........pu
4efc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 0a 0a blic.function.getRequires();....
4efe0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 6c 69 63 74 73 ....public.function.getConflicts
4f000 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 ();........public.function.getPr
4f020 6f 76 69 64 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 ovides();........public.function
4f040 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .getReplaces();........public.fu
4f060 6e 63 74 69 6f 6e 20 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a nction.getDevRequires();........
4f080 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 3b 0a 0a public.function.getSuggests();..
4f0a0 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 41 75 74 ..........public.function.getAut
4f0c0 6f 6c 6f 61 64 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 oload();........public.function.
4f0e0 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 getIncludePaths();.......public.
4f100 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 74 6f 72 function.setRepository(Repositor
4f120 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 0a 0a 70 yInterface.$repository);.......p
4f140 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 29 3b 0a ublic.function.getRepository();.
4f160 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 42 69 6e 61 72 69 65 ......public.function.getBinarie
4f180 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 74 55 6e s();.......public.function.getUn
4f1a0 69 71 75 65 4e 61 6d 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 iqueName();.......public.functio
4f1c0 6e 20 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 n.getNotificationUrl();.......pu
4f1e0 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 0a blic.function.__toString();.....
4f200 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 6e ..public.function.getPrettyStrin
4f220 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 41 72 g();.......public.function.getAr
4f240 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a chiveExcludes();.}.<?php........
4f260 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a ....namespace.Composer\Package;.
4f280 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
4f2a0 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 52 65 70 6f 73 oryInterface;.use.Composer\Repos
4f2c0 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 0a 0a 0a 0a 0a 0a itory\PlatformRepository;.......
4f2e0 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 42 61 73 65 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 abstract.class.BasePackage.imple
4f300 6d 65 6e 74 73 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 ments.PackageInterface.{.public.
4f320 73 74 61 74 69 63 20 24 73 75 70 70 6f 72 74 65 64 4c 69 6e 6b 54 79 70 65 73 20 3d 20 61 72 72 static.$supportedLinkTypes.=.arr
4f340 61 79 28 0a 27 72 65 71 75 69 72 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 ay(.'require'.=>.array('descript
4f360 69 6f 6e 27 20 3d 3e 20 27 72 65 71 75 69 72 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 ion'.=>.'requires',.'method'.=>.
4f380 27 72 65 71 75 69 72 65 73 27 29 2c 0a 27 63 6f 6e 66 6c 69 63 74 27 20 3d 3e 20 61 72 72 61 79 'requires'),.'conflict'.=>.array
4f3a0 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 63 6f 6e 66 6c 69 63 74 73 27 2c 20 27 ('description'.=>.'conflicts',.'
4f3c0 6d 65 74 68 6f 64 27 20 3d 3e 20 27 63 6f 6e 66 6c 69 63 74 73 27 29 2c 0a 27 70 72 6f 76 69 64 method'.=>.'conflicts'),.'provid
4f3e0 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 27 70 72 e'.=>.array('description'.=>.'pr
4f400 6f 76 69 64 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 70 72 6f 76 69 64 65 73 27 29 ovides',.'method'.=>.'provides')
4f420 2c 0a 27 72 65 70 6c 61 63 65 27 20 3d 3e 20 61 72 72 61 79 28 27 64 65 73 63 72 69 70 74 69 6f ,.'replace'.=>.array('descriptio
4f440 6e 27 20 3d 3e 20 27 72 65 70 6c 61 63 65 73 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 72 n'.=>.'replaces',.'method'.=>.'r
4f460 65 70 6c 61 63 65 73 27 29 2c 0a 27 72 65 71 75 69 72 65 2d 64 65 76 27 20 3d 3e 20 61 72 72 61 eplaces'),.'require-dev'.=>.arra
4f480 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 20 28 66 6f y('description'.=>.'requires.(fo
4f4a0 72 20 64 65 76 65 6c 6f 70 6d 65 6e 74 29 27 2c 20 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 64 65 r.development)',.'method'.=>.'de
4f4c0 76 52 65 71 75 69 72 65 73 27 29 2c 0a 29 3b 0a 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 vRequires'),.);..const.STABILITY
4f4e0 5f 53 54 41 42 4c 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 52 43 20 _STABLE.=.0;.const.STABILITY_RC.
4f500 3d 20 35 3b 0a 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 42 45 54 41 20 3d 20 31 30 3b 0a =.5;.const.STABILITY_BETA.=.10;.
4f520 63 6f 6e 73 74 20 53 54 41 42 49 4c 49 54 59 5f 41 4c 50 48 41 20 3d 20 31 35 3b 0a 63 6f 6e 73 const.STABILITY_ALPHA.=.15;.cons
4f540 74 20 53 54 41 42 49 4c 49 54 59 5f 44 45 56 20 3d 20 32 30 3b 0a 0a 70 75 62 6c 69 63 20 73 74 t.STABILITY_DEV.=.20;..public.st
4f560 61 74 69 63 20 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 0a 27 73 74 61 62 atic.$stabilities.=.array(.'stab
4f580 6c 65 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 53 54 41 42 4c 45 2c 0a 27 le'.=>.self::STABILITY_STABLE,.'
4f5a0 52 43 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 52 43 2c 0a 27 62 65 74 61 RC'.=>.self::STABILITY_RC,.'beta
4f5c0 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 42 45 54 41 2c 0a 27 61 6c 70 68 '.=>.self::STABILITY_BETA,.'alph
4f5e0 61 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 41 4c 50 48 41 2c 0a 27 64 65 a'.=>.self::STABILITY_ALPHA,.'de
4f600 76 27 20 3d 3e 20 73 65 6c 66 3a 3a 53 54 41 42 49 4c 49 54 59 5f 44 45 56 2c 0a 29 3b 0a 0a 70 v'.=>.self::STABILITY_DEV,.);..p
4f620 72 6f 74 65 63 74 65 64 20 24 6e 61 6d 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 rotected.$name;.protected.$prett
4f640 79 4e 61 6d 65 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 69 74 6f 72 79 3b 0a 70 yName;..protected.$repository;.p
4f660 72 6f 74 65 63 74 65 64 20 24 69 64 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rotected.$id;.......public.funct
4f680 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e ion.__construct($name).{.$this->
4f6a0 70 72 65 74 74 79 4e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 prettyName.=.$name;.$this->name.
4f6c0 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 69 64 20 3d =.strtolower($name);.$this->id.=
4f6e0 20 2d 31 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 .-1;.}.....public.function.getNa
4f700 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;.}....
4f720 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 4e 61 6d 65 28 29 .public.function.getPrettyName()
4f740 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 4e 61 6d 65 3b 0a 7d 0a 0a .{.return.$this->prettyName;.}..
4f760 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 0a 7b 0a ...public.function.getNames().{.
4f780 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 0a 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 $names.=.array(.$this->getName()
4f7a0 20 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 .=>.true,.);..foreach.($this->ge
4f7c0 74 50 72 6f 76 69 64 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 tProvides().as.$link).{.$names[$
4f7e0 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 66 6f link->getTarget()].=.true;.}..fo
4f800 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 reach.($this->getReplaces().as.$
4f820 6c 69 6e 6b 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 link).{.$names[$link->getTarget(
4f840 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 )].=.true;.}..return.array_keys(
4f860 24 6e 61 6d 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 $names);.}.....public.function.s
4f880 65 74 49 64 28 24 69 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 24 69 64 3b 0a 7d 0a 0a etId($id).{.$this->id.=.$id;.}..
4f8a0 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 0a 7b 0a 72 65 74 ...public.function.getId().{.ret
4f8c0 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 urn.$this->id;.}.....public.func
4f8e0 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 74 6f 72 79 49 6e 74 tion.setRepository(RepositoryInt
4f900 65 72 66 61 63 65 20 24 72 65 70 6f 73 69 74 6f 72 79 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d erface.$repository).{.if.($this-
4f920 3e 72 65 70 6f 73 69 74 6f 72 79 20 26 26 20 24 72 65 70 6f 73 69 74 6f 72 79 20 21 3d 3d 20 24 >repository.&&.$repository.!==.$
4f940 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c this->repository).{.throw.new.\L
4f960 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 41 20 70 61 63 6b 61 67 65 20 63 61 6e 20 6f 6e 6c ogicException('A.package.can.onl
4f980 79 20 62 65 20 61 64 64 65 64 20 74 6f 20 6f 6e 65 20 72 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a y.be.added.to.one.repository');.
4f9a0 7d 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 }.$this->repository.=.$repositor
4f9c0 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f y;.}.....public.function.getRepo
4f9e0 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 6f 73 69 74 sitory().{.return.$this->reposit
4fa00 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 ory;.}.......public.function.isP
4fa20 6c 61 74 66 6f 72 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 52 65 70 latform().{.return.$this->getRep
4fa40 6f 73 69 74 6f 72 79 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 6c 61 74 66 6f 72 6d 52 65 70 ository().instanceof.PlatformRep
4fa60 6f 73 69 74 6f 72 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ository;.}.......public.function
4fa80 20 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .getUniqueName().{.return.$this-
4faa0 3e 67 65 74 4e 61 6d 65 28 29 2e 27 2d 27 2e 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e >getName().'-'.$this->getVersion
4fac0 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 50 61 ();.}..public.function.equals(Pa
4fae0 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 73 65 6c 66 ckageInterface.$package).{.$self
4fb00 20 3d 20 24 74 68 69 73 3b 0a 69 66 20 28 24 74 68 69 73 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 .=.$this;.if.($this.instanceof.A
4fb20 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 2d 3e 67 65 liasPackage).{.$self.=.$this->ge
4fb40 74 41 6c 69 61 73 4f 66 28 29 3b 0a 7d 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 tAliasOf();.}.if.($package.insta
4fb60 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d nceof.AliasPackage).{.$package.=
4fb80 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 72 65 74 75 .$package->getAliasOf();.}..retu
4fba0 72 6e 20 24 70 61 63 6b 61 67 65 20 3d 3d 3d 20 24 73 65 6c 66 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 rn.$package.===.$self;.}.......p
4fbc0 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
4fbe0 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 55 6e 69 71 75 65 4e 61 6d 65 28 29 3b 0a 7d 0a 0a turn.$this->getUniqueName();.}..
4fc00 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 6e 67 28 public.function.getPrettyString(
4fc20 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 ).{.return.$this->getPrettyName(
4fc40 29 2e 27 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b ).'.'.$this->getPrettyVersion();
4fc60 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6c 6f 6e 65 28 29 0a 7b 0a .}..public.function.__clone().{.
4fc80 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d $this->repository.=.null;.$this-
4fca0 3e 69 64 20 3d 20 2d 31 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e >id.=.-1;.}.}.<?php............n
4fcc0 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
4fce0 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
4fd00 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
4fd20 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
4fd40 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e e\Link;.use.Composer\Package\Lin
4fd60 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 kConstraint\EmptyConstraint;.use
4fd80 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 .Composer\Package\LinkConstraint
4fda0 5c 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 \MultiConstraint;.use.Composer\P
4fdc0 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 6f 6e 43 6f 6e ackage\LinkConstraint\VersionCon
4fde0 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e 50 61 72 73 straint;.......class.VersionPars
4fe00 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6d 6f 64 69 66 69 65 72 52 65 67 er.{.private.static.$modifierReg
4fe20 65 78 20 3d 20 27 5b 2e 5f 2d 5d 3f 28 3f 3a 28 73 74 61 62 6c 65 7c 62 65 74 61 7c 62 7c 52 43 ex.=.'[._-]?(?:(stable|beta|b|RC
4fe40 7c 61 6c 70 68 61 7c 61 7c 70 61 74 63 68 7c 70 6c 7c 70 29 28 3f 3a 5b 2e 2d 5d 3f 28 5c 64 2b |alpha|a|patch|pl|p)(?:[.-]?(\d+
4fe60 29 29 3f 29 3f 28 5b 2e 2d 5d 3f 64 65 76 29 3f 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ))?)?([.-]?dev)?';........public
4fe80 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 74 61 62 69 6c 69 74 79 28 .static.function.parseStability(
4fea0 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c $version).{.$version.=.preg_repl
4fec0 61 63 65 28 27 7b 23 2e 2b 24 7d 69 27 2c 20 27 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 69 ace('{#.+$}i',.'',.$version);..i
4fee0 66 20 28 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 30 f.('dev-'.===.substr($version,.0
4ff00 2c 20 34 29 20 7c 7c 20 27 2d 64 65 76 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 76 65 72 73 69 ,.4).||.'-dev'.===.substr($versi
4ff20 6f 6e 2c 20 2d 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 27 3b 0a 7d 0a 0a 70 72 65 67 on,.-4)).{.return.'dev';.}..preg
4ff40 5f 6d 61 74 63 68 28 27 7b 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e _match('{'.self::$modifierRegex.
4ff60 27 24 7d 69 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 76 65 72 73 69 6f 6e 29 2c 20 24 6d 61 '$}i',.strtolower($version),.$ma
4ff80 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 7b 0a 72 tch);.if.(!empty($match[3])).{.r
4ffa0 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 61 74 63 eturn.'dev';.}..if.(!empty($matc
4ffc0 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 68 5b 31 h[1])).{.if.('beta'.===.$match[1
4ffe0 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 75 72 6e ].||.'b'.===.$match[1]).{.return
50000 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 61 74 63 .'beta';.}.if.('alpha'.===.$matc
50020 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 72 65 74 h[1].||.'a'.===.$match[1]).{.ret
50040 75 72 6e 20 27 61 6c 70 68 61 27 3b 0a 7d 0a 69 66 20 28 27 72 63 27 20 3d 3d 3d 20 24 6d 61 74 urn.'alpha';.}.if.('rc'.===.$mat
50060 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 74 75 72 ch[1]).{.return.'RC';.}.}..retur
50080 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 66 75 6e n.'stable';.}..public.static.fun
500a0 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 62 69 6c ction.normalizeStability($stabil
500c0 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 72 28 24 ity).{.$stability.=.strtolower($
500e0 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 79 20 3d stability);..return.$stability.=
50100 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 7d 0a 0a ==.'rc'.?.'RC'.:.$stability;.}..
50120 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 56 65 72 public.static.function.formatVer
50140 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 65 2c 20 sion(PackageInterface.$package,.
50160 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 6b 61 67 $truncate.=.true).{.if.(!$packag
50180 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 61 67 65 e->isDev().||.!in_array($package
501a0 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 2c 20 27 ->getSourceType(),.array('hg',.'
501c0 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 74 50 72 git'))).{.return.$package->getPr
501e0 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 72 75 6e 63 61 74 ettyVersion();.}....if.($truncat
50200 65 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 e.&&.strlen($package->getSourceR
50220 65 66 65 72 65 6e 63 65 28 29 29 20 3d 3d 3d 20 34 30 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 eference()).===.40).{.return.$pa
50240 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 20 2e 20 27 20 27 20 ckage->getPrettyVersion()...'.'.
50260 2e 20 73 75 62 73 74 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 ..substr($package->getSourceRefe
50280 72 65 6e 63 65 28 29 2c 20 30 2c 20 37 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 rence(),.0,.7);.}..return.$packa
502a0 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 20 24 ge->getPrettyVersion()...'.'...$
502c0 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 3b 0a 7d package->getSourceReference();.}
502e0 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 6e 6f 72 6d 61 6c ..........public.function.normal
50300 69 7a 65 28 24 76 65 72 73 69 6f 6e 2c 20 24 66 75 6c 6c 56 65 72 73 69 6f 6e 20 3d 20 6e 75 6c ize($version,.$fullVersion.=.nul
50320 6c 29 0a 7b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 74 72 69 6d 28 24 76 65 72 73 69 6f 6e 29 3b 0a l).{.$version.=.trim($version);.
50340 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 66 75 6c 6c 56 65 72 73 69 6f 6e 29 20 7b 0a 24 66 75 if.(null.===.$fullVersion).{.$fu
50360 6c 6c 56 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 llVersion.=.$version;.}....if.(p
50380 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b 29 20 2b 61 73 20 2b 28 5b 5e 2c reg_match('{^([^,\s]+).+as.+([^,
503a0 5c 73 5d 2b 29 24 7d 27 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 \s]+)$}',.$version,.$match)).{.$
503c0 76 65 72 73 69 6f 6e 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 version.=.$match[1];.}....if.(pr
503e0 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 64 65 76 2d 29 3f 28 3f 3a 6d 61 73 74 65 72 7c 74 eg_match('{^(?:dev-)?(?:master|t
50400 72 75 6e 6b 7c 64 65 66 61 75 6c 74 29 24 7d 69 27 2c 20 24 76 65 72 73 69 6f 6e 29 29 20 7b 0a runk|default)$}i',.$version)).{.
50420 72 65 74 75 72 6e 20 27 39 39 39 39 39 39 39 2d 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 27 64 65 return.'9999999-dev';.}..if.('de
50440 76 2d 27 20 3d 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 73 75 62 73 74 72 28 24 76 65 72 73 69 v-'.===.strtolower(substr($versi
50460 6f 6e 2c 20 30 2c 20 34 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 64 65 76 2d 27 2e 73 75 62 73 on,.0,.4))).{.return.'dev-'.subs
50480 74 72 28 24 76 65 72 73 69 6f 6e 2c 20 34 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d tr($version,.4);.}....if.(preg_m
504a0 61 74 63 68 28 27 7b 5e 76 3f 28 5c 64 7b 31 2c 33 7d 29 28 5c 2e 5c 64 2b 29 3f 28 5c 2e 5c 64 atch('{^v?(\d{1,3})(\.\d+)?(\.\d
504c0 2b 29 3f 28 5c 2e 5c 64 2b 29 3f 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 +)?(\.\d+)?'.self::$modifierRege
504e0 78 2e 27 24 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 x.'$}i',.$version,.$matches)).{.
50500 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(
50520 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
50540 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
50560 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
50580 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 24 69 6e 64 [4]).?.$matches[4].:.'.0');.$ind
505a0 65 78 20 3d 20 35 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e ex.=.5;.}.elseif.(preg_match('{^
505c0 76 3f 28 5c 64 7b 34 7d 28 3f 3a 5b 2e 3a 2d 5d 3f 5c 64 7b 32 7d 29 7b 31 2c 36 7d 28 3f 3a 5b v?(\d{4}(?:[.:-]?\d{2}){1,6}(?:[
505e0 2e 3a 2d 5d 3f 5c 64 7b 31 2c 33 7d 29 3f 29 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 .:-]?\d{1,3})?)'.self::$modifier
50600 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 74 63 68 65 73 29 Regex.'$}i',.$version,.$matches)
50620 29 20 7b 20 0a 20 24 76 65 72 73 69 6f 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b ).{...$version.=.preg_replace('{
50640 5c 44 7d 27 2c 20 27 2d 27 2c 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b 0a 24 69 6e 64 65 78 20 \D}',.'-',.$matches[1]);.$index.
50660 3d 20 32 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 69 6e 64 65 78 29 29 20 7b 0a 69 =.2;.}....if.(isset($index)).{.i
50680 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 5d 29 29 20 7b 0a 69 f.(!empty($matches[$index])).{.i
506a0 66 20 28 27 73 74 61 62 6c 65 27 20 3d 3d 3d 20 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d f.('stable'.===.$matches[$index]
506c0 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 24 76 65 72 73 69 6f 6e 20 ).{.return.$version;.}.$version.
506e0 2e 3d 20 27 2d 27 20 2e 20 24 74 68 69 73 2d 3e 65 78 70 61 6e 64 53 74 61 62 69 6c 69 74 79 28 .=.'-'...$this->expandStability(
50700 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 20 2e 20 28 21 65 6d 70 74 79 28 24 6d 61 74 $matches[$index])...(!empty($mat
50720 63 68 65 73 5b 24 69 6e 64 65 78 2b 31 5d 29 20 3f 20 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 ches[$index+1]).?.$matches[$inde
50740 78 2b 31 5d 20 3a 20 27 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 x+1].:.'');.}..if.(!empty($match
50760 65 73 5b 24 69 6e 64 65 78 2b 32 5d 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 64 es[$index+2])).{.$version..=.'-d
50780 65 76 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a 20 69 66 ev';.}..return.$version;.}....if
507a0 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 2e 2a 3f 29 5b 2e 2d 5d 3f 64 65 76 24 7d 69 27 .(preg_match('{(.*?)[.-]?dev$}i'
507c0 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 74 72 79 20 7b 0a 72 65 74 ,.$version,.$match)).{.try.{.ret
507e0 75 72 6e 20 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 42 72 61 6e 63 68 28 24 6d 61 74 63 urn.$this->normalizeBranch($matc
50800 68 5b 31 5d 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b h[1]);.}.catch.(\Exception.$e).{
50820 7d 0a 7d 0a 0a 24 65 78 74 72 61 4d 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 69 66 20 28 70 72 65 }.}..$extraMessage.=.'';.if.(pre
50840 67 5f 6d 61 74 63 68 28 27 7b 20 2b 61 73 20 2b 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 g_match('{.+as.+'.preg_quote($ve
50860 72 73 69 6f 6e 29 2e 27 24 7d 27 2c 20 24 66 75 6c 6c 56 65 72 73 69 6f 6e 29 29 20 7b 0a 24 65 rsion).'$}',.$fullVersion)).{.$e
50880 78 74 72 61 4d 65 73 73 61 67 65 20 3d 20 27 20 69 6e 20 22 27 2e 24 66 75 6c 6c 56 65 72 73 69 xtraMessage.=.'.in."'.$fullVersi
508a0 6f 6e 2e 27 22 2c 20 74 68 65 20 61 6c 69 61 73 20 6d 75 73 74 20 62 65 20 61 6e 20 65 78 61 63 on.'",.the.alias.must.be.an.exac
508c0 74 20 76 65 72 73 69 6f 6e 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 t.version';.}.elseif.(preg_match
508e0 28 27 7b 5e 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 76 65 72 73 69 6f 6e 29 2e 27 20 2b 61 73 ('{^'.preg_quote($version).'.+as
50900 20 2b 7d 27 2c 20 24 66 75 6c 6c 56 65 72 73 69 6f 6e 29 29 20 7b 0a 24 65 78 74 72 61 4d 65 73 .+}',.$fullVersion)).{.$extraMes
50920 73 61 67 65 20 3d 20 27 20 69 6e 20 22 27 2e 24 66 75 6c 6c 56 65 72 73 69 6f 6e 2e 27 22 2c 20 sage.=.'.in."'.$fullVersion.'",.
50940 74 68 65 20 61 6c 69 61 73 20 73 6f 75 72 63 65 20 6d 75 73 74 20 62 65 20 61 6e 20 65 78 61 63 the.alias.source.must.be.an.exac
50960 74 20 76 65 72 73 69 6f 6e 2c 20 69 66 20 69 74 20 69 73 20 61 20 62 72 61 6e 63 68 20 6e 61 6d t.version,.if.it.is.a.branch.nam
50980 65 20 79 6f 75 20 73 68 6f 75 6c 64 20 70 72 65 66 69 78 20 69 74 20 77 69 74 68 20 64 65 76 2d e.you.should.prefix.it.with.dev-
509a0 27 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 ';.}..throw.new.\UnexpectedValue
509c0 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 76 65 72 73 69 6f 6e 20 73 74 72 69 6e Exception('Invalid.version.strin
509e0 67 20 22 27 2e 24 76 65 72 73 69 6f 6e 2e 27 22 27 2e 24 65 78 74 72 61 4d 65 73 73 61 67 65 29 g."'.$version.'"'.$extraMessage)
50a00 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
50a20 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
50a40 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
50a60 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'
50a80 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
50aa0 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
50ac0 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*
50ae0 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
50b00 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
50b20 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
50b40 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
50b60 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])
50b80 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('
50ba0 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';
50bc0 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;.}......
50be0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 4c 69 6e 6b 73 28 24 73 ...public.function.parseLinks($s
50c00 6f 75 72 63 65 2c 20 24 73 6f 75 72 63 65 56 65 72 73 69 6f 6e 2c 20 24 64 65 73 63 72 69 70 74 ource,.$sourceVersion,.$descript
50c20 69 6f 6e 2c 20 24 6c 69 6e 6b 73 29 0a 7b 0a 24 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 ion,.$links).{.$res.=.array();.f
50c40 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 63 6f oreach.($links.as.$target.=>.$co
50c60 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 27 73 65 6c 66 2e 76 65 72 73 69 6f 6e 27 20 3d nstraint).{.if.('self.version'.=
50c80 3d 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 70 61 72 73 65 64 43 6f 6e 73 74 72 61 ==.$constraint).{.$parsedConstra
50ca0 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 73 int.=.$this->parseConstraints($s
50cc0 6f 75 72 63 65 56 65 72 73 69 6f 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 72 73 65 64 43 ourceVersion);.}.else.{.$parsedC
50ce0 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 onstraint.=.$this->parseConstrai
50d00 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 24 72 65 73 5b 73 74 72 74 6f 6c 6f nts($constraint);.}.$res[strtolo
50d20 77 65 72 28 24 74 61 72 67 65 74 29 5d 20 3d 20 6e 65 77 20 4c 69 6e 6b 28 24 73 6f 75 72 63 65 wer($target)].=.new.Link($source
50d40 2c 20 24 74 61 72 67 65 74 2c 20 24 70 61 72 73 65 64 43 6f 6e 73 74 72 61 69 6e 74 2c 20 24 64 ,.$target,.$parsedConstraint,.$d
50d60 65 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 escription,.$constraint);.}..ret
50d80 75 72 6e 20 24 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 urn.$res;.}........public.functi
50da0 6f 6e 20 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 73 28 24 63 6f 6e 73 74 72 61 69 6e 74 73 on.parseConstraints($constraints
50dc0 29 0a 7b 0a 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 ).{.$prettyConstraint.=.$constra
50de0 69 6e 74 73 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 5e 2c 5c 73 5d ints;..if.(preg_match('{^([^,\s]
50e00 2a 3f 29 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 42 *?)@('.implode('|',.array_keys(B
50e20 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 29 29 2e 27 29 24 7d 69 asePackage::$stabilities)).')$}i
50e40 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
50e60 73 74 72 61 69 6e 74 73 20 3d 20 65 6d 70 74 79 28 24 6d 61 74 63 68 5b 31 5d 29 20 3f 20 27 2a straints.=.empty($match[1]).?.'*
50e80 27 20 3a 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 '.:.$match[1];.}..if.(preg_match
50ea0 28 27 7b 5e 28 64 65 76 2d 5b 5e 2c 5c 73 40 5d 2b 3f 7c 5b 5e 2c 5c 73 40 5d 2b 3f 5c 2e 78 2d ('{^(dev-[^,\s@]+?|[^,\s@]+?\.x-
50ec0 64 65 76 29 23 2e 2b 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 2c 20 24 6d 61 74 63 dev)#.+$}i',.$constraints,.$matc
50ee0 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a h)).{.$constraints.=.$match[1];.
50f00 7d 0a 0a 24 6f 72 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 }..$orConstraints.=.preg_split('
50f20 7b 5c 73 2a 5c 7c 5c 73 2a 7d 27 2c 20 74 72 69 6d 28 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 29 {\s*\|\s*}',.trim($constraints))
50f40 3b 0a 24 6f 72 47 72 6f 75 70 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 ;.$orGroups.=.array();.foreach.(
50f60 24 6f 72 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 20 $orConstraints.as.$constraints).
50f80 7b 0a 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 {.$andConstraints.=.preg_split('
50fa0 7b 5c 73 2a 2c 5c 73 2a 7d 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 29 3b 0a 0a 69 66 20 28 {\s*,\s*}',.$constraints);..if.(
50fc0 63 6f 75 6e 74 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 29 20 3e 20 31 29 20 7b 0a 24 63 count($andConstraints).>.1).{.$c
50fe0 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 onstraintObjects.=.array();.fore
51000 61 63 68 20 28 24 61 6e 64 43 6f 6e 73 74 72 61 69 6e 74 73 20 61 73 20 24 63 6f 6e 73 74 72 61 ach.($andConstraints.as.$constra
51020 69 6e 74 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 20 3d 20 61 72 72 61 int).{.$constraintObjects.=.arra
51040 79 5f 6d 65 72 67 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 2c 20 24 74 68 69 y_merge($constraintObjects,.$thi
51060 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 s->parseConstraint($constraint))
51080 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 20 ;.}.}.else.{.$constraintObjects.
510a0 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 43 6f 6e 73 74 72 61 69 6e 74 28 24 61 6e 64 43 6f 6e =.$this->parseConstraint($andCon
510c0 73 74 72 61 69 6e 74 73 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 straints[0]);.}..if.(1.===.count
510e0 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 ($constraintObjects)).{.$constra
51100 69 6e 74 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 5b 30 5d 3b 0a 7d 20 65 int.=.$constraintObjects[0];.}.e
51120 6c 73 65 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 4d 75 6c 74 69 43 6f 6e lse.{.$constraint.=.new.MultiCon
51140 73 74 72 61 69 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 4f 62 6a 65 63 74 73 29 3b 0a 7d 0a 0a straint($constraintObjects);.}..
51160 24 6f 72 47 72 6f 75 70 73 5b 5d 20 3d 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 69 66 $orGroups[].=.$constraint;.}..if
51180 20 28 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 6f 72 47 72 6f 75 70 73 29 29 20 7b 0a 24 63 6f 6e .(1.===.count($orGroups)).{.$con
511a0 73 74 72 61 69 6e 74 20 3d 20 24 6f 72 47 72 6f 75 70 73 5b 30 5d 3b 0a 7d 20 65 6c 73 65 20 7b straint.=.$orGroups[0];.}.else.{
511c0 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 .$constraint.=.new.MultiConstrai
511e0 6e 74 28 24 6f 72 47 72 6f 75 70 73 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a 24 63 6f 6e 73 74 72 nt($orGroups,.false);.}..$constr
51200 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 43 6f 6e aint->setPrettyString($prettyCon
51220 73 74 72 61 69 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d straint);..return.$constraint;.}
51240 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 43 6f 6e 73 74 72 61 69 ..private.function.parseConstrai
51260 6e 74 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 nt($constraint).{.if.(preg_match
51280 28 27 7b 5e 28 5b 5e 2c 5c 73 5d 2b 3f 29 40 28 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 61 ('{^([^,\s]+?)@('.implode('|',.a
512a0 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 69 6c 69 74 rray_keys(BasePackage::$stabilit
512c0 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 2c 20 24 6d 61 74 63 ies)).')$}i',.$constraint,.$matc
512e0 68 29 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 69 h)).{.$constraint.=.$match[1];.i
51300 66 20 28 24 6d 61 74 63 68 5b 32 5d 20 21 3d 3d 20 27 73 74 61 62 6c 65 27 29 20 7b 0a 24 73 74 f.($match[2].!==.'stable').{.$st
51320 61 62 69 6c 69 74 79 4d 6f 64 69 66 69 65 72 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 7d 0a 7d abilityModifier.=.$match[2];.}.}
51340 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 78 2a 5d 28 5c 2e 5b 78 2a 5d 29 ..if.(preg_match('{^[x*](\.[x*])
51360 2a 24 7d 69 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 *$}i',.$constraint)).{.return.ar
51380 72 61 79 28 6e 65 77 20 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 20 0a ray(new.EmptyConstraint);.}.....
513a0 20 0a 20 0a 20 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 7e 3e 3f 28 5c 64 2b .......if.(preg_match('{^~>?(\d+
513c0 29 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 28 3f 3a 5c 2e 28 5c )(?:\.(\d+))?(?:\.(\d+))?(?:\.(\
513e0 64 2b 29 29 3f 27 2e 73 65 6c 66 3a 3a 24 6d 6f 64 69 66 69 65 72 52 65 67 65 78 2e 27 3f 24 7d d+))?'.self::$modifierRegex.'?$}
51400 69 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 69 66 i',.$constraint,.$matches)).{.if
51420 20 28 73 75 62 73 74 72 28 24 63 6f 6e 73 74 72 61 69 6e 74 2c 20 30 2c 20 32 29 20 3d 3d 3d 20 .(substr($constraint,.0,.2).===.
51440 27 7e 3e 27 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 '~>').{.throw.new.\UnexpectedVal
51460 75 65 45 78 63 65 70 74 69 6f 6e 28 0a 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 76 65 ueException(.'Could.not.parse.ve
51480 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2e 27 rsion.constraint.'.$constraint.'
514a0 3a 20 27 2e 0a 27 49 6e 76 61 6c 69 64 20 6f 70 65 72 61 74 6f 72 20 22 7e 3e 22 2c 20 79 6f 75 :.'..'Invalid.operator."~>",.you
514c0 20 70 72 6f 62 61 62 6c 79 20 6d 65 61 6e 74 20 74 6f 20 75 73 65 20 74 68 65 20 22 7e 22 20 6f .probably.meant.to.use.the."~".o
514e0 70 65 72 61 74 6f 72 27 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 perator'.);.}....if.(isset($matc
51500 68 65 73 5b 34 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 34 5d 29 20 7b hes[4]).&&.''.!==.$matches[4]).{
51520 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 34 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 .$position.=.4;.}.elseif.(isset(
51540 24 6d 61 74 63 68 65 73 5b 33 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b $matches[3]).&&.''.!==.$matches[
51560 33 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 33 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 3]).{.$position.=.3;.}.elseif.(i
51580 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 sset($matches[2]).&&.''.!==.$mat
515a0 63 68 65 73 5b 32 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 32 3b 0a 7d 20 65 6c 73 65 ches[2]).{.$position.=.2;.}.else
515c0 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 31 3b 0a 7d 0a 0a 0a 20 24 73 74 61 62 69 6c 69 74 .{.$position.=.1;.}....$stabilit
515e0 79 53 75 66 66 69 78 20 3d 20 27 27 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 ySuffix.=.'';.if.(!empty($matche
51600 73 5b 35 5d 29 29 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 2e 3d 20 27 2d 27 s[5])).{.$stabilitySuffix..=.'-'
51620 20 2e 20 24 74 68 69 73 2d 3e 65 78 70 61 6e 64 53 74 61 62 69 6c 69 74 79 28 24 6d 61 74 63 68 ...$this->expandStability($match
51640 65 73 5b 35 5d 29 20 2e 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 68 65 73 5b 36 5d 29 20 3f 20 es[5])...(!empty($matches[6]).?.
51660 24 6d 61 74 63 68 65 73 5b 36 5d 20 3a 20 27 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 $matches[6].:.'');.}..if.(!empty
51680 28 24 6d 61 74 63 68 65 73 5b 37 5d 29 29 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 ($matches[7])).{.$stabilitySuffi
516a0 78 20 2e 3d 20 27 2d 64 65 76 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 73 74 61 62 69 6c 69 74 79 53 x..=.'-dev';.}..if.(!$stabilityS
516c0 75 66 66 69 78 29 20 7b 0a 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 20 3d 20 22 2d 64 65 uffix).{.$stabilitySuffix.=."-de
516e0 76 22 3b 0a 7d 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 v";.}.$lowVersion.=.$this->manip
51700 75 6c 61 74 65 56 65 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 70 6f ulateVersionString($matches,.$po
51720 73 69 74 69 6f 6e 2c 20 30 29 20 2e 20 24 73 74 61 62 69 6c 69 74 79 53 75 66 66 69 78 3b 0a 24 sition,.0)...$stabilitySuffix;.$
51740 6c 6f 77 65 72 42 6f 75 6e 64 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 lowerBound.=.new.VersionConstrai
51760 6e 74 28 27 3e 3d 27 2c 20 24 6c 6f 77 56 65 72 73 69 6f 6e 29 3b 0a 0a 0a 20 0a 20 24 68 69 67 nt('>=',.$lowVersion);......$hig
51780 68 50 6f 73 69 74 69 6f 6e 20 3d 20 6d 61 78 28 31 2c 20 24 70 6f 73 69 74 69 6f 6e 20 2d 20 31 hPosition.=.max(1,.$position.-.1
517a0 29 3b 0a 24 68 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c );.$highVersion.=.$this->manipul
517c0 61 74 65 56 65 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 68 69 67 68 ateVersionString($matches,.$high
517e0 50 6f 73 69 74 69 6f 6e 2c 20 31 29 20 2e 20 27 2d 64 65 76 27 3b 0a 24 75 70 70 65 72 42 6f 75 Position,.1)...'-dev';.$upperBou
51800 6e 64 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 3c 27 2c 20 nd.=.new.VersionConstraint('<',.
51820 24 68 69 67 68 56 65 72 73 69 6f 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 6c $highVersion);..return.array(.$l
51840 6f 77 65 72 42 6f 75 6e 64 2c 0a 24 75 70 70 65 72 42 6f 75 6e 64 0a 29 3b 0a 7d 0a 0a 0a 20 69 owerBound,.$upperBound.);.}....i
51860 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5c 64 2b 29 28 3f 3a 5c 2e 28 5c 64 2b 29 f.(preg_match('{^(\d+)(?:\.(\d+)
51880 29 3f 28 3f 3a 5c 2e 28 5c 64 2b 29 29 3f 5c 2e 5b 78 2a 5d 24 7d 27 2c 20 24 63 6f 6e 73 74 72 )?(?:\.(\d+))?\.[x*]$}',.$constr
518a0 61 69 6e 74 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 aint,.$matches)).{.if.(isset($ma
518c0 74 63 68 65 73 5b 33 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 73 5b 33 5d 29 tches[3]).&&.''.!==.$matches[3])
518e0 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 33 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 .{.$position.=.3;.}.elseif.(isse
51900 74 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 20 26 26 20 27 27 20 21 3d 3d 20 24 6d 61 74 63 68 65 t($matches[2]).&&.''.!==.$matche
51920 73 5b 32 5d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 32 3b 0a 7d 20 65 6c 73 65 20 7b 0a s[2]).{.$position.=.2;.}.else.{.
51940 24 70 6f 73 69 74 69 6f 6e 20 3d 20 31 3b 0a 7d 0a 0a 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d 20 $position.=.1;.}..$lowVersion.=.
51960 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 56 65 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 $this->manipulateVersionString($
51980 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 29 20 2e 20 22 2d 64 65 76 22 3b 0a 24 68 matches,.$position)..."-dev";.$h
519a0 69 67 68 56 65 72 73 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 56 65 ighVersion.=.$this->manipulateVe
519c0 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 2c rsionString($matches,.$position,
519e0 20 31 29 20 2e 20 22 2d 64 65 76 22 3b 0a 0a 69 66 20 28 24 6c 6f 77 56 65 72 73 69 6f 6e 20 3d .1)..."-dev";..if.($lowVersion.=
51a00 3d 3d 20 22 30 2e 30 2e 30 2e 30 2d 64 65 76 22 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 ==."0.0.0.0-dev").{.return.array
51a20 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3c 27 2c 20 24 68 69 67 (new.VersionConstraint('<',.$hig
51a40 68 56 65 72 73 69 6f 6e 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 6e 65 77 hVersion));.}..return.array(.new
51a60 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3e 3d 27 2c 20 24 6c 6f 77 56 65 72 .VersionConstraint('>=',.$lowVer
51a80 73 69 6f 6e 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 sion),.new.VersionConstraint('<'
51aa0 2c 20 24 68 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 ,.$highVersion),.);.}....if.(pre
51ac0 67 5f 6d 61 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 g_match('{^(<>|!=|>=?|<=?|==?)?\
51ae0 73 2a 28 2e 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 s*(.*)}',.$constraint,.$matches)
51b00 29 20 7b 0a 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 ).{.try.{.$version.=.$this->norm
51b20 61 6c 69 7a 65 28 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 alize($matches[2]);..if.(!empty(
51b40 24 73 74 61 62 69 6c 69 74 79 4d 6f 64 69 66 69 65 72 29 20 26 26 20 24 74 68 69 73 2d 3e 70 61 $stabilityModifier).&&.$this->pa
51b60 72 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 20 3d 3d 3d 20 27 73 74 61 62 rseStability($version).===.'stab
51b80 6c 65 27 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 2e 3d 20 27 2d 27 20 2e 20 24 73 74 61 62 69 6c le').{.$version..=.'-'...$stabil
51ba0 69 74 79 4d 6f 64 69 66 69 65 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 3c 27 20 3d 3d 3d 20 24 ityModifier;.}.elseif.('<'.===.$
51bc0 6d 61 74 63 68 65 73 5b 31 5d 29 20 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f matches[1]).{.if.(!preg_match('/
51be0 2d 73 74 61 62 6c 65 24 2f 27 2c 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 73 5b -stable$/',.strtolower($matches[
51c00 32 5d 29 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 7d 0a 2]))).{.$version..=.'-dev';.}.}.
51c20 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 .return.array(new.VersionConstra
51c40 69 6e 74 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3f 3a 20 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e int($matches[1].?:.'=',.$version
51c60 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 20 7d 0a ));.}.catch.(\Exception.$e).{.}.
51c80 7d 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 76 }..$message.=.'Could.not.parse.v
51ca0 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 3b ersion.constraint.'.$constraint;
51cc0 0a 69 66 20 28 69 73 73 65 74 28 24 65 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 27 3a .if.(isset($e)).{.$message..=.':
51ce0 20 27 2e 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e .'..$e->getMessage();.}..throw.n
51d00 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 6d 65 ew.\UnexpectedValueException($me
51d20 73 73 61 67 65 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 66 75 ssage);.}.............private.fu
51d40 6e 63 74 69 6f 6e 20 6d 61 6e 69 70 75 6c 61 74 65 56 65 72 73 69 6f 6e 53 74 72 69 6e 67 28 24 nction.manipulateVersionString($
51d60 6d 61 74 63 68 65 73 2c 20 24 70 6f 73 69 74 69 6f 6e 2c 20 24 69 6e 63 72 65 6d 65 6e 74 20 3d matches,.$position,.$increment.=
51d80 20 30 2c 20 24 70 61 64 20 3d 20 27 30 27 29 0a 7b 0a 66 6f 72 20 28 24 69 20 3d 20 34 3b 20 24 .0,.$pad.=.'0').{.for.($i.=.4;.$
51da0 69 20 3e 20 30 3b 20 24 69 2d 2d 29 20 7b 0a 69 66 20 28 24 69 20 3e 20 24 70 6f 73 69 74 69 6f i.>.0;.$i--).{.if.($i.>.$positio
51dc0 6e 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 69 5d 20 3d 20 24 70 61 64 3b 0a 7d 20 65 6c 73 65 n).{.$matches[$i].=.$pad;.}.else
51de0 69 66 20 28 24 69 20 3d 3d 20 24 70 6f 73 69 74 69 6f 6e 20 26 26 20 24 69 6e 63 72 65 6d 65 6e if.($i.==.$position.&&.$incremen
51e00 74 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b 24 69 5d 20 2b 3d 20 24 69 6e 63 72 65 6d 65 6e 74 3b t).{.$matches[$i].+=.$increment;
51e20 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 65 73 5b 24 69 5d 20 3c 20 30 29 20 7b 0a 24 6d 61 74 63 ...if.($matches[$i].<.0).{.$matc
51e40 68 65 73 5b 24 69 5d 20 3d 20 24 70 61 64 3b 0a 24 70 6f 73 69 74 69 6f 6e 2d 2d 3b 0a 0a 0a 20 hes[$i].=.$pad;.$position--;....
51e60 69 66 20 28 24 69 20 3d 3d 20 31 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a if.($i.==.1).{.return;.}.}.}.}..
51e80 72 65 74 75 72 6e 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 return.$matches[1]...'.'...$matc
51ea0 68 65 73 5b 32 5d 20 2e 20 27 2e 27 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 5d 20 2e 20 27 2e 27 hes[2]...'.'...$matches[3]...'.'
51ec0 20 2e 20 24 6d 61 74 63 68 65 73 5b 34 5d 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 ...$matches[4];.}..private.funct
51ee0 69 6f 6e 20 65 78 70 61 6e 64 53 74 61 62 69 6c 69 74 79 28 24 73 74 61 62 69 6c 69 74 79 29 0a ion.expandStability($stability).
51f00 7b 0a 24 73 74 61 62 69 6c 69 74 79 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 74 61 62 69 {.$stability.=.strtolower($stabi
51f20 6c 69 74 79 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 73 74 61 62 69 6c 69 74 79 29 20 7b 0a 63 61 lity);..switch.($stability).{.ca
51f40 73 65 20 27 61 27 3a 0a 72 65 74 75 72 6e 20 27 61 6c 70 68 61 27 3b 0a 63 61 73 65 20 27 62 27 se.'a':.return.'alpha';.case.'b'
51f60 3a 0a 72 65 74 75 72 6e 20 27 62 65 74 61 27 3b 0a 63 61 73 65 20 27 70 27 3a 0a 63 61 73 65 20 :.return.'beta';.case.'p':.case.
51f80 27 70 6c 27 3a 0a 72 65 74 75 72 6e 20 27 70 61 74 63 68 27 3b 0a 63 61 73 65 20 27 72 63 27 3a 'pl':.return.'patch';.case.'rc':
51fa0 0a 72 65 74 75 72 6e 20 27 52 43 27 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 24 73 .return.'RC';.default:.return.$s
51fc0 74 61 62 69 6c 69 74 79 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 tability;.}.}........public.func
51fe0 74 69 6f 6e 20 70 61 72 73 65 4e 61 6d 65 56 65 72 73 69 6f 6e 50 61 69 72 73 28 61 72 72 61 79 tion.parseNameVersionPairs(array
52000 20 24 70 61 69 72 73 29 0a 7b 0a 24 70 61 69 72 73 20 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 73 .$pairs).{.$pairs.=.array_values
52020 28 24 70 61 69 72 73 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f ($pairs);.$result.=.array();..fo
52040 72 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 70 61 69 72 73 r.($i.=.0,.$count.=.count($pairs
52060 29 3b 20 24 69 20 3c 20 24 63 6f 75 6e 74 3b 20 24 69 2b 2b 29 20 7b 0a 24 70 61 69 72 20 3d 20 );.$i.<.$count;.$i++).{.$pair.=.
52080 70 72 65 67 5f 72 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 preg_replace('{^([^=:.]+)[=:.](.
520a0 2a 29 24 7d 27 2c 20 27 24 31 20 24 32 27 2c 20 74 72 69 6d 28 24 70 61 69 72 73 5b 24 69 5d 29 *)$}',.'$1.$2',.trim($pairs[$i])
520c0 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 61 69 72 2c 20 27 );.if.(false.===.strpos($pair,.'
520e0 20 27 29 20 26 26 20 69 73 73 65 74 28 24 70 61 69 72 73 5b 24 69 2b 31 5d 29 20 26 26 20 66 61 .').&&.isset($pairs[$i+1]).&&.fa
52100 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 61 69 72 73 5b 24 69 2b 31 5d 2c 20 27 2f 27 lse.===.strpos($pairs[$i+1],.'/'
52120 29 29 20 7b 0a 24 70 61 69 72 20 2e 3d 20 27 20 27 2e 24 70 61 69 72 73 5b 24 69 2b 31 5d 3b 0a )).{.$pair..=.'.'.$pairs[$i+1];.
52140 24 69 2b 2b 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 69 72 2c 20 27 20 27 29 29 $i++;.}..if.(strpos($pair,.'.'))
52160 20 7b 0a 6c 69 73 74 28 24 6e 61 6d 65 2c 20 24 76 65 72 73 69 6f 6e 29 20 3d 20 65 78 70 6c 6f .{.list($name,.$version).=.explo
52180 64 65 28 22 20 22 2c 20 24 70 61 69 72 2c 20 32 29 3b 0a 24 72 65 73 75 6c 74 5b 5d 20 3d 20 61 de(".",.$pair,.2);.$result[].=.a
521a0 72 72 61 79 28 27 6e 61 6d 65 27 20 3d 3e 20 24 6e 61 6d 65 2c 20 27 76 65 72 73 69 6f 6e 27 20 rray('name'.=>.$name,.'version'.
521c0 3d 3e 20 24 76 65 72 73 69 6f 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 73 75 6c 74 5b 5d =>.$version);.}.else.{.$result[]
521e0 20 3d 20 61 72 72 61 79 28 27 6e 61 6d 65 27 20 3d 3e 20 24 70 61 69 72 29 3b 0a 7d 0a 7d 0a 0a .=.array('name'.=>.$pair);.}.}..
52200 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 0a 0a return.$result;.}.}.<?php.......
52220 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 3b .....namespace.Composer\Package;
52240 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 .......interface.CompletePackage
52260 49 6e 74 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 Interface.extends.PackageInterfa
52280 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 ce.{......public.function.getScr
522a0 69 70 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ipts();.........public.function.
522c0 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 69 63 20 getRepositories();.......public.
522e0 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 63 65 6e 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 function.getLicense();.......pub
52300 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4b 65 79 77 6f 72 64 73 28 29 3b 0a 0a 0a 0a 0a lic.function.getKeywords();.....
52320 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 69 6f 6e ..public.function.getDescription
52340 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 48 6f 6d ();.......public.function.getHom
52360 65 70 61 67 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e epage();.........public.function
52380 20 67 65 74 41 75 74 68 6f 72 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .getAuthors();.......public.func
523a0 74 69 6f 6e 20 67 65 74 53 75 70 70 6f 72 74 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a tion.getSupport();.}.<?php......
523c0 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 ......namespace.Composer\Package
523e0 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 ;.......interface.RootPackageInt
52400 65 72 66 61 63 65 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e erface.extends.CompletePackageIn
52420 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 terface.{......public.function.g
52440 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 etAliases();.......public.functi
52460 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a on.getMinimumStability();.......
52480 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c ..public.function.getStabilityFl
524a0 61 67 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ags();.........public.function.g
524c0 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e etReferences();.......public.fun
524e0 63 74 69 6f 6e 20 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 ction.getPreferStable();.......p
52500 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 72 72 61 79 ublic.function.setRequires(array
52520 20 24 72 65 71 75 69 72 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .$requires);.......public.functi
52540 6f 6e 20 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 64 65 76 52 65 71 75 on.setDevRequires(array.$devRequ
52560 69 72 65 73 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 ires);.}.<?php............namesp
52580 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 ace.Composer\Package;.......clas
525a0 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 43 6f 6d 70 6c 65 74 65 50 61 s.RootPackage.extends.CompletePa
525c0 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 ckage.implements.RootPackageInte
525e0 72 66 61 63 65 0a 7b 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 rface.{.protected.$minimumStabil
52600 69 74 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 70 72 65 66 65 ity.=.'stable';.protected.$prefe
52620 72 53 74 61 62 6c 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 74 61 62 rStable.=.false;.protected.$stab
52640 69 6c 69 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 ilityFlags.=.array();.protected.
52660 24 72 65 66 65 72 65 6e 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 $references.=.array();.protected
52680 20 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .$aliases.=.array();.......publi
526a0 63 20 66 75 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 c.function.setMinimumStability($
526c0 6d 69 6e 69 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 minimumStability).{.$this->minim
526e0 75 6d 53 74 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 umStability.=.$minimumStability;
52700 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 4d 69 6e 69 6d 75 .}.....public.function.getMinimu
52720 6d 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 6d 69 6e mStability().{.return.$this->min
52740 69 6d 75 6d 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 imumStability;.}.......public.fu
52760 6e 63 74 69 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 nction.setStabilityFlags(array.$
52780 73 74 61 62 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 stabilityFlags).{.$this->stabili
527a0 74 79 46 6c 61 67 73 20 3d 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 7d 0a 0a 0a 0a tyFlags.=.$stabilityFlags;.}....
527c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 .public.function.getStabilityFla
527e0 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c gs().{.return.$this->stabilityFl
52800 61 67 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 ags;.}.......public.function.set
52820 50 72 65 66 65 72 53 74 61 62 6c 65 28 24 70 72 65 66 65 72 53 74 61 62 6c 65 29 0a 7b 0a 24 74 PreferStable($preferStable).{.$t
52840 68 69 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 24 70 72 65 66 65 72 53 74 61 62 6c his->preferStable.=.$preferStabl
52860 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 72 65 66 e;.}.....public.function.getPref
52880 65 72 53 74 61 62 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 66 65 erStable().{.return.$this->prefe
528a0 72 53 74 61 62 6c 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 rStable;.}.......public.function
528c0 20 73 65 74 52 65 66 65 72 65 6e 63 65 73 28 61 72 72 61 79 20 24 72 65 66 65 72 65 6e 63 65 73 .setReferences(array.$references
528e0 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 66 65 72 65 6e 63 65 73 20 3d 20 24 72 65 66 65 72 65 6e ).{.$this->references.=.$referen
52900 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 52 65 ces;.}.....public.function.getRe
52920 66 65 72 65 6e 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 66 65 72 ferences().{.return.$this->refer
52940 65 6e 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 20 73 ences;.}.......public.function.s
52960 65 74 41 6c 69 61 73 65 73 28 61 72 72 61 79 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 24 74 68 69 etAliases(array.$aliases).{.$thi
52980 73 2d 3e 61 6c 69 61 73 65 73 20 3d 20 24 61 6c 69 61 73 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 s->aliases.=.$aliases;.}.....pub
529a0 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 72 65 74 75 lic.function.getAliases().{.retu
529c0 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a rn.$this->aliases;.}.}.<?php....
529e0 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 ........namespace.Composer\Packa
52a00 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 41 72 63 ge\Archiver;.......interface.Arc
52a20 68 69 76 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 hiverInterface.{...........publi
52a40 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 24 73 6f 75 72 63 65 73 2c 20 24 74 61 c.function.archive($sources,.$ta
52a60 72 67 65 74 2c 20 24 66 6f 72 6d 61 74 2c 20 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 73 20 3d rget,.$format,.array.$excludes.=
52a80 20 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .array());..........public.funct
52aa0 69 6f 6e 20 73 75 70 70 6f 72 74 73 28 24 66 6f 72 6d 61 74 2c 20 24 73 6f 75 72 63 65 54 79 70 ion.supports($format,.$sourceTyp
52ac0 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 70 61 63 65 e);.}.<?php............namespace
52ae0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a .Composer\Package\Archiver;.....
52b00 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 45 78 63 6c 75 64 65 46 69 6c 74 65 72 20 65 78 ..class.ComposerExcludeFilter.ex
52b20 74 65 6e 64 73 20 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 0a 7b 0a 0a 0a 0a 0a 70 75 tends.BaseExcludeFilter.{.....pu
52b40 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 73 6f 75 72 63 blic.function.__construct($sourc
52b60 65 50 61 74 68 2c 20 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 52 75 6c 65 73 29 0a 7b 0a 70 61 ePath,.array.$excludeRules).{.pa
52b80 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a rent::__construct($sourcePath);.
52ba0 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 24 74 68 69 73 2d 3e $this->excludePatterns.=.$this->
52bc0 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 73 28 24 65 78 63 6c 75 64 65 52 75 6c 65 73 29 3b generatePatterns($excludeRules);
52be0 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.
52c00 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a Composer\Package\Archiver;......
52c20 0a 63 6c 61 73 73 20 50 68 61 72 41 72 63 68 69 76 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 41 .class.PharArchiver.implements.A
52c40 72 63 68 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 20 73 74 61 rchiverInterface.{.protected.sta
52c60 74 69 63 20 24 66 6f 72 6d 61 74 73 20 3d 20 61 72 72 61 79 28 0a 27 7a 69 70 27 20 3d 3e 20 5c tic.$formats.=.array(.'zip'.=>.\
52c80 50 68 61 72 3a 3a 5a 49 50 2c 0a 27 74 61 72 27 20 3d 3e 20 5c 50 68 61 72 3a 3a 54 41 52 2c 0a Phar::ZIP,.'tar'.=>.\Phar::TAR,.
52ca0 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 63 68 69 76 65 28 24 );.....public.function.archive($
52cc0 73 6f 75 72 63 65 73 2c 20 24 74 61 72 67 65 74 2c 20 24 66 6f 72 6d 61 74 2c 20 61 72 72 61 79 sources,.$target,.$format,.array
52ce0 20 24 65 78 63 6c 75 64 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 73 6f 75 72 63 65 73 .$excludes.=.array()).{.$sources
52d00 20 3d 20 72 65 61 6c 70 61 74 68 28 24 73 6f 75 72 63 65 73 29 3b 0a 0a 0a 20 69 66 20 28 66 69 .=.realpath($sources);....if.(fi
52d20 6c 65 5f 65 78 69 73 74 73 28 24 74 61 72 67 65 74 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 74 61 le_exists($target)).{.unlink($ta
52d40 72 67 65 74 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 24 70 68 61 72 20 3d 20 6e 65 77 20 5c 50 68 61 rget);.}..try.{.$phar.=.new.\Pha
52d60 72 44 61 74 61 28 24 74 61 72 67 65 74 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 73 74 61 74 69 rData($target,.null,.null,.stati
52d80 63 3a 3a 24 66 6f 72 6d 61 74 73 5b 24 66 6f 72 6d 61 74 5d 29 3b 0a 24 66 69 6c 65 73 20 3d 20 c::$formats[$format]);.$files.=.
52da0 6e 65 77 20 41 72 63 68 69 76 61 62 6c 65 46 69 6c 65 73 46 69 6e 64 65 72 28 24 73 6f 75 72 63 new.ArchivableFilesFinder($sourc
52dc0 65 73 2c 20 24 65 78 63 6c 75 64 65 73 29 3b 0a 24 70 68 61 72 2d 3e 62 75 69 6c 64 46 72 6f 6d es,.$excludes);.$phar->buildFrom
52de0 49 74 65 72 61 74 6f 72 28 24 66 69 6c 65 73 2c 20 24 73 6f 75 72 63 65 73 29 3b 0a 0a 72 65 74 Iterator($files,.$sources);..ret
52e00 75 72 6e 20 24 74 61 72 67 65 74 3b 0a 7d 20 63 61 74 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 urn.$target;.}.catch.(\Unexpecte
52e20 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d dValueException.$e).{.$message.=
52e40 20 73 70 72 69 6e 74 66 28 22 43 6f 75 6c 64 20 6e 6f 74 20 63 72 65 61 74 65 20 61 72 63 68 69 .sprintf("Could.not.create.archi
52e60 76 65 20 27 25 73 27 20 66 72 6f 6d 20 27 25 73 27 3a 20 25 73 22 2c 0a 24 74 61 72 67 65 74 2c ve.'%s'.from.'%s':.%s",.$target,
52e80 0a 24 73 6f 75 72 63 65 73 2c 0a 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 0a 29 3b 0a 0a .$sources,.$e->getMessage().);..
52ea0 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 throw.new.\RuntimeException($mes
52ec0 73 61 67 65 2c 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c 20 24 65 29 3b 0a 7d 0a 7d 0a 0a 0a sage,.$e->getCode(),.$e);.}.}...
52ee0 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 66 6f 72 6d ..public.function.supports($form
52f00 61 74 2c 20 24 73 6f 75 72 63 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 at,.$sourceType).{.return.isset(
52f20 73 74 61 74 69 63 3a 3a 24 66 6f 72 6d 61 74 73 5b 24 66 6f 72 6d 61 74 5d 29 3b 0a 7d 0a 7d 0a static::$formats[$format]);.}.}.
52f40 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
52f60 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f ser\Package\Archiver;..use.Symfo
52f80 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 61 62 73 74 72 61 63 ny\Component\Finder;.....abstrac
52fa0 74 20 63 6c 61 73 73 20 42 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 0a 7b 0a 0a 0a 0a 70 t.class.BaseExcludeFilter.{....p
52fc0 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 50 61 74 68 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 rotected.$sourcePath;.....protec
52fe0 74 65 64 20 24 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ted.$excludePatterns;.....public
53000 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 .function.__construct($sourcePat
53020 68 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 50 61 74 68 20 3d 20 24 73 6f 75 72 63 65 h).{.$this->sourcePath.=.$source
53040 50 61 74 68 3b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 61 Path;.$this->excludePatterns.=.a
53060 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rray();.}............public.func
53080 74 69 6f 6e 20 66 69 6c 74 65 72 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 24 65 78 63 6c tion.filter($relativePath,.$excl
530a0 75 64 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 ude).{.foreach.($this->excludePa
530c0 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 44 61 74 61 29 20 7b 0a 6c 69 73 74 28 24 tterns.as.$patternData).{.list($
530e0 70 61 74 74 65 72 6e 2c 20 24 6e 65 67 61 74 65 2c 20 24 73 74 72 69 70 4c 65 61 64 69 6e 67 53 pattern,.$negate,.$stripLeadingS
53100 6c 61 73 68 29 20 3d 20 24 70 61 74 74 65 72 6e 44 61 74 61 3b 0a 0a 69 66 20 28 24 73 74 72 69 lash).=.$patternData;..if.($stri
53120 70 4c 65 61 64 69 6e 67 53 6c 61 73 68 29 20 7b 0a 24 70 61 74 68 20 3d 20 73 75 62 73 74 72 28 pLeadingSlash).{.$path.=.substr(
53140 24 72 65 6c 61 74 69 76 65 50 61 74 68 2c 20 31 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 74 $relativePath,.1);.}.else.{.$pat
53160 68 20 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d h.=.$relativePath;.}..if.(preg_m
53180 61 74 63 68 28 24 70 61 74 74 65 72 6e 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 65 78 63 6c 75 64 atch($pattern,.$path)).{.$exclud
531a0 65 20 3d 20 21 24 6e 65 67 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 65 78 63 6c 75 e.=.!$negate;.}.}..return.$exclu
531c0 64 65 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 69 6f de;.}..........protected.functio
531e0 6e 20 70 61 72 73 65 4c 69 6e 65 73 28 61 72 72 61 79 20 24 6c 69 6e 65 73 2c 20 24 6c 69 6e 65 n.parseLines(array.$lines,.$line
53200 50 61 72 73 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 0a 61 Parser).{.return.array_filter(.a
53220 72 72 61 79 5f 6d 61 70 28 0a 66 75 6e 63 74 69 6f 6e 20 28 24 6c 69 6e 65 29 20 75 73 65 20 28 rray_map(.function.($line).use.(
53240 24 6c 69 6e 65 50 61 72 73 65 72 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 74 72 69 6d 28 24 6c 69 6e $lineParser).{.$line.=.trim($lin
53260 65 29 3b 0a 0a 24 63 6f 6d 6d 65 6e 74 48 61 73 68 20 3d 20 73 74 72 70 6f 73 28 24 6c 69 6e 65 e);..$commentHash.=.strpos($line
53280 2c 20 27 23 27 29 3b 0a 69 66 20 28 24 63 6f 6d 6d 65 6e 74 48 61 73 68 20 21 3d 3d 20 66 61 6c ,.'#');.if.($commentHash.!==.fal
532a0 73 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 73 75 62 73 74 72 28 24 6c 69 6e 65 2c 20 30 2c 20 24 se).{.$line.=.substr($line,.0,.$
532c0 63 6f 6d 6d 65 6e 74 48 61 73 68 29 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 6e 65 29 20 7b 0a 72 65 commentHash);.}..if.($line).{.re
532e0 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 6c 69 6e 65 50 61 72 73 65 72 2c turn.call_user_func($lineParser,
53300 20 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 2c 20 24 6c 69 6e .$line);.}..return.null;.},.$lin
53320 65 73 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 70 61 74 74 65 72 6e 29 20 7b 0a 72 65 74 75 72 es),.function.($pattern).{.retur
53340 6e 20 24 70 61 74 74 65 72 6e 20 21 3d 3d 20 6e 75 6c 6c 3b 0a 7d 0a 29 3b 0a 7d 0a 0a 0a 0a 0a n.$pattern.!==.null;.}.);.}.....
53360 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 6e 65 72 61 74 65 50 ....protected.function.generateP
53380 61 74 74 65 72 6e 73 28 24 72 75 6c 65 73 29 0a 7b 0a 24 70 61 74 74 65 72 6e 73 20 3d 20 61 72 atterns($rules).{.$patterns.=.ar
533a0 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 73 20 61 73 20 24 72 75 6c 65 29 ray();.foreach.($rules.as.$rule)
533c0 20 7b 0a 24 70 61 74 74 65 72 6e 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 .{.$patterns[].=.$this->generate
533e0 50 61 74 74 65 72 6e 28 24 72 75 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 74 74 65 Pattern($rule);.}..return.$patte
53400 72 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f rns;.}.........protected.functio
53420 6e 20 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 6e 28 24 72 75 6c 65 29 0a 7b 0a 24 6e 65 67 61 n.generatePattern($rule).{.$nega
53440 74 65 20 3d 20 66 61 6c 73 65 3b 0a 24 70 61 74 74 65 72 6e 20 3d 20 27 23 27 3b 0a 0a 69 66 20 te.=.false;.$pattern.=.'#';..if.
53460 28 73 74 72 6c 65 6e 28 24 72 75 6c 65 29 20 26 26 20 24 72 75 6c 65 5b 30 5d 20 3d 3d 3d 20 27 (strlen($rule).&&.$rule[0].===.'
53480 21 27 29 20 7b 0a 24 6e 65 67 61 74 65 20 3d 20 74 72 75 65 3b 0a 24 72 75 6c 65 20 3d 20 73 75 !').{.$negate.=.true;.$rule.=.su
534a0 62 73 74 72 28 24 72 75 6c 65 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 72 bstr($rule,.1);.}..if.(strlen($r
534c0 75 6c 65 29 20 26 26 20 24 72 75 6c 65 5b 30 5d 20 3d 3d 3d 20 27 2f 27 29 20 7b 0a 24 70 61 74 ule).&&.$rule[0].===.'/').{.$pat
534e0 74 65 72 6e 20 2e 3d 20 27 5e 2f 27 3b 0a 24 72 75 6c 65 20 3d 20 73 75 62 73 74 72 28 24 72 75 tern..=.'^/';.$rule.=.substr($ru
53500 6c 65 2c 20 31 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 le,.1);.}.elseif.(false.===.strp
53520 6f 73 28 24 72 75 6c 65 2c 20 27 2f 27 29 20 7c 7c 20 73 74 72 6c 65 6e 28 24 72 75 6c 65 29 20 os($rule,.'/').||.strlen($rule).
53540 2d 20 31 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 72 75 6c 65 2c 20 27 2f 27 29 29 20 7b 0a 24 70 -.1.===.strpos($rule,.'/')).{.$p
53560 61 74 74 65 72 6e 20 2e 3d 20 27 2f 27 3b 0a 7d 0a 0a 24 70 61 74 74 65 72 6e 20 2e 3d 20 73 75 attern..=.'/';.}..$pattern..=.su
53580 62 73 74 72 28 46 69 6e 64 65 72 5c 47 6c 6f 62 3a 3a 74 6f 52 65 67 65 78 28 24 72 75 6c 65 29 bstr(Finder\Glob::toRegex($rule)
535a0 2c 20 32 2c 20 2d 32 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 70 61 74 74 65 72 6e ,.2,.-2);..return.array($pattern
535c0 20 2e 20 27 23 27 2c 20 24 6e 65 67 61 74 65 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 ...'#',.$negate,.false);.}.}.<?p
535e0 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
53600 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 \Package\Archiver;.........class
53620 20 47 69 74 45 78 63 6c 75 64 65 46 69 6c 74 65 72 20 65 78 74 65 6e 64 73 20 42 61 73 65 45 78 .GitExcludeFilter.extends.BaseEx
53640 63 6c 75 64 65 46 69 6c 74 65 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 cludeFilter.{......public.functi
53660 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 0a 7b 0a 70 61 on.__construct($sourcePath).{.pa
53680 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a rent::__construct($sourcePath);.
536a0 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e .if.(file_exists($sourcePath.'/.
536c0 67 69 74 69 67 6e 6f 72 65 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 gitignore')).{.$this->excludePat
536e0 74 65 72 6e 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e 65 73 28 0a 66 69 6c 65 28 terns.=.$this->parseLines(.file(
53700 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 69 67 6e 6f 72 65 27 29 2c 0a 61 72 72 61 $sourcePath.'/.gitignore'),.arra
53720 79 28 24 74 68 69 73 2c 20 27 70 61 72 73 65 47 69 74 49 67 6e 6f 72 65 4c 69 6e 65 27 29 0a 29 y($this,.'parseGitIgnoreLine').)
53740 3b 0a 7d 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 68 2e ;.}.if.(file_exists($sourcePath.
53760 27 2f 2e 67 69 74 61 74 74 72 69 62 75 74 65 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 '/.gitattributes')).{.$this->exc
53780 6c 75 64 65 50 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 ludePatterns.=.array_merge(.$thi
537a0 73 2d 3e 65 78 63 6c 75 64 65 50 61 74 74 65 72 6e 73 2c 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 s->excludePatterns,.$this->parse
537c0 4c 69 6e 65 73 28 0a 66 69 6c 65 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 67 69 74 61 74 Lines(.file($sourcePath.'/.gitat
537e0 74 72 69 62 75 74 65 73 27 29 2c 0a 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 70 61 72 73 65 47 tributes'),.array($this,.'parseG
53800 69 74 41 74 74 72 69 62 75 74 65 73 4c 69 6e 65 27 29 0a 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a itAttributesLine').));.}.}......
53820 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 47 69 74 49 67 6e 6f 72 ...public.function.parseGitIgnor
53840 65 4c 69 6e 65 28 24 6c 69 6e 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 6e eLine($line).{.return.$this->gen
53860 65 72 61 74 65 50 61 74 74 65 72 6e 28 24 6c 69 6e 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 eratePattern($line);.}.........p
53880 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 47 69 74 41 74 74 72 69 62 75 74 65 ublic.function.parseGitAttribute
538a0 73 4c 69 6e 65 28 24 6c 69 6e 65 29 0a 7b 0a 24 70 61 72 74 73 20 3d 20 70 72 65 67 5f 73 70 6c sLine($line).{.$parts.=.preg_spl
538c0 69 74 28 27 23 5c 73 2b 23 27 2c 20 24 6c 69 6e 65 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 it('#\s+#',.$line);..if.(count($
538e0 70 61 72 74 73 29 20 21 3d 20 32 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 parts).!=.2).{.return.null;.}..i
53900 66 20 28 24 70 61 72 74 73 5b 31 5d 20 3d 3d 3d 20 27 65 78 70 6f 72 74 2d 69 67 6e 6f 72 65 27 f.($parts[1].===.'export-ignore'
53920 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 61 74 74 65 72 ).{.return.$this->generatePatter
53940 6e 28 24 70 61 72 74 73 5b 30 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a n($parts[0]);.}.}.}.<?php.......
53960 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\
53980 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c Archiver;..use.Composer\Util\Fil
539a0 65 73 79 73 74 65 6d 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 esystem;..use.Symfony\Component\
539c0 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 63 68 69 76 61 62 6c Finder;..........class.Archivabl
539e0 65 46 69 6c 65 73 46 69 6e 64 65 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 eFilesFinder.extends.\FilterIter
53a00 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6e 64 65 72 3b 0a 0a 0a 0a ator.{....protected.$finder;....
53a20 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(
53a40 24 73 6f 75 72 63 65 73 2c 20 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 73 29 0a 7b 0a 24 66 73 $sources,.array.$excludes).{.$fs
53a60 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 0a 24 73 6f 75 72 63 65 73 20 3d .=.new.Filesystem();..$sources.=
53a80 20 24 66 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 73 6f 75 72 63 65 73 29 3b 0a 0a .$fs->normalizePath($sources);..
53aa0 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 0a 6e 65 77 20 48 67 45 78 63 6c 75 64 65 46 $filters.=.array(.new.HgExcludeF
53ac0 69 6c 74 65 72 28 24 73 6f 75 72 63 65 73 29 2c 0a 6e 65 77 20 47 69 74 45 78 63 6c 75 64 65 46 ilter($sources),.new.GitExcludeF
53ae0 69 6c 74 65 72 28 24 73 6f 75 72 63 65 73 29 2c 0a 6e 65 77 20 43 6f 6d 70 6f 73 65 72 45 78 63 ilter($sources),.new.ComposerExc
53b00 6c 75 64 65 46 69 6c 74 65 72 28 24 73 6f 75 72 63 65 73 2c 20 24 65 78 63 6c 75 64 65 73 29 2c ludeFilter($sources,.$excludes),
53b20 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 46 69 6e 64 65 72 5c .);..$this->finder.=.new.Finder\
53b40 46 69 6e 64 65 72 28 29 3b 0a 0a 24 66 69 6c 74 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 5c Finder();..$filter.=.function.(\
53b60 53 70 6c 46 69 6c 65 49 6e 66 6f 20 24 66 69 6c 65 29 20 75 73 65 20 28 24 73 6f 75 72 63 65 73 SplFileInfo.$file).use.($sources
53b80 2c 20 24 66 69 6c 74 65 72 73 2c 20 24 66 73 29 20 7b 0a 24 72 65 6c 61 74 69 76 65 50 61 74 68 ,.$filters,.$fs).{.$relativePath
53ba0 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 5e 27 2e 70 72 65 67 5f 71 75 6f 74 65 .=.preg_replace(.'#^'.preg_quote
53bc0 28 24 73 6f 75 72 63 65 73 2c 20 27 23 27 29 2e 27 23 27 2c 0a 27 27 2c 0a 24 66 73 2d 3e 6e 6f ($sources,.'#').'#',.'',.$fs->no
53be0 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 rmalizePath($file->getRealPath()
53c00 29 0a 29 3b 0a 0a 24 65 78 63 6c 75 64 65 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 ).);..$exclude.=.false;.foreach.
53c20 28 24 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 24 65 78 63 6c 75 64 65 ($filters.as.$filter).{.$exclude
53c40 20 3d 20 24 66 69 6c 74 65 72 2d 3e 66 69 6c 74 65 72 28 24 72 65 6c 61 74 69 76 65 50 61 74 68 .=.$filter->filter($relativePath
53c60 2c 20 24 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 21 24 65 78 63 6c 75 64 65 ,.$exclude);.}..return.!$exclude
53c80 3b 0a 7d 3b 0a 0a 69 66 20 28 6d 65 74 68 6f 64 5f 65 78 69 73 74 73 28 24 66 69 6c 74 65 72 2c ;.};..if.(method_exists($filter,
53ca0 20 27 62 69 6e 64 54 6f 27 29 29 20 7b 0a 24 66 69 6c 74 65 72 20 3d 20 24 66 69 6c 74 65 72 2d .'bindTo')).{.$filter.=.$filter-
53cc0 3e 62 69 6e 64 54 6f 28 6e 75 6c 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 66 69 6e 64 65 72 0a >bindTo(null);.}..$this->finder.
53ce0 2d 3e 69 6e 28 24 73 6f 75 72 63 65 73 29 0a 2d 3e 66 69 6c 74 65 72 28 24 66 69 6c 74 65 72 29 ->in($sources).->filter($filter)
53d00 0a 2d 3e 69 67 6e 6f 72 65 56 43 53 28 74 72 75 65 29 0a 2d 3e 69 67 6e 6f 72 65 44 6f 74 46 69 .->ignoreVCS(true).->ignoreDotFi
53d20 6c 65 73 28 66 61 6c 73 65 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 les(false);..parent::__construct
53d40 28 24 74 68 69 73 2d 3e 66 69 6e 64 65 72 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 29 3b 0a ($this->finder->getIterator());.
53d60 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 72 65 }..public.function.accept().{.re
53d80 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 2d turn.!$this->getInnerIterator()-
53da0 3e 63 75 72 72 65 6e 74 28 29 2d 3e 69 73 44 69 72 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a >current()->isDir();.}.}.<?php..
53dc0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ..........namespace.Composer\Pac
53de0 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 kage\Archiver;..use.Composer\Dow
53e00 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 20 43 6f 6d nloader\DownloadManager;.use.Com
53e20 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;.
53e40 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 6b 61 67 65 use.Composer\Package\RootPackage
53e60 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 73 74 65 6d 3b 0a ;.use.Composer\Util\Filesystem;.
53e80 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 0a 0a 0a 0a use.Composer\Json\JsonFile;.....
53ea0 0a 63 6c 61 73 73 20 41 72 63 68 69 76 65 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 6f 74 65 63 74 65 .class.ArchiveManager.{.protecte
53ec0 64 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 d.$downloadManager;..protected.$
53ee0 61 72 63 68 69 76 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 archivers.=.array();.....protect
53f00 65 64 20 24 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 20 3d 20 74 72 75 65 3b 0a 0a 0a 0a 0a 70 ed.$overwriteFiles.=.true;.....p
53f20 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 44 6f 77 6e 6c ublic.function.__construct(Downl
53f40 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 29 0a 7b 0a 24 oadManager.$downloadManager).{.$
53f60 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 64 6f 77 6e 6c 6f 61 this->downloadManager.=.$downloa
53f80 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 6e 20 dManager;.}.....public.function.
53fa0 61 64 64 41 72 63 68 69 76 65 72 28 41 72 63 68 69 76 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 addArchiver(ArchiverInterface.$a
53fc0 72 63 68 69 76 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 72 73 5b 5d 20 3d 20 rchiver).{.$this->archivers[].=.
53fe0 24 61 72 63 68 69 76 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $archiver;.}.........public.func
54000 74 69 6f 6e 20 73 65 74 4f 76 65 72 77 72 69 74 65 46 69 6c 65 73 28 24 6f 76 65 72 77 72 69 74 tion.setOverwriteFiles($overwrit
54020 65 46 69 6c 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 20 eFiles).{.$this->overwriteFiles.
54040 3d 20 24 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 =.$overwriteFiles;..return.$this
54060 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 74 50 ;.}.........public.function.getP
54080 61 63 6b 61 67 65 46 69 6c 65 6e 61 6d 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 ackageFilename(PackageInterface.
540a0 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 6e 61 6d 65 50 61 72 74 73 20 3d 20 61 72 72 61 79 28 70 $package).{.$nameParts.=.array(p
540c0 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5b 5e 61 2d 7a 30 2d 39 2d 5f 2e 5d 23 69 27 2c 20 27 reg_replace('#[^a-z0-9-_.]#i',.'
540e0 2d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 0a 69 66 20 28 -',.$package->getName()));..if.(
54100 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 66 30 2d 39 5d 7b 34 30 7d 24 7d 27 2c 20 24 preg_match('{^[a-f0-9]{40}$}',.$
54120 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 20 7b 0a package->getDistReference())).{.
54140 24 6e 61 6d 65 50 61 72 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6e 61 6d 65 50 61 $nameParts.=.array_merge($namePa
54160 72 74 73 2c 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 rts,.array($package->getDistRefe
54180 72 65 6e 63 65 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 54 79 70 65 28 29 rence(),.$package->getDistType()
541a0 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 61 6d 65 50 61 72 74 73 20 3d 20 61 72 72 61 79 5f ));.}.else.{.$nameParts.=.array_
541c0 6d 65 72 67 65 28 24 6e 61 6d 65 50 61 72 74 73 2c 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 merge($nameParts,.array($package
541e0 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e ->getPrettyVersion(),.$package->
54200 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 70 61 getDistReference()));.}..if.($pa
54220 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 7b 0a 24 ckage->getSourceReference()).{.$
54240 6e 61 6d 65 50 61 72 74 73 5b 5d 20 3d 20 73 75 62 73 74 72 28 73 68 61 31 28 24 70 61 63 6b 61 nameParts[].=.substr(sha1($packa
54260 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 2c 20 30 2c 20 36 29 ge->getSourceReference()),.0,.6)
54280 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 69 6d 70 6c 6f 64 65 28 27 2d 27 2c 20 61 72 72 61 79 5f ;.}..$name.=.implode('-',.array_
542a0 66 69 6c 74 65 72 28 24 6e 61 6d 65 50 61 72 74 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 70 29 filter($nameParts,.function.($p)
542c0 20 7b 0a 72 65 74 75 72 6e 20 21 65 6d 70 74 79 28 24 70 29 3b 0a 7d 29 29 3b 0a 0a 72 65 74 75 .{.return.!empty($p);.}));..retu
542e0 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 2d 27 2c 20 24 6e 61 6d 65 29 3b rn.str_replace('/',.'-',.$name);
54300 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 .}............public.function.ar
54320 63 68 69 76 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c chive(PackageInterface.$package,
54340 20 24 66 6f 72 6d 61 74 2c 20 24 74 61 72 67 65 74 44 69 72 29 0a 7b 0a 69 66 20 28 65 6d 70 74 .$format,.$targetDir).{.if.(empt
54360 79 28 24 66 6f 72 6d 61 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 y($format)).{.throw.new.\Invalid
54380 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 46 6f 72 6d 61 74 20 6d 75 73 74 20 62 ArgumentException('Format.must.b
543a0 65 20 73 70 65 63 69 66 69 65 64 27 29 3b 0a 7d 0a 0a 0a 20 24 75 73 61 62 6c 65 41 72 63 68 69 e.specified');.}....$usableArchi
543c0 76 65 72 20 3d 20 6e 75 6c 6c 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 72 63 68 ver.=.null;.foreach.($this->arch
543e0 69 76 65 72 73 20 61 73 20 24 61 72 63 68 69 76 65 72 29 20 7b 0a 69 66 20 28 24 61 72 63 68 69 ivers.as.$archiver).{.if.($archi
54400 76 65 72 2d 3e 73 75 70 70 6f 72 74 73 28 24 66 6f 72 6d 61 74 2c 20 24 70 61 63 6b 61 67 65 2d ver->supports($format,.$package-
54420 3e 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 29 29 20 7b 0a 24 75 73 61 62 6c 65 41 72 63 68 >getSourceType())).{.$usableArch
54440 69 76 65 72 20 3d 20 24 61 72 63 68 69 76 65 72 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 0a 20 iver.=.$archiver;.break;.}.}....
54460 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 75 73 61 62 6c 65 41 72 63 68 69 76 65 72 29 20 7b 0a if.(null.===.$usableArchiver).{.
54480 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 69 throw.new.\RuntimeException(spri
544a0 6e 74 66 28 27 4e 6f 20 61 72 63 68 69 76 65 72 20 66 6f 75 6e 64 20 74 6f 20 73 75 70 70 6f 72 ntf('No.archiver.found.to.suppor
544c0 74 20 25 73 20 66 6f 72 6d 61 74 27 2c 20 24 66 6f 72 6d 61 74 29 29 3b 0a 7d 0a 0a 24 66 69 6c t.%s.format',.$format));.}..$fil
544e0 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 70 61 63 esystem.=.new.Filesystem();.$pac
54500 6b 61 67 65 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 46 69 6c 65 kageName.=.$this->getPackageFile
54520 6e 61 6d 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e name($package);....$filesystem->
54540 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 74 44 69 72 ensureDirectoryExists($targetDir
54560 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 );.$target.=.realpath($targetDir
54580 29 2e 27 2f 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 2e 27 2e 27 2e 24 66 6f 72 6d 61 74 3b 0a ).'/'.$packageName.'.'.$format;.
545a0 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 $filesystem->ensureDirectoryExis
545c0 74 73 28 64 69 72 6e 61 6d 65 28 24 74 61 72 67 65 74 29 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 ts(dirname($target));..if.(!$thi
545e0 73 2d 3e 6f 76 65 72 77 72 69 74 65 46 69 6c 65 73 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 s->overwriteFiles.&&.file_exists
54600 28 24 74 61 72 67 65 74 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a ($target)).{.return.$target;.}..
54620 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b if.($package.instanceof.RootPack
54640 61 67 65 29 20 7b 0a 24 73 6f 75 72 63 65 50 61 74 68 20 3d 20 72 65 61 6c 70 61 74 68 28 27 2e age).{.$sourcePath.=.realpath('.
54660 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 73 6f 75 72 63 65 50 61 74 68 20 3d 20 73 79 73 ');.}.else.{...$sourcePath.=.sys
54680 5f 67 65 74 5f 74 65 6d 70 5f 64 69 72 28 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 5f 61 72 63 68 69 _get_temp_dir().'/composer_archi
546a0 76 65 72 2f 27 2e 24 70 61 63 6b 61 67 65 4e 61 6d 65 3b 0a 24 66 69 6c 65 73 79 73 74 65 6d 2d ver/'.$packageName;.$filesystem-
546c0 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 >ensureDirectoryExists($sourcePa
546e0 74 68 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e th);....$this->downloadManager->
54700 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 73 6f 75 72 63 65 50 61 74 68 29 3b download($package,.$sourcePath);
54720 0a 0a 0a 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 63 6f 6d 70 6f 73 65 72 4a 73 6f ....if.(file_exists($composerJso
54740 6e 50 61 74 68 20 3d 20 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a nPath.=.$sourcePath.'/composer.j
54760 73 6f 6e 27 29 29 20 7b 0a 24 6a 73 6f 6e 46 69 6c 65 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c son')).{.$jsonFile.=.new.JsonFil
54780 65 28 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 50 61 74 68 29 3b 0a 24 6a 73 6f 6e 44 61 74 61 20 e($composerJsonPath);.$jsonData.
547a0 3d 20 24 6a 73 6f 6e 46 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 =.$jsonFile->read();.if.(!empty(
547c0 24 6a 73 6f 6e 44 61 74 61 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d 29 $jsonData['archive']['exclude'])
547e0 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 ).{.$package->setArchiveExcludes
54800 28 24 6a 73 6f 6e 44 61 74 61 5b 27 61 72 63 68 69 76 65 27 5d 5b 27 65 78 63 6c 75 64 65 27 5d ($jsonData['archive']['exclude']
54820 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 24 61 72 63 68 69 76 65 50 61 74 68 20 3d 20 24 75 73 61 62 );.}.}.}....$archivePath.=.$usab
54840 6c 65 41 72 63 68 69 76 65 72 2d 3e 61 72 63 68 69 76 65 28 24 73 6f 75 72 63 65 50 61 74 68 2c leArchiver->archive($sourcePath,
54860 20 24 74 61 72 67 65 74 2c 20 24 66 6f 72 6d 61 74 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 .$target,.$format,.$package->get
54880 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 29 3b 0a 0a 0a 20 69 66 20 28 21 24 70 61 63 ArchiveExcludes());....if.(!$pac
548a0 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 6f 6f 74 50 61 63 6b 61 67 65 29 20 7b 0a 24 kage.instanceof.RootPackage).{.$
548c0 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 73 6f 75 filesystem->removeDirectory($sou
548e0 72 63 65 50 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 72 63 68 69 76 65 50 61 74 68 rcePath);.}..return.$archivePath
54900 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
54920 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 0a 75 73 65 .Composer\Package\Archiver;..use
54940 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 0a 0a 0a 0a 0a .Symfony\Component\Finder;......
54960 0a 63 6c 61 73 73 20 48 67 45 78 63 6c 75 64 65 46 69 6c 74 65 72 20 65 78 74 65 6e 64 73 20 42 .class.HgExcludeFilter.extends.B
54980 61 73 65 45 78 63 6c 75 64 65 46 69 6c 74 65 72 0a 7b 0a 63 6f 6e 73 74 20 48 47 5f 49 47 4e 4f aseExcludeFilter.{.const.HG_IGNO
549a0 52 45 5f 52 45 47 45 58 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 48 47 5f 49 47 4e 4f 52 45 5f 47 4c RE_REGEX.=.1;.const.HG_IGNORE_GL
549c0 4f 42 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 74 74 65 72 6e 4d OB.=.2;......protected.$patternM
549e0 6f 64 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 5f 5f 63 6f 6e ode;.......public.function.__con
54a00 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f struct($sourcePath).{.parent::__
54a20 63 6f 6e 73 74 72 75 63 74 28 24 73 6f 75 72 63 65 50 61 74 68 29 3b 0a 0a 24 74 68 69 73 2d 3e construct($sourcePath);..$this->
54a40 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f 52 45 patternMode.=.self::HG_IGNORE_RE
54a60 47 45 58 3b 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 73 6f 75 72 63 65 50 61 74 GEX;..if.(file_exists($sourcePat
54a80 68 2e 27 2f 2e 68 67 69 67 6e 6f 72 65 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 h.'/.hgignore')).{.$this->exclud
54aa0 65 50 61 74 74 65 72 6e 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 4c 69 6e 65 73 28 0a 66 ePatterns.=.$this->parseLines(.f
54ac0 69 6c 65 28 24 73 6f 75 72 63 65 50 61 74 68 2e 27 2f 2e 68 67 69 67 6e 6f 72 65 27 29 2c 0a 61 ile($sourcePath.'/.hgignore'),.a
54ae0 72 72 61 79 28 24 74 68 69 73 2c 20 27 70 61 72 73 65 48 67 49 67 6e 6f 72 65 4c 69 6e 65 27 29 rray($this,.'parseHgIgnoreLine')
54b00 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .);.}.}.........public.function.
54b20 70 61 72 73 65 48 67 49 67 6e 6f 72 65 4c 69 6e 65 28 24 6c 69 6e 65 29 0a 7b 0a 69 66 20 28 70 parseHgIgnoreLine($line).{.if.(p
54b40 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 73 79 6e 74 61 78 5c 73 2a 3a 5c 73 2a 28 67 6c 6f 62 7c reg_match('#^syntax\s*:\s*(glob|
54b60 72 65 67 65 78 70 29 24 23 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a regexp)$#',.$line,.$matches)).{.
54b80 69 66 20 28 24 6d 61 74 63 68 65 73 5b 31 5d 20 3d 3d 3d 20 27 67 6c 6f 62 27 29 20 7b 0a 24 74 if.($matches[1].===.'glob').{.$t
54ba0 68 69 73 2d 3e 70 61 74 74 65 72 6e 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 48 47 5f 49 47 4e 4f his->patternMode.=.self::HG_IGNO
54bc0 52 45 5f 47 4c 4f 42 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e RE_GLOB;.}.else.{.$this->pattern
54be0 4d 6f 64 65 20 3d 20 73 65 6c 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f 52 45 47 45 58 3b 0a 7d 0a Mode.=.self::HG_IGNORE_REGEX;.}.
54c00 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 61 74 74 .return.null;.}..if.($this->patt
54c20 65 72 6e 4d 6f 64 65 20 3d 3d 20 73 65 6c 66 3a 3a 48 47 5f 49 47 4e 4f 52 45 5f 47 4c 4f 42 29 ernMode.==.self::HG_IGNORE_GLOB)
54c40 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 46 72 6f 6d 47 6c 6f 62 .{.return.$this->patternFromGlob
54c60 28 24 6c 69 6e 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ($line);.}.else.{.return.$this->
54c80 70 61 74 74 65 72 6e 46 72 6f 6d 52 65 67 65 78 28 24 6c 69 6e 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a patternFromRegex($line);.}.}....
54ca0 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 74 74 65 72 6e 46 .....protected.function.patternF
54cc0 72 6f 6d 47 6c 6f 62 28 24 6c 69 6e 65 29 0a 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 27 23 27 2e romGlob($line).{.$pattern.=.'#'.
54ce0 73 75 62 73 74 72 28 46 69 6e 64 65 72 5c 47 6c 6f 62 3a 3a 74 6f 52 65 67 65 78 28 24 6c 69 6e substr(Finder\Glob::toRegex($lin
54d00 65 29 2c 20 32 2c 20 2d 31 29 2e 27 23 27 3b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 74 72 5f 72 e),.2,.-1).'#';.$pattern.=.str_r
54d20 65 70 6c 61 63 65 28 27 5b 5e 2f 5d 2a 27 2c 20 27 2e 2a 27 2c 20 24 70 61 74 74 65 72 6e 29 3b eplace('[^/]*',.'.*',.$pattern);
54d40 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 70 61 74 74 65 72 6e 2c 20 66 61 6c 73 65 2c 20 ..return.array($pattern,.false,.
54d60 74 72 75 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 6f 6e true);.}.........public.function
54d80 20 70 61 74 74 65 72 6e 46 72 6f 6d 52 65 67 65 78 28 24 6c 69 6e 65 29 0a 7b 0a 0a 20 24 70 61 .patternFromRegex($line).{...$pa
54da0 74 74 65 72 6e 20 3d 20 27 23 27 2e 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 28 28 3f 3a 5c ttern.=.'#'.preg_replace('/((?:\
54dc0 5c 5c 5c 5c 5c 5c 5c 29 2a 29 28 5c 5c 5c 5c 3f 29 23 2f 27 2c 20 27 5c 31 5c 32 5c 32 5c 5c 23 \\\\\\\)*)(\\\\?)#/',.'\1\2\2\\#
54de0 27 2c 20 24 6c 69 6e 65 29 2e 27 23 27 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 70 61 ',.$line).'#';..return.array($pa
54e00 74 74 65 72 6e 2c 20 66 61 6c 73 65 2c 20 74 72 75 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a ttern,.false,.true);.}.}.<?php..
54e20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 ..........namespace.Composer\Pac
54e40 6b 61 67 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 6f 6f 74 41 6c 69 61 73 50 61 63 6b 61 67 65 kage;.....class.RootAliasPackage
54e60 20 65 78 74 65 6e 64 73 20 41 6c 69 61 73 50 61 63 6b 61 67 65 20 69 6d 70 6c 65 6d 65 6e 74 73 .extends.AliasPackage.implements
54e80 20 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 75 62 6c 69 63 20 66 .RootPackageInterface.{.public.f
54ea0 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 52 6f 6f 74 50 61 63 6b 61 67 65 49 unction.__construct(RootPackageI
54ec0 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 6f 6e 2c 20 24 70 72 nterface.$aliasOf,.$version,.$pr
54ee0 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 63 6f 6e 73 74 72 75 ettyVersion).{.parent::__constru
54f00 63 74 28 24 61 6c 69 61 73 4f 66 2c 20 24 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 ct($aliasOf,.$version,.$prettyVe
54f20 72 73 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 rsion);.}.....public.function.ge
54f40 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 73 tAliases().{.return.$this->alias
54f60 4f 66 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 Of->getAliases();.}.....public.f
54f80 75 6e 63 74 69 6f 6e 20 67 65 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 0a 7b 0a unction.getMinimumStability().{.
54fa0 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 4d 69 6e 69 6d 75 return.$this->aliasOf->getMinimu
54fc0 6d 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 mStability();.}.....public.funct
54fe0 69 6f 6e 20 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 7b 0a 72 65 74 75 72 6e ion.getStabilityFlags().{.return
55000 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 .$this->aliasOf->getStabilityFla
55020 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 6e 20 67 65 74 52 gs();.}.....public.function.getR
55040 65 66 65 72 65 6e 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 eferences().{.return.$this->alia
55060 73 4f 66 2d 3e 67 65 74 52 65 66 65 72 65 6e 63 65 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c sOf->getReferences();.}.....publ
55080 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 65 72 53 74 61 62 6c 65 28 29 0a 7b 0a ic.function.getPreferStable().{.
550a0 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 50 72 65 66 65 72 return.$this->aliasOf->getPrefer
550c0 53 74 61 62 6c 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 Stable();.}.....public.function.
550e0 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 29 0a 7b 0a 72 65 setRequires(array.$require).{.re
55100 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 73 65 74 52 65 71 75 69 72 65 73 turn.$this->aliasOf->setRequires
55120 28 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ($require);.}.....public.functio
55140 6e 20 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 64 65 76 52 65 71 75 69 n.setDevRequires(array.$devRequi
55160 72 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 74 re).{.return.$this->aliasOf->set
55180 44 65 76 52 65 71 75 69 72 65 73 28 24 64 65 76 52 65 71 75 69 72 65 29 3b 0a 7d 0a 0a 70 75 62 DevRequires($devRequire);.}..pub
551a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6c 6f 6e 65 28 29 0a 7b 0a 70 61 72 65 6e 74 3a lic.function.__clone().{.parent:
551c0 3a 5f 5f 63 6c 6f 6e 65 28 29 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 20 3d 20 63 6c 6f :__clone();.$this->aliasOf.=.clo
551e0 6e 65 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ne.$this->aliasOf;.}.}.<?php....
55200 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 ........namespace.Composer\Packa
55220 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 56 65 72 73 69 6f ge;..use.Composer\Package\Versio
55240 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 50 61 63 n\VersionParser;.......class.Pac
55260 6b 61 67 65 20 65 78 74 65 6e 64 73 20 42 61 73 65 50 61 63 6b 61 67 65 0a 7b 0a 70 72 6f 74 65 kage.extends.BasePackage.{.prote
55280 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 72 67 65 74 44 69 72 cted.$type;.protected.$targetDir
552a0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 3b ;.protected.$installationSource;
552c0 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 54 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 .protected.$sourceType;.protecte
552e0 64 20 24 73 6f 75 72 63 65 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 75 72 63 65 52 d.$sourceUrl;.protected.$sourceR
55300 65 66 65 72 65 6e 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 54 79 70 65 3b 0a 70 eference;.protected.$distType;.p
55320 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 55 72 6c 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 rotected.$distUrl;.protected.$di
55340 73 74 52 65 66 65 72 65 6e 63 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 69 73 74 53 68 61 31 stReference;.protected.$distSha1
55360 43 68 65 63 6b 73 75 6d 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 Checksum;.protected.$version;.pr
55380 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 74 65 otected.$prettyVersion;.protecte
553a0 64 20 24 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 65 78 74 72 61 d.$releaseDate;.protected.$extra
553c0 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 69 65 73 20 .=.array();.protected.$binaries.
553e0 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 3b 0a 70 72 6f 74 65 =.array();.protected.$dev;.prote
55400 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 69 cted.$stability;.protected.$noti
55420 66 69 63 61 74 69 6f 6e 55 72 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 71 75 69 72 65 ficationUrl;..protected.$require
55440 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 6f 6e 66 6c 69 63 74 s.=.array();.protected.$conflict
55460 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 69 64 65 73 s.=.array();.protected.$provides
55480 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 70 6c 61 63 65 73 20 .=.array();.protected.$replaces.
554a0 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 52 65 71 75 69 72 65 =.array();.protected.$devRequire
554c0 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 75 67 67 65 73 74 73 s.=.array();.protected.$suggests
554e0 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 74 6f 6c 6f 61 64 20 .=.array();.protected.$autoload.
55500 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 6c 75 64 65 50 61 74 =.array();.protected.$includePat
55520 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 61 72 63 68 69 76 65 hs.=.array();.protected.$archive
55540 45 78 63 6c 75 64 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c Excludes.=.array();.........publ
55560 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 ic.function.__construct($name,.$
55580 76 65 72 73 69 6f 6e 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e version,.$prettyVersion).{.paren
555a0 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 76 t::__construct($name);..$this->v
555c0 65 72 73 69 6f 6e 20 3d 20 24 76 65 72 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 70 72 65 74 74 79 ersion.=.$version;.$this->pretty
555e0 56 65 72 73 69 6f 6e 20 3d 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e 3b 0a 0a 24 74 68 69 73 Version.=.$prettyVersion;..$this
55600 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 70 61 72 ->stability.=.VersionParser::par
55620 73 65 53 74 61 62 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 64 65 seStability($version);.$this->de
55640 76 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 20 3d 3d 3d 20 27 64 65 76 27 3b 0a v.=.$this->stability.===.'dev';.
55660 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 76 28 29 0a 7b 0a }.....public.function.isDev().{.
55680 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 return.$this->dev;.}.....public.
556a0 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d function.setType($type).{.$this-
556c0 3e 74 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 >type.=.$type;.}.....public.func
556e0 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 74 tion.getType().{.return.$this->t
55700 79 70 65 20 3f 3a 20 27 6c 69 62 72 61 72 79 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ype.?:.'library';.}.....public.f
55720 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.
55740 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
55760 75 6e 63 74 69 6f 6e 20 73 65 74 54 61 72 67 65 74 44 69 72 28 24 74 61 72 67 65 74 44 69 72 29 unction.setTargetDir($targetDir)
55780 0a 7b 0a 24 74 68 69 73 2d 3e 74 61 72 67 65 74 44 69 72 20 3d 20 24 74 61 72 67 65 74 44 69 72 .{.$this->targetDir.=.$targetDir
557a0 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 72 67 65 ;.}.....public.function.getTarge
557c0 74 44 69 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 61 72 tDir().{.if.(null.===.$this->tar
557e0 67 65 74 44 69 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6c 74 72 69 getDir).{.return;.}..return.ltri
55800 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 20 28 3f 3a 5e 7c 5b 5c 5c 5c 5c 2f 5d 2b 29 m(preg_replace('{.(?:^|[\\\\/]+)
55820 20 5c 2e 5c 2e 3f 20 28 3f 3a 5b 5c 5c 5c 5c 2f 5d 2b 7c 24 29 20 28 3f 3a 5c 2e 5c 2e 3f 20 28 .\.\.?.(?:[\\\\/]+|$).(?:\.\.?.(
55840 3f 3a 5b 5c 5c 5c 5c 2f 5d 2b 7c 24 29 20 29 2a 7d 78 27 2c 20 27 2f 27 2c 20 24 74 68 69 73 2d ?:[\\\\/]+|$).)*}x',.'/',.$this-
55860 3e 74 61 72 67 65 74 44 69 72 29 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 >targetDir),.'/');.}.....public.
55880 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 74 72 61 28 61 72 72 61 79 20 24 65 78 74 72 61 29 0a function.setExtra(array.$extra).
558a0 7b 0a 24 74 68 69 73 2d 3e 65 78 74 72 61 20 3d 20 24 65 78 74 72 61 3b 0a 7d 0a 0a 0a 0a 0a 70 {.$this->extra.=.$extra;.}.....p
558c0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 74 72 61 28 29 0a 7b 0a 72 65 74 75 ublic.function.getExtra().{.retu
558e0 72 6e 20 24 74 68 69 73 2d 3e 65 78 74 72 61 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 rn.$this->extra;.}.....public.fu
55900 6e 63 74 69 6f 6e 20 73 65 74 42 69 6e 61 72 69 65 73 28 61 72 72 61 79 20 24 62 69 6e 61 72 69 nction.setBinaries(array.$binari
55920 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 6e 61 72 69 65 73 20 3d 20 24 62 69 6e 61 72 69 65 es).{.$this->binaries.=.$binarie
55940 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 s;.}.....public.function.getBina
55960 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 69 6e 61 72 69 65 73 3b ries().{.return.$this->binaries;
55980 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 49 6e 73 74 61 6c .}.....public.function.setInstal
559a0 6c 61 74 69 6f 6e 53 6f 75 72 63 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 lationSource($type).{.$this->ins
559c0 74 61 6c 6c 61 74 69 6f 6e 53 6f 75 72 63 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 tallationSource.=.$type;.}.....p
559e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 53 6f ublic.function.getInstallationSo
55a00 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 urce().{.return.$this->installat
55a20 69 6f 6e 53 6f 75 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ionSource;.}.....public.function
55a40 20 73 65 74 53 6f 75 72 63 65 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 .setSourceType($type).{.$this->s
55a60 6f 75 72 63 65 54 79 70 65 20 3d 20 24 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ourceType.=.$type;.}.....public.
55a80 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 function.getSourceType().{.retur
55aa0 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 54 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 n.$this->sourceType;.}.....publi
55ac0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 55 72 6c 28 24 75 72 6c 29 0a 7b 0a c.function.setSourceUrl($url).{.
55ae0 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 55 72 6c 20 3d 20 24 75 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 $this->sourceUrl.=.$url;.}.....p
55b00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 6f 75 72 63 65 55 72 6c 28 29 0a 7b 0a ublic.function.getSourceUrl().{.
55b20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 return.$this->sourceUrl;.}.....p
55b40 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 ublic.function.setSourceReferenc
55b60 65 28 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 e($reference).{.$this->sourceRef
55b80 65 72 65 6e 63 65 20 3d 20 24 72 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 erence.=.$reference;.}.....publi
55ba0 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 63 65 28 29 0a c.function.getSourceReference().
55bc0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 3b {.return.$this->sourceReference;
55be0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 54 79 .}.....public.function.setDistTy
55c00 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 65 20 3d 20 24 74 pe($type).{.$this->distType.=.$t
55c20 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 65 74 44 69 ype;.}.....public.function.getDi
55c40 73 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 54 79 70 stType().{.return.$this->distTyp
55c60 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 73 65 74 44 69 73 74 e;.}.....public.function.setDist
55c80 55 72 6c 28 24 75 72 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 20 3d 20 24 75 72 Url($url).{.$this->distUrl.=.$ur
55ca0 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 44 69 73 74 l;.}.....public.function.getDist
55cc0 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 55 72 6c 3b 0a 7d Url().{.return.$this->distUrl;.}
55ce0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 52 65 66 65 .....public.function.setDistRefe
55d00 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 74 52 rence($reference).{.$this->distR
55d20 65 66 65 72 65 6e 63 65 20 3d 20 24 72 65 66 65 72 65 6e 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 eference.=.$reference;.}.....pub
55d40 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 63 65 28 29 0a lic.function.getDistReference().
55d60 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 74 52 65 66 65 72 65 6e 63 65 3b 0a 7d {.return.$this->distReference;.}
55d80 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 69 73 74 53 68 61 31 .....public.function.setDistSha1
55da0 43 68 65 63 6b 73 75 6d 28 24 73 68 61 31 63 68 65 63 6b 73 75 6d 29 0a 7b 0a 24 74 68 69 73 2d Checksum($sha1checksum).{.$this-
55dc0 3e 64 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 20 3d 20 24 73 68 61 31 63 68 65 63 6b 73 75 >distSha1Checksum.=.$sha1checksu
55de0 6d 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 m;.}.....public.function.getDist
55e00 53 68 61 31 43 68 65 63 6b 73 75 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 Sha1Checksum().{.return.$this->d
55e20 69 73 74 53 68 61 31 43 68 65 63 6b 73 75 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 istSha1Checksum;.}.....public.fu
55e40 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 6e 20 24 74 68 nction.getVersion().{.return.$th
55e60 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 75 6e 63 74 69 is->version;.}.....public.functi
55e80 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 75 72 6e 20 24 on.getPrettyVersion().{.return.$
55ea0 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 0a 0a 70 75 62 this->prettyVersion;.}.......pub
55ec0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 5c 44 61 74 lic.function.setReleaseDate(\Dat
55ee0 65 54 69 6d 65 20 24 72 65 6c 65 61 73 65 44 61 74 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 6c eTime.$releaseDate).{.$this->rel
55f00 65 61 73 65 44 61 74 65 20 3d 20 24 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 7d 0a 0a 0a 0a 0a 70 easeDate.=.$releaseDate;.}.....p
55f20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 65 61 73 65 44 61 74 65 28 29 0a ublic.function.getReleaseDate().
55f40 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 65 61 73 65 44 61 74 65 3b 0a 7d 0a 0a {.return.$this->releaseDate;.}..
55f60 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 71 75 69 72 65 73 .....public.function.setRequires
55f80 28 61 72 72 61 79 20 24 72 65 71 75 69 72 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 (array.$requires).{.$this->requi
55fa0 72 65 73 20 3d 20 24 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 res.=.$requires;.}.....public.fu
55fc0 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 6e 20 24 74 nction.getRequires().{.return.$t
55fe0 68 69 73 2d 3e 72 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 his->requires;.}.......public.fu
56000 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 61 72 72 61 79 20 24 63 6f 6e 66 6c nction.setConflicts(array.$confl
56020 69 63 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 6c 69 63 74 73 20 3d 20 24 63 6f 6e 66 icts).{.$this->conflicts.=.$conf
56040 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 20 67 65 74 licts;.}.....public.function.get
56060 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 63 6f 6e 66 Conflicts().{.return.$this->conf
56080 6c 69 63 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 licts;.}.......public.function.s
560a0 65 74 50 72 6f 76 69 64 65 73 28 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 73 29 0a 7b 0a 24 74 etProvides(array.$provides).{.$t
560c0 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 20 3d 20 24 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a his->provides.=.$provides;.}....
560e0 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 0a 7b .public.function.getProvides().{
56100 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a .return.$this->provides;.}......
56120 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 65 70 6c 61 63 65 73 28 61 72 72 .public.function.setReplaces(arr
56140 61 79 20 24 72 65 70 6c 61 63 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 20 ay.$replaces).{.$this->replaces.
56160 3d 20 24 72 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 =.$replaces;.}.....public.functi
56180 6f 6e 20 67 65 74 52 65 70 6c 61 63 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d on.getReplaces().{.return.$this-
561a0 3e 72 65 70 6c 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 >replaces;.}.......public.functi
561c0 6f 6e 20 73 65 74 44 65 76 52 65 71 75 69 72 65 73 28 61 72 72 61 79 20 24 64 65 76 52 65 71 75 on.setDevRequires(array.$devRequ
561e0 69 72 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 76 52 65 71 75 69 72 65 73 20 3d 20 24 64 65 ires).{.$this->devRequires.=.$de
56200 76 52 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e vRequires;.}.....public.function
56220 20 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 .getDevRequires().{.return.$this
56240 2d 3e 64 65 76 52 65 71 75 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ->devRequires;.}.......public.fu
56260 6e 63 74 69 6f 6e 20 73 65 74 53 75 67 67 65 73 74 73 28 61 72 72 61 79 20 24 73 75 67 67 65 73 nction.setSuggests(array.$sugges
56280 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 73 20 3d 20 24 73 75 67 67 65 73 74 ts).{.$this->suggests.=.$suggest
562a0 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 67 67 s;.}.....public.function.getSugg
562c0 65 73 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 73 3b ests().{.return.$this->suggests;
562e0 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 41 75 74 6f .}.......public.function.setAuto
56300 6c 6f 61 64 28 61 72 72 61 79 20 24 61 75 74 6f 6c 6f 61 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 load(array.$autoload).{.$this->a
56320 75 74 6f 6c 6f 61 64 20 3d 20 24 61 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 utoload.=.$autoload;.}.....publi
56340 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 0a 7b 0a 72 65 74 75 72 c.function.getAutoload().{.retur
56360 6e 20 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 n.$this->autoload;.}.......publi
56380 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 61 72 72 61 79 c.function.setIncludePaths(array
563a0 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 .$includePaths).{.$this->include
563c0 50 61 74 68 73 20 3d 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 Paths.=.$includePaths;.}.....pub
563e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 0a 7b lic.function.getIncludePaths().{
56400 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 63 6c 75 64 65 50 61 74 68 73 3b 0a 7d 0a 0a .return.$this->includePaths;.}..
56420 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 69 66 69 63 61 .....public.function.setNotifica
56440 74 69 6f 6e 55 72 6c 28 24 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 29 0a 7b 0a 24 74 68 69 tionUrl($notificationUrl).{.$thi
56460 73 2d 3e 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 20 3d 20 24 6e 6f 74 69 66 69 63 61 74 69 s->notificationUrl.=.$notificati
56480 6f 6e 55 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 onUrl;.}.....public.function.get
564a0 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 NotificationUrl().{.return.$this
564c0 2d 3e 6e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ->notificationUrl;.}.......publi
564e0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 61 72 c.function.setArchiveExcludes(ar
56500 72 61 79 20 24 65 78 63 6c 75 64 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 45 ray.$excludes).{.$this->archiveE
56520 78 63 6c 75 64 65 73 20 3d 20 24 65 78 63 6c 75 64 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 xcludes.=.$excludes;.}.....publi
56540 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 0a c.function.getArchiveExcludes().
56560 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 3b {.return.$this->archiveExcludes;
56580 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.
565a0 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\
565c0 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 6f 6e 43 6f Package\LinkConstraint\VersionCo
565e0 6e 73 74 72 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 56 nstraint;.use.Composer\Package\V
56600 65 72 73 69 6f 6e 5c 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 ersion\VersionParser;.....class.
56620 41 6c 69 61 73 50 61 63 6b 61 67 65 20 65 78 74 65 6e 64 73 20 42 61 73 65 50 61 63 6b 61 67 65 AliasPackage.extends.BasePackage
56640 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6d 70 6c 65 74 65 50 61 63 6b 61 67 65 49 6e 74 65 72 .implements.CompletePackageInter
56660 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 3b 0a 70 72 6f 74 65 face.{.protected.$version;.prote
56680 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 74 65 64 20 24 cted.$prettyVersion;.protected.$
566a0 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 6f 74 65 63 74 dev;.protected.$aliasOf;.protect
566c0 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 65 3b 0a 70 72 ed.$rootPackageAlias.=.false;.pr
566e0 6f 74 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 otected.$stability;..protected.$
56700 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 63 74 73 3b 0a requires;.protected.$conflicts;.
56720 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 74 65 64 20 24 protected.$provides;.protected.$
56740 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 65 6e 64 73 3b replaces;.protected.$recommends;
56760 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 0a 0a 0a 70 75 .protected.$suggests;.........pu
56780 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 61 63 6b 61 67 blic.function.__construct(Packag
567a0 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 6f 6e 2c 20 24 eInterface.$aliasOf,.$version,.$
567c0 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 63 6f 6e 73 74 prettyVersion).{.parent::__const
567e0 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 0a 24 74 68 69 ruct($aliasOf->getName());..$thi
56800 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 73 2d 3e 70 72 s->version.=.$version;.$this->pr
56820 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 6e 3b 0a 24 74 ettyVersion.=.$prettyVersion;.$t
56840 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 68 69 73 2d 3e his->aliasOf.=.$aliasOf;.$this->
56860 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 65 stability.=.VersionParser::parse
56880 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 20 Stability($version);.$this->dev.
568a0 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 0a 0a =.$this->stability.===.'dev';...
568c0 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 20 27 64 65 76 .foreach.(array('requires',.'dev
568e0 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 6b 73 20 3d 20 Requires').as.$type).{.$links.=.
56900 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 79 70 65 29 7d $aliasOf->{'get'.ucfirst($type)}
56920 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 65 78 20 3d 3e ();.foreach.($links.as.$index.=>
56940 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 20 3d .$link).{...if.('self.version'.=
56960 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 29 29 ==.$link->getPrettyConstraint())
56980 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 6b 28 24 6c 69 .{.$links[$index].=.new.Link($li
569a0 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 54 61 72 67 65 nk->getSource(),.$link->getTarge
569c0 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 27 3d 27 2c 20 t(),.new.VersionConstraint('=',.
569e0 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 70 72 65 74 74 79 56 $this->version),.$type,.$prettyV
56a00 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 20 24 6c 69 6e ersion);.}.}.$this->$type.=.$lin
56a20 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 6e 66 6c 69 63 ks;.}....foreach.(array('conflic
56a40 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 29 20 61 73 20 ts',.'provides',.'replaces').as.
56a60 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 3e 7b 27 67 65 $type).{.$links.=.$aliasOf->{'ge
56a80 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 69 6e 6b 73 20 t'.ucfirst($type)}();.$newLinks.
56aa0 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 61 73 20 24 6c =.array();.foreach.($links.as.$l
56ac0 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 20 3d 3d 3d 20 ink).{...if.('self.version'.===.
56ae0 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 29 20 7b 0a $link->getPrettyConstraint()).{.
56b00 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 6b 2d 3e 67 65 $newLinks[].=.new.Link($link->ge
56b20 74 53 6f 75 72 63 65 28 29 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 6e tSource(),.$link->getTarget(),.n
56b40 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 28 27 3d 27 2c 20 24 74 68 69 73 2d ew.VersionConstraint('=',.$this-
56b60 3e 76 65 72 73 69 6f 6e 29 2c 20 24 74 79 70 65 2c 20 24 70 72 65 74 74 79 56 65 72 73 69 6f 6e >version),.$type,.$prettyVersion
56b80 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 5f 6d 65 72 67 );.}.}.$this->$type.=.array_merg
56ba0 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 70 75 62 6c 69 e($links,.$newLinks);.}.}..publi
56bc0 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 65 74 75 72 6e c.function.getAliasOf().{.return
56be0 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 69 63 20 66 75 .$this->aliasOf;.}.....public.fu
56c00 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 6e 20 24 74 68 nction.getVersion().{.return.$th
56c20 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 75 6e 63 74 69 is->version;.}.....public.functi
56c40 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 74 68 69 73 on.getStability().{.return.$this
56c60 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 6e 63 74 69 ->stability;.}.....public.functi
56c80 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 75 72 6e 20 24 on.getPrettyVersion().{.return.$
56ca0 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 70 75 62 6c 69 this->prettyVersion;.}.....publi
56cc0 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 20 24 74 68 69 c.function.isDev().{.return.$thi
56ce0 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 6f 6e 20 67 65 s->dev;.}.....public.function.ge
56d00 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 3e 72 65 71 75 tRequires().{.return.$this->requ
56d20 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 65 74 43 ires;.}.....public.function.getC
56d40 6f 6e 66 6c 69 63 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 6c onflicts().{.return.$this->confl
56d60 69 63 74 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 icts;.}.....public.function.getP
56d80 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 72 6f 76 69 64 rovides().{.return.$this->provid
56da0 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 70 es;.}.....public.function.getRep
56dc0 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 6c 61 63 65 73 laces().{.return.$this->replaces
56de0 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 65 76 52 65 ;.}.....public.function.getDevRe
56e00 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 76 52 65 71 75 quires().{.return.$this->devRequ
56e20 69 72 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ires;.}...........public.functio
56e40 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 0a 7b 0a n.setRootPackageAlias($value).{.
56e60 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 73 20 3d return.$this->rootPackageAlias.=
56e80 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 6f 6e 20 .$value;.}......public.function.
56ea0 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 20 24 74 isRootPackageAlias().{.return.$t
56ec0 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 0a 70 75 his->rootPackageAlias;.}......pu
56ee0 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 65 74 75 72 6e blic.function.getType().{.return
56f00 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 0a 7d 0a 70 75 .$this->aliasOf->getType();.}.pu
56f20 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 29 0a 7b 0a 72 blic.function.getTargetDir().{.r
56f40 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 72 67 65 74 44 eturn.$this->aliasOf->getTargetD
56f60 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 45 78 74 72 61 ir();.}.public.function.getExtra
56f80 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 45 ().{.return.$this->aliasOf->getE
56fa0 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 65 74 49 6e 73 xtra();.}.public.function.setIns
56fc0 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 68 69 73 2d 3e tallationSource($type).{.$this->
56fe0 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 72 63 65 28 24 aliasOf->setInstallationSource($
57000 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 74 49 6e 73 74 type);.}.public.function.getInst
57020 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 74 68 69 73 2d allationSource().{.return.$this-
57040 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 75 72 63 65 28 >aliasOf->getInstallationSource(
57060 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 72 63 65 54 79 );.}.public.function.getSourceTy
57080 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 66 2d 3e 67 65 pe().{.return.$this->aliasOf->ge
570a0 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 63 74 69 6f 6e tSourceType();.}.public.function
570c0 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 69 73 2d 3e .getSourceUrl().{.return.$this->
570e0 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 70 75 62 6c 69 aliasOf->getSourceUrl();.}.publi
57100 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 63 65 28 29 0a c.function.getSourceReference().
57120 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 53 6f 75 72 {.return.$this->aliasOf->getSour
57140 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 63 74 69 6f 6e ceReference();.}.public.function
57160 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 63 65 29 0a .setSourceReference($reference).
57180 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 74 53 6f 75 72 {.return.$this->aliasOf->setSour
571a0 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 70 75 62 6c 69 ceReference($reference);.}.publi
571c0 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 72 65 74 75 72 c.function.getDistType().{.retur
571e0 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 70 65 28 29 3b n.$this->aliasOf->getDistType();
57200 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 72 6c 28 29 0a .}.public.function.getDistUrl().
57220 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 74 {.return.$this->aliasOf->getDist
57240 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 74 44 69 73 74 Url();.}.public.function.getDist
57260 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 3e 61 6c 69 61 Reference().{.return.$this->alia
57280 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 70 75 62 6c 69 sOf->getDistReference();.}.publi
572a0 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 75 6d 28 29 c.function.getDistSha1Checksum()
572c0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 44 69 73 .{.return.$this->aliasOf->getDis
572e0 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 75 6e 63 74 69 tSha1Checksum();.}.public.functi
57300 6f 6e 20 67 65 74 53 63 72 69 70 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getScripts().{.return.$this->
57320 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 62 6c 69 63 20 aliasOf->getScripts();.}.public.
57340 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 65 74 75 72 6e 20 24 function.getLicense().{.return.$
57360 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 28 29 3b 0a 7d 0a 70 this->aliasOf->getLicense();.}.p
57380 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 0a 7b 0a 72 ublic.function.getAutoload().{.r
573a0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 eturn.$this->aliasOf->getAutoloa
573c0 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 74 49 6e 63 6c 75 64 d();.}.public.function.getInclud
573e0 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 61 6c 69 61 73 4f 66 ePaths().{.return.$this->aliasOf
57400 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 62 6c 69 63 20 66 75 ->getIncludePaths();.}.public.fu
57420 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 0a 7b 0a 72 65 74 75 72 nction.getRepositories().{.retur
57440 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 73 69 74 6f 72 69 65 n.$this->aliasOf->getRepositorie
57460 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 52 65 6c 65 61 73 s();.}.public.function.getReleas
57480 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 6c 69 61 73 4f 66 2d eDate().{.return.$this->aliasOf-
574a0 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 69 63 20 66 75 6e 63 >getReleaseDate();.}.public.func
574c0 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 68 69 tion.getBinaries().{.return.$thi
574e0 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 3b 0a 7d 0a 70 75 62 s->aliasOf->getBinaries();.}.pub
57500 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 0a 72 65 74 lic.function.getKeywords().{.ret
57520 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 79 77 6f 72 64 73 28 urn.$this->aliasOf->getKeywords(
57540 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 65 73 63 72 69 70 74 );.}.public.function.getDescript
57560 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 61 73 4f 66 2d 3e 67 ion().{.return.$this->aliasOf->g
57580 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 20 66 75 6e 63 74 69 etDescription();.}.public.functi
575a0 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 68 69 73 2d on.getHomepage().{.return.$this-
575c0 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 7d 0a 70 75 62 6c 69 >aliasOf->getHomepage();.}.publi
575e0 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 7b 0a 72 65 74 75 72 c.function.getSuggests().{.retur
57600 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 65 73 74 73 28 29 3b n.$this->aliasOf->getSuggests();
57620 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 68 6f 72 73 28 29 0a .}.public.function.getAuthors().
57640 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 41 75 74 68 {.return.$this->aliasOf->getAuth
57660 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 67 65 74 53 75 70 70 ors();.}.public.function.getSupp
57680 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 61 73 4f 66 2d 3e 67 ort().{.return.$this->aliasOf->g
576a0 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 63 74 69 6f 6e 20 67 etSupport();.}.public.function.g
576c0 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 etNotificationUrl().{.return.$th
576e0 69 73 2d 3e 61 6c 69 61 73 4f 66 2d 3e 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 is->aliasOf->getNotificationUrl(
57700 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 72 63 68 69 76 65 45 );.}.public.function.getArchiveE
57720 78 63 6c 75 64 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 4f xcludes().{.return.$this->aliasO
57740 66 2d 3e 67 65 74 41 72 63 68 69 76 65 45 78 63 6c 75 64 65 73 28 29 3b 0a 7d 0a 70 75 62 6c 69 f->getArchiveExcludes();.}.publi
57760 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 6e c.function.__toString().{.return
57780 20 70 61 72 65 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 .parent::__toString().'.(alias.o
577a0 66 20 27 2e 24 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 f.'.$this->aliasOf->getVersion()
577c0 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 0a 6e 61 6d 65 73 .')';.}.}.<?php............names
577e0 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 70 pace.Composer\Package;..use.Comp
57800 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 6e 6b oser\Package\LinkConstraint\Link
57820 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 73 65 ConstraintInterface;.use.Compose
57840 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a r\Package\PackageInterface;.....
57860 0a 0a 63 6c 61 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 ..class.Link.{.protected.$source
57880 3b 0a 70 72 6f 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 ;.protected.$target;.protected.$
578a0 63 6f 6e 73 74 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 constraint;.protected.$descripti
578c0 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b on;.protected.$prettyConstraint;
578e0 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
57900 73 74 72 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 struct($source,.$target,.LinkCon
57920 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 20 6e straintInterface.$constraint.=.n
57940 75 6c 6c 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 ull,.$description.=.'relates.to'
57960 2c 20 24 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 ,.$prettyConstraint.=.null).{.$t
57980 68 69 73 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 his->source.=.strtolower($source
579a0 29 3b 0a 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 );.$this->target.=.strtolower($t
579c0 61 72 67 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 arget);.$this->constraint.=.$con
579e0 73 74 72 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 straint;.$this->description.=.$d
57a00 65 73 63 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 escription;.$this->prettyConstra
57a20 69 6e 74 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 int.=.$prettyConstraint;.}..publ
57a40 69 63 20 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 ic.function.getSource().{.return
57a60 20 24 74 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 .$this->source;.}..public.functi
57a80 6f 6e 20 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 on.getTarget().{.return.$this->t
57aa0 61 72 67 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 arget;.}..public.function.getCon
57ac0 73 74 72 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 straint().{.return.$this->constr
57ae0 61 69 6e 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 74 aint;.}..public.function.getPret
57b00 74 79 43 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 tyConstraint().{.if.(null.===.$t
57b20 68 69 73 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 his->prettyConstraint).{.throw.n
57b40 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 73 70 72 ew.\UnexpectedValueException(spr
57b60 69 6e 74 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 intf('Link.%s.has.been.misconfig
57b80 75 72 65 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 ured.and.had.no.prettyConstraint
57ba0 20 67 69 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 .given.',.$this));.}..return.$th
57bc0 69 73 2d 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 is->prettyConstraint;.}..public.
57be0 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 24 function.__toString().{.return.$
57c00 74 68 69 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 this->source.'.'.$this->descript
57c20 69 6f 6e 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 ion.'.'.$this->target.'.('.$this
57c40 2d 3e 63 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 ->constraint.')';.}..public.func
57c60 74 69 6f 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 tion.getPrettyString(PackageInte
57c80 72 66 61 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 rface.$sourcePackage).{.return.$
57ca0 73 6f 75 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 sourcePackage->getPrettyString()
57cc0 2e 27 20 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 .'.'.$this->description.'.'.$thi
57ce0 73 2d 3e 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 s->target.'.'.$this->constraint-
57d00 3e 67 65 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 >getPrettyString().'';.}.}.<?php
57d20 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
57d40 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 63 6c 61 ackage\LinkConstraint;.......cla
57d60 73 73 20 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4c 69 ss.EmptyConstraint.implements.Li
57d80 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 nkConstraintInterface.{.protecte
57da0 64 20 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 d.$prettyString;..public.functio
57dc0 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 n.matches(LinkConstraintInterfac
57de0 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 e.$provider).{.return.true;.}..p
57e00 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 24 ublic.function.setPrettyString($
57e20 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 72 prettyString).{.$this->prettyStr
57e40 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 66 ing.=.$prettyString;.}..public.f
57e60 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 28 unction.getPrettyString().{.if.(
57e80 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 74 $this->prettyString).{.return.$t
57ea0 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 68 his->prettyString;.}..return.$th
57ec0 69 73 2d 3e 5f 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 is->__toString();.}..public.func
57ee0 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 5b 5d 27 3b tion.__toString().{.return.'[]';
57f00 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.
57f20 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 3b Composer\Package\LinkConstraint;
57f40 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d ........class.MultiConstraint.im
57f60 70 6c 65 6d 65 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 plements.LinkConstraintInterface
57f80 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 70 72 6f 74 65 .{.protected.$constraints;.prote
57fa0 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 cted.$prettyString;.protected.$c
57fc0 6f 6e 6a 75 6e 63 74 69 76 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 onjunctive;........public.functi
57fe0 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 73 74 72 61 69 6e 74 on.__construct(array.$constraint
58000 73 2c 20 24 63 6f 6e 6a 75 6e 63 74 69 76 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d s,.$conjunctive.=.true).{.$this-
58020 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 0a 24 74 68 >constraints.=.$constraints;.$th
58040 69 73 2d 3e 63 6f 6e 6a 75 6e 63 74 69 76 65 20 3d 20 24 63 6f 6e 6a 75 6e 63 74 69 76 65 3b 0a is->conjunctive.=.$conjunctive;.
58060 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 43 }..public.function.matches(LinkC
58080 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 0a onstraintInterface.$provider).{.
580a0 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6e 6a 75 6e 63 74 69 76 65 if.(false.===.$this->conjunctive
580c0 29 20 7b 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 ).{.foreach.($this->constraints.
580e0 61 73 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 69 66 20 28 24 63 6f 6e 73 74 72 61 69 6e as.$constraint).{.if.($constrain
58100 74 2d 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 t->matches($provider)).{.return.
58120 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 66 6f 72 65 true;.}.}..return.false;.}..fore
58140 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 24 63 6f 6e 73 ach.($this->constraints.as.$cons
58160 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 3e 6d 61 74 63 traint).{.if.(!$constraint->matc
58180 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 6c 73 65 3b 0a hes($provider)).{.return.false;.
581a0 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 6e 63 }.}..return.true;.}..public.func
581c0 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 79 53 74 72 69 tion.setPrettyString($prettyStri
581e0 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 20 24 70 72 65 ng).{.$this->prettyString.=.$pre
58200 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 6f 6e 20 67 65 ttyString;.}..public.function.ge
58220 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 2d 3e 70 72 65 tPrettyString().{.if.($this->pre
58240 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 70 72 65 74 74 ttyString).{.return.$this->prett
58260 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 5f 74 6f 53 74 yString;.}..return.$this->__toSt
58280 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 5f 5f 74 6f 53 ring();.}..public.function.__toS
582a0 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 72 61 79 28 29 tring().{.$constraints.=.array()
582c0 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 74 73 20 61 73 ;.foreach.($this->constraints.as
582e0 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 73 5b 5d 20 3d .$constraint).{.$constraints[].=
58300 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 0a 7d 0a 0a 72 .$constraint->__toString();.}..r
58320 65 74 75 72 6e 20 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 24 74 68 69 73 2d 3e 63 6f 6e 6a 75 6e 63 eturn.'['.implode($this->conjunc
58340 74 69 76 65 20 3f 20 27 2c 20 27 20 3a 20 27 20 7c 20 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 tive.?.',.'.:.'.|.',.$constraint
58360 73 29 2e 27 5d 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d s).']';.}.}.<?php............nam
58380 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 espace.Composer\Package\LinkCons
583a0 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 56 65 72 73 69 6f 6e 43 6f 6e traint;.........class.VersionCon
583c0 73 74 72 61 69 6e 74 20 65 78 74 65 6e 64 73 20 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 straint.extends.SpecificConstrai
583e0 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 6f 70 65 72 61 74 6f 72 3b 0a 70 72 69 76 61 74 65 20 nt.{.private.$operator;.private.
58400 24 76 65 72 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $version;........public.function
58420 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 24 76 65 72 73 69 6f 6e .__construct($operator,.$version
58440 29 0a 7b 0a 69 66 20 28 27 3d 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 6f 72 29 20 7b 0a 24 6f 70 ).{.if.('='.===.$operator).{.$op
58460 65 72 61 74 6f 72 20 3d 20 27 3d 3d 27 3b 0a 7d 0a 0a 69 66 20 28 27 3c 3e 27 20 3d 3d 3d 20 24 erator.=.'==';.}..if.('<>'.===.$
58480 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 21 3d 27 3b 0a 7d 0a operator).{.$operator.=.'!=';.}.
584a0 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 20 24 6f 70 65 72 61 74 6f 72 3b 0a 24 74 .$this->operator.=.$operator;.$t
584c0 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 7d 0a 0a 70 75 62 6c his->version.=.$version;.}..publ
584e0 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 61 2c 20 24 ic.function.versionCompare($a,.$
58500 62 2c 20 24 6f 70 65 72 61 74 6f 72 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 20 3d b,.$operator,.$compareBranches.=
58520 20 66 61 6c 73 65 29 0a 7b 0a 24 61 49 73 42 72 61 6e 63 68 20 3d 20 27 64 65 76 2d 27 20 3d 3d .false).{.$aIsBranch.=.'dev-'.==
58540 3d 20 73 75 62 73 74 72 28 24 61 2c 20 30 2c 20 34 29 3b 0a 24 62 49 73 42 72 61 6e 63 68 20 3d =.substr($a,.0,.4);.$bIsBranch.=
58560 20 27 64 65 76 2d 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 2c 20 30 2c 20 34 29 3b 0a 69 66 .'dev-'.===.substr($b,.0,.4);.if
58580 20 28 24 61 49 73 42 72 61 6e 63 68 20 26 26 20 24 62 49 73 42 72 61 6e 63 68 29 20 7b 0a 72 65 .($aIsBranch.&&.$bIsBranch).{.re
585a0 74 75 72 6e 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 turn.$operator.==.'=='.&&.$a.===
585c0 20 24 62 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 20 .$b;.}....if.(!$compareBranches.
585e0 26 26 20 28 24 61 49 73 42 72 61 6e 63 68 20 7c 7c 20 24 62 49 73 42 72 61 6e 63 68 29 29 20 7b &&.($aIsBranch.||.$bIsBranch)).{
58600 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 76 65 72 73 69 6f 6e .return.false;.}..return.version
58620 5f 63 6f 6d 70 61 72 65 28 24 61 2c 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a _compare($a,.$b,.$operator);.}..
58640 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 53 70 65 63 69 66 .....public.function.matchSpecif
58660 69 63 28 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 24 70 72 6f 76 69 64 65 72 2c 20 ic(VersionConstraint.$provider,.
58680 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 73 74 61 74 $compareBranches.=.false).{.stat
586a0 69 63 20 24 63 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 ic.$cache.=.array();.if.(isset($
586c0 63 61 63 68 65 5b 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 5d 5b 24 74 68 69 73 2d 3e 76 65 cache[$this->operator][$this->ve
586e0 72 73 69 6f 6e 5d 5b 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 5d 5b 24 70 72 6f rsion][$provider->operator][$pro
58700 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 5d 5b 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 vider->version][$compareBranches
58720 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 61 63 68 65 5b 24 74 68 69 73 2d 3e 6f 70 65 72 61 ])).{.return.$cache[$this->opera
58740 74 6f 72 5d 5b 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 5d 5b 24 70 72 6f 76 69 64 65 72 2d 3e tor][$this->version][$provider->
58760 6f 70 65 72 61 74 6f 72 5d 5b 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 5d 5b 24 63 operator][$provider->version][$c
58780 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 61 63 68 ompareBranches];.}..return.$cach
587a0 65 5b 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 5d 5b 24 74 68 69 73 2d 3e 76 65 72 73 69 6f e[$this->operator][$this->versio
587c0 6e 5d 5b 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 5d 5b 24 70 72 6f 76 69 64 65 n][$provider->operator][$provide
587e0 72 2d 3e 76 65 72 73 69 6f 6e 5d 5b 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 5d 20 3d 0a r->version][$compareBranches].=.
58800 24 74 68 69 73 2d 3e 64 6f 4d 61 74 63 68 53 70 65 63 69 66 69 63 28 24 70 72 6f 76 69 64 65 72 $this->doMatchSpecific($provider
58820 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 ,.$compareBranches);.}.......pri
58840 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 6f 4d 61 74 63 68 53 70 65 63 69 66 69 63 28 56 65 vate.function.doMatchSpecific(Ve
58860 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 20 24 70 72 6f 76 69 64 65 72 2c 20 24 63 6f 6d 70 rsionConstraint.$provider,.$comp
58880 61 72 65 42 72 61 6e 63 68 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6e 6f 45 71 75 61 6c 4f areBranches.=.false).{.$noEqualO
588a0 70 20 3d 20 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 p.=.str_replace('=',.'',.$this->
588c0 6f 70 65 72 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 operator);.$providerNoEqualOp.=.
588e0 73 74 72 5f 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 str_replace('=',.'',.$provider->
58900 6f 70 65 72 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 operator);..$isEqualOp.=.'=='.==
58920 3d 20 24 74 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 =.$this->operator;.$isNonEqualOp
58940 20 3d 20 27 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 .=.'!='.===.$this->operator;.$is
58960 50 72 6f 76 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 ProviderEqualOp.=.'=='.===.$prov
58980 69 64 65 72 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 ider->operator;.$isProviderNonEq
589a0 75 61 6c 4f 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 ualOp.=.'!='.===.$provider->oper
589c0 61 74 6f 72 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 ator;......if.($isNonEqualOp.||.
589e0 24 69 73 50 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 $isProviderNonEqualOp).{.return.
58a00 21 24 69 73 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 !$isEqualOp.&&.!$isProviderEqual
58a20 4f 70 0a 7c 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 Op.||.$this->versionCompare($pro
58a40 76 69 64 65 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 vider->version,.$this->version,.
58a60 27 21 3d 27 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 29 3b 0a 7d 0a 0a 0a 20 0a 20 '!=',.$compareBranches);.}......
58a80 69 66 20 28 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 20 21 3d 20 27 3d 3d 27 20 26 26 20 24 if.($this->operator.!=.'=='.&&.$
58aa0 6e 6f 45 71 75 61 6c 4f 70 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 29 noEqualOp.==.$providerNoEqualOp)
58ac0 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 .{.return.true;.}..if.($this->ve
58ae0 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 24 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 2c rsionCompare($provider->version,
58b00 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 2c 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 .$this->version,.$this->operator
58b20 2c 20 24 63 6f 6d 70 61 72 65 42 72 61 6e 63 68 65 73 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 24 ,.$compareBranches)).{.....if.($
58b40 70 72 6f 76 69 64 65 72 2d 3e 76 65 72 73 69 6f 6e 20 3d 3d 20 24 74 68 69 73 2d 3e 76 65 72 73 provider->version.==.$this->vers
58b60 69 6f 6e 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 6f 70 65 72 61 74 6f 72 20 3d 3d 20 24 70 ion.&&.$provider->operator.==.$p
58b80 72 6f 76 69 64 65 72 4e 6f 45 71 75 61 6c 4f 70 20 26 26 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 roviderNoEqualOp.&&.$this->opera
58ba0 74 6f 72 20 21 3d 20 24 6e 6f 45 71 75 61 6c 4f 70 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 tor.!=.$noEqualOp).{.return.fals
58bc0 65 3b 0a 7d 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 e;.}..return.true;.}..return.fal
58be0 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 74 72 69 6e se;.}..public.function.__toStrin
58c00 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 6f 72 2e 27 20 27 g().{.return.$this->operator.'.'
58c20 2e 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a .$this->version;.}.}.<?php......
58c40 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 ......namespace.Composer\Package
58c60 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 \LinkConstraint;.......abstract.
58c80 63 6c 61 73 73 20 53 70 65 63 69 66 69 63 43 6f 6e 73 74 72 61 69 6e 74 20 69 6d 70 6c 65 6d 65 class.SpecificConstraint.impleme
58ca0 6e 74 73 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 nts.LinkConstraintInterface.{.pr
58cc0 6f 74 65 63 74 65 64 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 0a 70 75 62 6c 69 63 20 66 otected.$prettyString;..public.f
58ce0 75 6e 63 74 69 6f 6e 20 6d 61 74 63 68 65 73 28 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e unction.matches(LinkConstraintIn
58d00 74 65 72 66 61 63 65 20 24 70 72 6f 76 69 64 65 72 29 0a 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 terface.$provider).{.if.($provid
58d20 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 4d 75 6c 74 69 43 6f 6e 73 74 72 61 69 6e 74 29 20 7b er.instanceof.MultiConstraint).{
58d40 0a 0a 20 72 65 74 75 72 6e 20 24 70 72 6f 76 69 64 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 74 68 ...return.$provider->matches($th
58d60 69 73 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 is);.}.elseif.($provider.instanc
58d80 65 6f 66 20 24 74 68 69 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 eof.$this).{.return.$this->match
58da0 53 70 65 63 69 66 69 63 28 24 70 72 6f 76 69 64 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 Specific($provider);.}..return.t
58dc0 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 65 74 74 rue;.}..public.function.setPrett
58de0 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 0a 7b 0a 24 74 68 69 73 2d 3e yString($prettyString).{.$this->
58e00 70 72 65 74 74 79 53 74 72 69 6e 67 20 3d 20 24 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a prettyString.=.$prettyString;.}.
58e20 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 6e 67 .public.function.getPrettyString
58e40 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 29 20 7b 0a ().{.if.($this->prettyString).{.
58e60 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 74 74 79 53 74 72 69 6e 67 3b 0a 7d 0a 0a 72 return.$this->prettyString;.}..r
58e80 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 5f 5f 74 6f 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 0a 20 eturn.$this->__toString();.}....
58ea0 0a 20 0a 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
58ec0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 .Composer\Package\LinkConstraint
58ee0 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 ;.......interface.LinkConstraint
58f00 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 20 6d 61 74 63 Interface.{.public.function.matc
58f20 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 24 70 72 6f hes(LinkConstraintInterface.$pro
58f40 76 69 64 65 72 29 3b 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 vider);.public.function.setPrett
58f60 79 53 74 72 69 6e 67 28 24 70 72 65 74 74 79 53 74 72 69 6e 67 29 3b 0a 70 75 62 6c 69 63 20 66 yString($prettyString);.public.f
58f80 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 3b 0a 70 75 62 6c 69 unction.getPrettyString();.publi
58fa0 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 7d 0a 3c 3f 70 68 70 c.function.__toString();.}.<?php
58fc0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a ............namespace.Composer;.
58fe0 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
59000 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 65 20 e.Composer\Util\Filesystem;.use.
59020 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 46 69 6e 64 65 72 3b Symfony\Component\Finder\Finder;
59040 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 61 63 68 65 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 .......class.Cache.{.private.sta
59060 74 69 63 20 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 tic.$cacheCollected.=.false;.pri
59080 76 61 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 72 6f 6f 74 3b 0a 70 72 69 76 61 74 65 vate.$io;.private.$root;.private
590a0 20 24 65 6e 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 70 72 69 76 61 74 65 20 24 77 68 69 74 65 .$enabled.=.true;.private.$white
590c0 6c 69 73 74 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a list;.private.$filesystem;......
590e0 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 4f ..public.function.__construct(IO
59100 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 61 63 68 65 44 69 72 2c 20 24 77 68 69 74 65 Interface.$io,.$cacheDir,.$white
59120 6c 69 73 74 20 3d 20 27 61 2d 7a 30 2d 39 2e 27 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 list.=.'a-z0-9.',.Filesystem.$fi
59140 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 69 6f 20 3d 20 24 lesystem.=.null).{.$this->io.=.$
59160 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 63 61 63 68 65 44 69 io;.$this->root.=.rtrim($cacheDi
59180 72 2c 20 27 2f 5c 5c 27 29 20 2e 20 27 2f 27 3b 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 r,.'/\\')...'/';.$this->whitelis
591a0 74 20 3d 20 24 77 68 69 74 65 6c 69 73 74 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 t.=.$whitelist;.$this->filesyste
591c0 6d 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 20 3f 3a 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 m.=.$filesystem.?:.new.Filesyste
591e0 6d 28 29 3b 0a 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 74 68 69 73 2d 3e 72 6f 6f 74 29 29 20 m();..if.(!is_dir($this->root)).
59200 7b 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 74 68 69 73 2d 3e 72 6f 6f 74 2c 20 30 37 37 37 2c {.if.(!@mkdir($this->root,.0777,
59220 20 74 72 75 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 .true)).{.$this->enabled.=.false
59240 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6e 61 62 6c ;.}.}.}..public.function.isEnabl
59260 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 3b 0a 7d 0a ed().{.return.$this->enabled;.}.
59280 0a 70 75 62 6c 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 .public.function.getRoot().{.ret
592a0 75 72 6e 20 24 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 urn.$this->root;.}..public.funct
592c0 69 6f 6e 20 72 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 ion.read($file).{.$file.=.preg_r
592e0 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d eplace('{[^'.$this->whitelist.']
59300 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 }i',.'-',.$file);.if.($this->ena
59320 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 bled.&&.file_exists($this->root.
59340 2e 20 24 66 69 6c 65 29 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 ..$file)).{.if.($this->io->isDeb
59360 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 52 65 61 64 69 6e ug()).{.$this->io->write('Readin
59380 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2e 27 20 66 72 6f 6d 20 63 g.'.$this->root...$file.'.from.c
593a0 61 63 68 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 ache');.}..return.file_get_conte
593c0 6e 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 nts($this->root...$file);.}..ret
593e0 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 urn.false;.}..public.function.wr
59400 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
59420 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
59440 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c ce('{[^'.$this->whitelist.']}i',
59460 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 .'-',.$file);..if.($this->io->is
59480 44 65 62 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 57 72 69 Debug()).{.$this->io->write('Wri
594a0 74 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2e 27 20 69 6e 74 ting.'.$this->root...$file.'.int
594c0 6f 20 63 61 63 68 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 69 6c 65 5f 70 75 74 5f 63 6f o.cache');.}..return.file_put_co
594e0 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2c 20 24 63 6f 6e ntents($this->root...$file,.$con
59500 74 65 6e 74 73 29 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 70 tents);.}..return.false;.}.....p
59520 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 70 79 46 72 6f 6d 28 24 66 69 6c 65 2c 20 24 ublic.function.copyFrom($file,.$
59540 73 6f 75 72 63 65 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 61 62 6c 65 64 29 20 7b 0a source).{.if.($this->enabled).{.
59560 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 $file.=.preg_replace('{[^'.$this
59580 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a ->whitelist.']}i',.'-',.$file);.
595a0 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 74 6f $this->filesystem->ensureDirecto
595c0 72 79 45 78 69 73 74 73 28 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 ryExists(dirname($this->root...$
595e0 66 69 6c 65 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 file));..if.($this->io->isDebug(
59600 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 57 72 69 74 69 6e 67 20 27 )).{.$this->io->write('Writing.'
59620 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2e 27 20 69 6e 74 6f 20 63 61 63 68 .$this->root...$file.'.into.cach
59640 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 6f 70 79 28 24 73 6f 75 72 63 65 2c 20 24 74 68 e');.}..return.copy($source,.$th
59660 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c is->root...$file);.}..return.fal
59680 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 63 6f 70 79 54 6f se;.}.....public.function.copyTo
596a0 28 24 66 69 6c 65 2c 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f ($file,.$target).{.$file.=.preg_
596c0 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 replace('{[^'.$this->whitelist.'
596e0 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e ]}i',.'-',.$file);.if.($this->en
59700 61 62 6c 65 64 20 26 26 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 74 68 69 73 2d 3e 72 6f 6f 74 abled.&&.file_exists($this->root
59720 20 2e 20 24 66 69 6c 65 29 29 20 7b 0a 74 6f 75 63 68 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e ...$file)).{.touch($this->root..
59740 20 24 66 69 6c 65 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 .$file);..if.($this->io->isDebug
59760 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 52 65 61 64 69 6e 67 20 ()).{.$this->io->write('Reading.
59780 27 2e 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 2e 27 20 66 72 6f 6d 20 63 61 63 '.$this->root...$file.'.from.cac
597a0 68 65 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 63 6f 70 79 28 24 74 68 69 73 2d 3e 72 6f 6f 74 he');.}..return.copy($this->root
597c0 20 2e 20 24 66 69 6c 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 ...$file,.$target);.}..return.fa
597e0 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 63 49 73 4e 65 63 65 lse;.}..public.function.gcIsNece
59800 73 73 61 72 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 21 73 65 6c 66 3a 3a 24 63 61 63 68 65 43 ssary().{.return.(!self::$cacheC
59820 6f 6c 6c 65 63 74 65 64 20 26 26 20 21 6d 74 5f 72 61 6e 64 28 30 2c 20 35 30 29 29 3b 0a 7d 0a ollected.&&.!mt_rand(0,.50));.}.
59840 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 0a 7b .public.function.remove($file).{
59860 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 .$file.=.preg_replace('{[^'.$thi
59880 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b s->whitelist.']}i',.'-',.$file);
598a0 0a 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 .if.($this->enabled.&&.file_exis
598c0 74 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 ts($this->root...$file)).{.retur
598e0 6e 20 75 6e 6c 69 6e 6b 28 24 74 68 69 73 2d 3e 72 6f 6f 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d n.unlink($this->root...$file);.}
59900 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ..return.false;.}..public.functi
59920 6f 6e 20 67 63 28 24 74 74 6c 2c 20 24 6d 61 78 53 69 7a 65 29 0a 7b 0a 24 65 78 70 69 72 65 20 on.gc($ttl,.$maxSize).{.$expire.
59940 3d 20 6e 65 77 20 5c 44 61 74 65 54 69 6d 65 28 29 3b 0a 24 65 78 70 69 72 65 2d 3e 6d 6f 64 69 =.new.\DateTime();.$expire->modi
59960 66 79 28 27 2d 27 2e 24 74 74 6c 2e 27 20 73 65 63 6f 6e 64 73 27 29 3b 0a 0a 24 66 69 6e 64 65 fy('-'.$ttl.'.seconds');..$finde
59980 72 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6e 64 65 72 28 29 2d 3e 64 61 74 65 28 27 75 6e r.=.$this->getFinder()->date('un
599a0 74 69 6c 20 27 2e 24 65 78 70 69 72 65 2d 3e 66 6f 72 6d 61 74 28 27 59 2d 6d 2d 64 20 48 3a 69 til.'.$expire->format('Y-m-d.H:i
599c0 3a 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6e 64 65 72 20 61 73 20 24 66 69 6c 65 :s'));.foreach.($finder.as.$file
599e0 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 29 ).{.unlink($file->getRealPath())
59a00 3b 0a 7d 0a 0a 24 74 6f 74 61 6c 53 69 7a 65 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 ;.}..$totalSize.=.$this->filesys
59a20 74 65 6d 2d 3e 73 69 7a 65 28 24 74 68 69 73 2d 3e 72 6f 6f 74 29 3b 0a 69 66 20 28 24 74 6f 74 tem->size($this->root);.if.($tot
59a40 61 6c 53 69 7a 65 20 3e 20 24 6d 61 78 53 69 7a 65 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d alSize.>.$maxSize).{.$iterator.=
59a60 20 24 74 68 69 73 2d 3e 67 65 74 46 69 6e 64 65 72 28 29 2d 3e 73 6f 72 74 42 79 41 63 63 65 73 .$this->getFinder()->sortByAcces
59a80 73 65 64 54 69 6d 65 28 29 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 77 68 69 6c 65 20 sedTime()->getIterator();.while.
59aa0 28 24 74 6f 74 61 6c 53 69 7a 65 20 3e 20 24 6d 61 78 53 69 7a 65 20 26 26 20 24 69 74 65 72 61 ($totalSize.>.$maxSize.&&.$itera
59ac0 74 6f 72 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 24 66 69 6c 65 70 61 74 68 20 3d 20 24 69 74 65 tor->valid()).{.$filepath.=.$ite
59ae0 72 61 74 6f 72 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 3b rator->current()->getRealPath();
59b00 0a 24 74 6f 74 61 6c 53 69 7a 65 20 2d 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d .$totalSize.-=.$this->filesystem
59b20 2d 3e 73 69 7a 65 28 24 66 69 6c 65 70 61 74 68 29 3b 0a 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 70 ->size($filepath);.unlink($filep
59b40 61 74 68 29 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 6e 65 78 74 28 29 3b 0a 7d 0a 7d 0a 0a 73 65 ath);.$iterator->next();.}.}..se
59b60 6c 66 3a 3a 24 63 61 63 68 65 43 6f 6c 6c 65 63 74 65 64 20 3d 20 74 72 75 65 3b 0a 0a 72 65 74 lf::$cacheCollected.=.true;..ret
59b80 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 61 urn.true;.}..public.function.sha
59ba0 31 28 24 66 69 6c 65 29 0a 7b 0a 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 1($file).{.$file.=.preg_replace(
59bc0 27 7b 5b 5e 27 2e 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d '{[^'.$this->whitelist.']}i',.'-
59be0 27 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 ',.$file);.if.($this->enabled.&&
59c00 20 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 .file_exists($this->root...$file
59c20 29 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 )).{.return.sha1_file($this->roo
59c40 74 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a t...$file);.}..return.false;.}..
59c60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 61 32 35 36 28 24 66 69 6c 65 29 0a 7b 0a public.function.sha256($file).{.
59c80 24 66 69 6c 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 5e 27 2e 24 74 68 69 73 $file.=.preg_replace('{[^'.$this
59ca0 2d 3e 77 68 69 74 65 6c 69 73 74 2e 27 5d 7d 69 27 2c 20 27 2d 27 2c 20 24 66 69 6c 65 29 3b 0a ->whitelist.']}i',.'-',.$file);.
59cc0 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
59ce0 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
59d00 20 68 61 73 68 5f 66 69 6c 65 28 27 73 68 61 32 35 36 27 2c 20 24 74 68 69 73 2d 3e 72 6f 6f 74 .hash_file('sha256',.$this->root
59d20 20 2e 20 24 66 69 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 ...$file);.}..return.false;.}..p
59d40 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 6e 64 65 72 28 29 0a 7b 0a rotected.function.getFinder().{.
59d60 72 65 74 75 72 6e 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 2d 3e 69 6e 28 24 74 68 69 return.Finder::create()->in($thi
59d80 73 2d 3e 72 6f 6f 74 29 2d 3e 66 69 6c 65 73 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a s->root)->files();.}.}.<?php....
59da0 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
59dc0 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
59de0 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 74 65 72 kage\PackageInterface;.....inter
59e00 66 61 63 65 20 50 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 face.PolicyInterface.{.public.fu
59e20 6e 63 74 69 6f 6e 20 76 65 72 73 69 6f 6e 43 6f 6d 70 61 72 65 28 50 61 63 6b 61 67 65 49 6e 74 nction.versionCompare(PackageInt
59e40 65 72 66 61 63 65 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 62 2c 20 erface.$a,.PackageInterface.$b,.
59e60 24 6f 70 65 72 61 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 $operator);.public.function.find
59e80 55 70 64 61 74 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 UpdatePackages(Pool.$pool,.array
59ea0 20 24 69 6e 73 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 .$installedMap,.PackageInterface
59ec0 20 24 70 61 63 6b 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 .$package);.public.function.sele
59ee0 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 6f 6f 6c 2c 20 61 ctPreferedPackages(Pool.$pool,.a
59f00 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 24 6c 69 74 65 72 rray.$installedMap,.array.$liter
59f20 61 6c 73 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 als);.}.<?php............namespa
59f40 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;.
59f60 0a 0a 0a 0a 63 6c 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 ....class.RuleSet.implements.\It
59f80 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 0a 20 eratorAggregate,.\Countable.{...
59fa0 63 6f 6e 73 74 20 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 const.TYPE_PACKAGE.=.0;.const.TY
59fc0 50 45 5f 4a 4f 42 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 PE_JOB.=.1;.const.TYPE_LEARNED.=
59fe0 20 34 3b 0a 0a 70 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 .4;..protected.static.$types.=.a
5a000 72 72 61 79 28 0a 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 rray(.-1.=>.'UNKNOWN',.self::TYP
5a020 45 5f 50 41 43 4b 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 E_PACKAGE.=>.'PACKAGE',.self::TY
5a040 50 45 5f 4a 4f 42 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 PE_JOB.=>.'JOB',.self::TYPE_LEAR
5a060 4e 45 44 20 3d 3e 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 NED.=>.'LEARNED',.);..protected.
5a080 24 72 75 6c 65 73 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 $rules;.protected.$ruleById;.pro
5a0a0 74 65 63 74 65 64 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 tected.$nextRuleId;..protected.$
5a0c0 72 75 6c 65 73 42 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 rulesByHash;..public.function.__
5a0e0 63 6f 6e 73 74 72 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 construct().{.$this->nextRuleId.
5a100 3d 20 30 3b 0a 0a 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 =.0;..foreach.($this->getTypes()
5a120 20 61 73 20 24 74 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 .as.$type).{.$this->rules[$type]
5a140 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 .=.array();.}..$this->rulesByHas
5a160 68 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 74 69 6f 6e 20 h.=.array();.}..public.function.
5a180 61 64 64 28 52 75 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 add(Rule.$rule,.$type).{.if.(!is
5a1a0 73 65 74 28 73 65 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 set(self::$types[$type])).{.thro
5a1c0 77 20 6e 65 77 20 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 w.new.\OutOfBoundsException('Unk
5a1e0 6e 6f 77 6e 20 72 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 nown.rule.type:.'...$type);.}..i
5a200 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 79 70 65 5d 29 29 20 f.(!isset($this->rules[$type])).
5a220 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 61 79 28 29 3b {.$this->rules[$type].=.array();
5a240 0a 7d 0a 0a 24 74 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 .}..$this->rules[$type][].=.$rul
5a260 65 3b 0a 24 74 68 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 e;.$this->ruleById[$this->nextRu
5a280 6c 65 49 64 5d 20 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 leId].=.$rule;.$rule->setType($t
5a2a0 79 70 65 29 3b 0a 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 ype);..$rule->setId($this->nextR
5a2c0 75 6c 65 49 64 29 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 uleId);.$this->nextRuleId++;..$h
5a2e0 61 73 68 20 3d 20 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 ash.=.$rule->getHash();.if.(!iss
5a300 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 29 29 20 7b et($this->rulesByHash[$hash])).{
5a320 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 42 79 48 61 73 68 5b 24 68 61 73 68 5d 20 3d 20 61 72 72 .$this->rulesByHash[$hash].=.arr
5a340 61 79 28 24 72 75 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 ay($rule);.}.else.{.$this->rules
5a360 42 79 48 61 73 68 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 ByHash[$hash][].=.$rule;.}.}..pu
5a380 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 6e 20 24 blic.function.count().{.return.$
5a3a0 74 68 69 73 2d 3e 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 this->nextRuleId;.}..public.func
5a3c0 74 69 6f 6e 20 72 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 tion.ruleById($id).{.return.$thi
5a3e0 73 2d 3e 72 75 6c 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 s->ruleById[$id];.}..public.func
5a400 74 69 6f 6e 20 67 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 tion.getRules().{.return.$this->
5a420 72 75 6c 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 49 74 65 rules;.}..public.function.getIte
5a440 72 61 74 6f 72 28 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 rator().{.return.new.RuleSetIter
5a460 61 74 6f 72 28 24 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 ator($this->getRules());.}..publ
5a480 69 63 20 66 75 6e 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 ic.function.getIteratorFor($type
5a4a0 73 29 0a 7b 0a 69 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 s).{.if.(!is_array($types)).{.$t
5a4c0 79 70 65 73 20 3d 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 ypes.=.array($types);.}..$allRul
5a4e0 65 73 20 3d 20 24 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 es.=.$this->getRules();.$rules.=
5a500 20 61 72 72 61 79 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 .array();..foreach.($types.as.$t
5a520 79 70 65 29 20 7b 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 ype).{.$rules[$type].=.$allRules
5a540 5b 24 74 79 70 65 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 [$type];.}..return.new.RuleSetIt
5a560 65 72 61 74 6f 72 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 erator($rules);.}..public.functi
5a580 6f 6e 20 67 65 74 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 on.getIteratorWithout($types).{.
5a5a0 69 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 if.(!is_array($types)).{.$types.
5a5c0 3d 20 61 72 72 61 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 =.array($types);.}..$rules.=.$th
5a5e0 69 73 2d 3e 67 65 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 is->getRules();..foreach.($types
5a600 20 61 73 20 24 74 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 .as.$type).{.unset($rules[$type]
5a620 29 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
5a640 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
5a660 54 79 70 65 73 28 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 Types().{.$types.=.self::$types;
5a680 0a 75 6e 73 65 74 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 .unset($types[-1]);..return.arra
5a6a0 79 5f 6b 65 79 73 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 y_keys($types);.}..public.functi
5a6c0 6f 6e 20 63 6f 6e 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 on.containsEqual($rule).{.if.(is
5a6e0 73 65 74 28 24 74 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 set($this->rulesByHash[$rule->ge
5a700 74 48 61 73 68 28 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 tHash()])).{.$potentialDuplicate
5a720 73 20 3d 20 24 74 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 s.=.$this->rulesByHash[$rule->ge
5a740 74 48 61 73 68 28 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 tHash()];.foreach.($potentialDup
5a760 6c 69 63 61 74 65 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 licates.as.$potentialDuplicate).
5a780 7b 0a 69 66 20 28 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 {.if.($rule->equals($potentialDu
5a7a0 70 6c 69 63 61 74 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 plicate)).{.return.true;.}.}.}..
5a7c0 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e return.false;.}..public.function
5a7e0 20 5f 5f 74 6f 53 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 .__toString().{.$string.=."\n";.
5a800 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 74 79 70 65 20 3d foreach.($this->rules.as.$type.=
5a820 3e 20 24 72 75 6c 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 >.$rules).{.$string..=.str_pad(s
5a840 65 6c 66 3a 3a 24 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 elf::$types[$type],.8,.'.')...":
5a860 20 22 3b 0a 66 6f 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 .";.foreach.($rules.as.$rule).{.
5a880 24 73 74 72 69 6e 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 $string..=.$rule."\n";.}.$string
5a8a0 20 2e 3d 20 22 5c 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 ..=."\n\n";.}..return.$string;.}
5a8c0 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
5a8e0 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 63 mposer\DependencyResolver;.....c
5a900 6c 61 73 73 20 53 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 lass.SolverBugException.extends.
5a920 5c 52 75 6e 74 69 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 \RuntimeException.{.public.funct
5a940 69 6f 6e 20 5f 5f 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 ion.__construct($message).{.pare
5a960 6e 74 3a 3a 5f 5f 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 nt::__construct(.$message."\nThi
5a980 73 20 65 78 63 65 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 s.exception.was.most.likely.caus
5a9a0 65 64 20 62 79 20 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 ed.by.a.bug.in.Composer.\n".."Pl
5a9c0 65 61 73 65 20 72 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 ease.report.the.command.you.ran,
5a9e0 20 74 68 65 20 65 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 .the.exact.error.you.received,.a
5aa00 6e 64 20 79 6f 75 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 nd.your.composer.json.on.https:/
5aa20 2f 67 69 74 68 75 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 /github.com/composer/composer/is
5aa40 73 75 65 73 20 2d 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 sues.-.thank.you!\n");.}.}.<?php
5aa60 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 ............namespace.Composer\D
5aa80 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ependencyResolver;..use.Composer
5aaa0 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 43 \Package\PackageInterface;.use.C
5aac0 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 omposer\Package\AliasPackage;.us
5aae0 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 6b 61 67 65 3b 0a e.Composer\Package\BasePackage;.
5ab00 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 72 61 use.Composer\Package\LinkConstra
5ab20 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 63 6c 61 73 int\VersionConstraint;......clas
5ab40 73 20 44 65 66 61 75 6c 74 50 6f 6c 69 63 79 20 69 6d 70 6c 65 6d 65 6e 74 73 20 50 6f 6c 69 63 s.DefaultPolicy.implements.Polic
5ab60 79 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 65 72 53 74 61 62 yInterface.{.private.$preferStab
5ab80 6c 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 le;..public.function.__construct
5aba0 28 24 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d ($preferStable.=.false).{.$this-
5abc0 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 3d 20 24 70 72 65 66 65 72 53 74 61 62 6c 65 3b 0a 7d >preferStable.=.$preferStable;.}
5abe0 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 72 65 ..public.function.versionCompare
5ac00 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 6e 74 (PackageInterface.$a,.PackageInt
5ac20 65 72 66 61 63 65 20 24 62 2c 20 24 6f 70 65 72 61 74 6f 72 29 0a 7b 0a 69 66 20 28 24 74 68 69 erface.$b,.$operator).{.if.($thi
5ac40 73 2d 3e 70 72 65 66 65 72 53 74 61 62 6c 65 20 26 26 20 28 24 73 74 61 62 41 20 3d 20 24 61 2d s->preferStable.&&.($stabA.=.$a-
5ac60 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 29 20 21 3d 3d 20 28 24 73 74 61 62 42 20 3d 20 24 >getStability()).!==.($stabB.=.$
5ac80 62 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 42 61 73 b->getStability())).{.return.Bas
5aca0 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 41 5d 20 3c ePackage::$stabilities[$stabA].<
5acc0 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 .BasePackage::$stabilities[$stab
5ace0 42 5d 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 6e B];.}..$constraint.=.new.Version
5ad00 43 6f 6e 73 74 72 61 69 6e 74 28 24 6f 70 65 72 61 74 6f 72 2c 20 24 62 2d 3e 67 65 74 56 65 72 Constraint($operator,.$b->getVer
5ad20 73 69 6f 6e 28 29 29 3b 0a 24 76 65 72 73 69 6f 6e 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 sion());.$version.=.new.VersionC
5ad40 6f 6e 73 74 72 61 69 6e 74 28 27 3d 3d 27 2c 20 24 61 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 onstraint('==',.$a->getVersion()
5ad60 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 53 70 65 );..return.$constraint->matchSpe
5ad80 63 69 66 69 63 28 24 76 65 72 73 69 6f 6e 2c 20 74 72 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 cific($version,.true);.}..public
5ada0 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 50 6f 6f .function.findUpdatePackages(Poo
5adc0 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 50 61 l.$pool,.array.$installedMap,.Pa
5ade0 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 70 61 63 6b ckageInterface.$package).{.$pack
5ae00 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 6f 6c 2d ages.=.array();..foreach.($pool-
5ae20 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 >whatProvides($package->getName(
5ae40 29 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 24 63 61 6e 64 69 64 61 )).as.$candidate).{.if.($candida
5ae60 74 65 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 5d 20 3d te.!==.$package).{.$packages[].=
5ae80 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 .$candidate;.}.}..return.$packag
5aea0 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 69 6f 72 69 es;.}..public.function.getPriori
5aec0 74 79 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 ty(Pool.$pool,.PackageInterface.
5aee0 24 70 61 63 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6f 6c 2d 3e 67 65 74 50 72 69 $package).{.return.$pool->getPri
5af00 6f 72 69 74 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 29 ority($package->getRepository())
5af20 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 50 72 65 66 65 ;.}..public.function.selectPrefe
5af40 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 69 redPackages(Pool.$pool,.array.$i
5af60 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 2c 20 24 72 nstalledMap,.array.$literals,.$r
5af80 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 equiredPackage.=.null).{.$packag
5afa0 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 72 6f 75 70 4c 69 74 65 72 61 6c 73 42 79 4e 61 6d 65 50 es.=.$this->groupLiteralsByNameP
5afc0 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 74 61 6c 6c 65 64 referInstalled($pool,.$installed
5afe0 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b Map,.$literals);..foreach.($pack
5b000 61 67 65 73 20 61 73 20 26 24 6c 69 74 65 72 61 6c 73 29 20 7b 0a 24 70 6f 6c 69 63 79 20 3d 20 ages.as.&$literals).{.$policy.=.
5b020 24 74 68 69 73 3b 0a 75 73 6f 72 74 28 24 6c 69 74 65 72 61 6c 73 2c 20 66 75 6e 63 74 69 6f 6e $this;.usort($literals,.function
5b040 20 28 24 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 .($a,.$b).use.($policy,.$pool,.$
5b060 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 20 installedMap,.$requiredPackage).
5b080 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 6f 72 {.return.$policy->compareByPrior
5b0a0 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 74 61 ityPreferInstalled($pool,.$insta
5b0c0 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 67 65 lledMap,.$pool->literalToPackage
5b0e0 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 24 62 ($a),.$pool->literalToPackage($b
5b100 29 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2c 20 74 72 75 65 29 3b 0a 7d 29 3b 0a ),.$requiredPackage,.true);.});.
5b120 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 26 24 6c 69 74 65 72 }..foreach.($packages.as.&$liter
5b140 61 6c 73 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 54 als).{.$literals.=.$this->pruneT
5b160 6f 42 65 73 74 56 65 72 73 69 6f 6e 28 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a oBestVersion($pool,.$literals);.
5b180 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 54 6f 48 69 67 68 65 .$literals.=.$this->pruneToHighe
5b1a0 73 74 50 72 69 6f 72 69 74 79 4f 72 49 6e 73 74 61 6c 6c 65 64 28 24 70 6f 6f 6c 2c 20 24 69 6e stPriorityOrInstalled($pool,.$in
5b1c0 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 6c 69 74 65 72 61 stalledMap,.$literals);..$litera
5b1e0 6c 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 75 6e 65 52 65 6d 6f 74 65 41 6c 69 61 73 65 73 28 24 ls.=.$this->pruneRemoteAliases($
5b200 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 64 20 3d pool,.$literals);.}..$selected.=
5b220 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 6d 65 72 .call_user_func_array('array_mer
5b240 67 65 27 2c 20 24 70 61 63 6b 61 67 65 73 29 3b 0a 0a 0a 20 75 73 6f 72 74 28 24 73 65 6c 65 63 ge',.$packages);....usort($selec
5b260 74 65 64 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 29 20 75 73 65 20 28 24 70 6f 6c ted,.function.($a,.$b).use.($pol
5b280 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 2c 20 24 72 65 71 75 icy,.$pool,.$installedMap,.$requ
5b2a0 69 72 65 64 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 6f 6c 69 63 79 2d 3e 63 iredPackage).{.return.$policy->c
5b2c0 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 61 6c 6c 65 64 28 ompareByPriorityPreferInstalled(
5b2e0 24 70 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 $pool,.$installedMap,.$pool->lit
5b300 65 72 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 eralToPackage($a),.$pool->litera
5b320 6c 54 6f 50 61 63 6b 61 67 65 28 24 62 29 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 lToPackage($b),.$requiredPackage
5b340 29 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 0a 70 72 6f );.});..return.$selected;.}..pro
5b360 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 72 6f 75 70 4c 69 74 65 72 61 6c 73 42 79 4e tected.function.groupLiteralsByN
5b380 61 6d 65 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 amePreferInstalled(Pool.$pool,.a
5b3a0 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b rray.$installedMap,.$literals).{
5b3c0 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 .$packages.=.array();.foreach.($
5b3e0 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 literals.as.$literal).{.$package
5b400 4e 61 6d 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 Name.=.$pool->literalToPackage($
5b420 6c 69 74 65 72 61 6c 29 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 literal)->getName();..if.(!isset
5b440 28 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 29 29 20 7b 0a 24 70 61 ($packages[$packageName])).{.$pa
5b460 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a ckages[$packageName].=.array();.
5b480 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 61 62 73 28 24 }..if.(isset($installedMap[abs($
5b4a0 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 28 24 70 61 63 literal)])).{.array_unshift($pac
5b4c0 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d 2c 20 24 6c 69 74 65 72 61 6c 29 3b 0a kages[$packageName],.$literal);.
5b4e0 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 4e 61 6d 65 5d }.else.{.$packages[$packageName]
5b500 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b [].=.$literal;.}.}..return.$pack
5b520 61 67 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 70 ages;.}.....public.function.comp
5b540 61 72 65 42 79 50 72 69 6f 72 69 74 79 50 72 65 66 65 72 49 6e 73 74 61 6c 6c 65 64 28 50 6f 6f areByPriorityPreferInstalled(Poo
5b560 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 2c 20 50 61 l.$pool,.array.$installedMap,.Pa
5b580 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 61 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 ckageInterface.$a,.PackageInterf
5b5a0 61 63 65 20 24 62 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 6e 75 6c 6c 2c ace.$b,.$requiredPackage.=.null,
5b5c0 20 24 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 .$ignoreReplace.=.false).{.if.($
5b5e0 61 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 52 65 a->getRepository().===.$b->getRe
5b600 70 6f 73 69 74 6f 72 79 28 29 29 20 7b 0a 0a 20 69 66 20 28 24 61 2d 3e 67 65 74 4e 61 6d 65 28 pository()).{...if.($a->getName(
5b620 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b 0a 24 61 41 6c 69 61 73 65 64 ).===.$b->getName()).{.$aAliased
5b640 20 3d 20 24 61 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 24 .=.$a.instanceof.AliasPackage;.$
5b660 62 41 6c 69 61 73 65 64 20 3d 20 24 62 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 bAliased.=.$b.instanceof.AliasPa
5b680 63 6b 61 67 65 3b 0a 69 66 20 28 24 61 41 6c 69 61 73 65 64 20 26 26 20 21 24 62 41 6c 69 61 73 ckage;.if.($aAliased.&&.!$bAlias
5b6a0 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a 69 66 20 28 21 24 61 41 6c 69 61 ed).{.return.-1;...}.if.(!$aAlia
5b6c0 73 65 64 20 26 26 20 24 62 41 6c 69 61 73 65 64 29 20 7b 0a 72 65 74 75 72 6e 20 31 3b 20 0a 20 sed.&&.$bAliased).{.return.1;...
5b6e0 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 67 6e 6f 72 65 52 65 70 6c 61 63 65 29 20 7b 0a 0a 20 69 66 }.}..if.(!$ignoreReplace).{...if
5b700 20 28 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 61 2c 20 24 62 29 29 20 7b 0a 72 65 74 .($this->replaces($a,.$b)).{.ret
5b720 75 72 6e 20 31 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 70 6c 61 63 65 73 28 24 urn.1;...}.if.($this->replaces($
5b740 62 2c 20 24 61 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 20 0a 20 7d 0a 0a 0a 20 0a 20 69 66 b,.$a)).{.return.-1;...}......if
5b760 20 28 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 .($requiredPackage.&&.false.!==.
5b780 28 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2c ($pos.=.strpos($requiredPackage,
5b7a0 20 27 2f 27 29 29 29 20 7b 0a 24 72 65 71 75 69 72 65 64 56 65 6e 64 6f 72 20 3d 20 73 75 62 73 .'/'))).{.$requiredVendor.=.subs
5b7c0 74 72 28 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 0a tr($requiredPackage,.0,.$pos);..
5b7e0 24 61 49 73 53 61 6d 65 56 65 6e 64 6f 72 20 3d 20 73 75 62 73 74 72 28 24 61 2d 3e 67 65 74 4e $aIsSameVendor.=.substr($a->getN
5b800 61 6d 65 28 29 2c 20 30 2c 20 24 70 6f 73 29 20 3d 3d 3d 20 24 72 65 71 75 69 72 65 64 56 65 6e ame(),.0,.$pos).===.$requiredVen
5b820 64 6f 72 3b 0a 24 62 49 73 53 61 6d 65 56 65 6e 64 6f 72 20 3d 20 73 75 62 73 74 72 28 24 62 2d dor;.$bIsSameVendor.=.substr($b-
5b840 3e 67 65 74 4e 61 6d 65 28 29 2c 20 30 2c 20 24 70 6f 73 29 20 3d 3d 3d 20 24 72 65 71 75 69 72 >getName(),.0,.$pos).===.$requir
5b860 65 64 56 65 6e 64 6f 72 3b 0a 0a 69 66 20 28 24 62 49 73 53 61 6d 65 56 65 6e 64 6f 72 20 21 3d edVendor;..if.($bIsSameVendor.!=
5b880 3d 20 24 61 49 73 53 61 6d 65 56 65 6e 64 6f 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 61 49 73 53 =.$aIsSameVendor).{.return.$aIsS
5b8a0 61 6d 65 56 65 6e 64 6f 72 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 ameVendor.?.-1.:.1;.}.}.}....if.
5b8c0 28 24 61 2d 3e 67 65 74 49 64 28 29 20 3d 3d 3d 20 24 62 2d 3e 67 65 74 49 64 28 29 29 20 7b 0a ($a->getId().===.$b->getId()).{.
5b8e0 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 61 2d 3e 67 65 74 49 64 28 29 return.0;.}..return.($a->getId()
5b900 20 3c 20 24 62 2d 3e 67 65 74 49 64 28 29 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 69 66 20 .<.$b->getId()).?.-1.:.1;.}..if.
5b920 28 69 73 73 65 74 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 61 2d 3e 67 65 74 49 64 28 29 (isset($installedMap[$a->getId()
5b940 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 2d 31 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 69 ])).{.return.-1;.}..if.(isset($i
5b960 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 62 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 72 65 74 nstalledMap[$b->getId()])).{.ret
5b980 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f urn.1;.}..return.($this->getPrio
5b9a0 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 61 29 20 3e 20 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f rity($pool,.$a).>.$this->getPrio
5b9c0 72 69 74 79 28 24 70 6f 6f 6c 2c 20 24 62 29 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 0a 0a 0a 0a rity($pool,.$b)).?.-1.:.1;.}....
5b9e0 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 65 70 6c 61 ........protected.function.repla
5ba00 63 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 72 63 65 2c 20 50 61 ces(PackageInterface.$source,.Pa
5ba20 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 66 6f 72 65 61 63 ckageInterface.$target).{.foreac
5ba40 68 20 28 24 73 6f 75 72 63 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 h.($source->getReplaces().as.$li
5ba60 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().===
5ba80 20 24 74 61 72 67 65 74 2d 3e 67 65 74 4e 61 6d 65 28 29 0a 0a 0a 20 29 20 7b 0a 72 65 74 75 72 .$target->getName()....).{.retur
5baa0 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 n.true;.}.}..return.false;.}..pr
5bac0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 75 6e 65 54 6f 42 65 73 74 56 65 72 73 otected.function.pruneToBestVers
5bae0 69 6f 6e 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 62 65 ion(Pool.$pool,.$literals).{.$be
5bb00 73 74 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 stLiterals.=.array($literals[0])
5bb20 3b 0a 24 62 65 73 74 50 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 ;.$bestPackage.=.$pool->literalT
5bb40 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 66 6f 72 65 61 63 68 20 oPackage($literals[0]);.foreach.
5bb60 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a ($literals.as.$i.=>.$literal).{.
5bb80 69 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 61 if.(0.===.$i).{.continue;.}..$pa
5bba0 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 67 65 28 ckage.=.$pool->literalToPackage(
5bbc0 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 43 6f $literal);..if.($this->versionCo
5bbe0 6d 70 61 72 65 28 24 70 61 63 6b 61 67 65 2c 20 24 62 65 73 74 50 61 63 6b 61 67 65 2c 20 27 3e mpare($package,.$bestPackage,.'>
5bc00 27 29 29 20 7b 0a 24 62 65 73 74 50 61 63 6b 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 ')).{.$bestPackage.=.$package;.$
5bc20 62 65 73 74 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 6c 69 74 65 72 61 6c 29 3b 0a bestLiterals.=.array($literal);.
5bc40 7d 20 65 6c 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 }.elseif.($this->versionCompare(
5bc60 24 70 61 63 6b 61 67 65 2c 20 24 62 65 73 74 50 61 63 6b 61 67 65 2c 20 27 3d 3d 27 29 29 20 7b $package,.$bestPackage,.'==')).{
5bc80 0a 24 62 65 73 74 4c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d .$bestLiterals[].=.$literal;.}.}
5bca0 0a 0a 72 65 74 75 72 6e 20 24 62 65 73 74 4c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 70 72 6f 74 65 ..return.$bestLiterals;.}..prote
5bcc0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 4e 65 77 65 73 74 50 61 63 6b 61 67 cted.function.selectNewestPackag
5bce0 65 73 28 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 24 6c es(array.$installedMap,.array.$l
5bd00 69 74 65 72 61 6c 73 29 0a 7b 0a 24 6d 61 78 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 iterals).{.$maxLiterals.=.array(
5bd20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 6d 61 78 50 61 63 6b 61 67 65 20 3d 20 24 6c 69 $literals[0]);.$maxPackage.=.$li
5bd40 74 65 72 61 6c 73 5b 30 5d 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 66 6f 72 65 61 63 68 terals[0]->getPackage();.foreach
5bd60 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b .($literals.as.$i.=>.$literal).{
5bd80 0a 69 66 20 28 30 20 3d 3d 3d 20 24 69 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 .if.(0.===.$i).{.continue;.}..if
5bda0 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 65 72 61 6c .($this->versionCompare($literal
5bdc0 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 20 27 3e 27 ->getPackage(),.$maxPackage,.'>'
5bde0 29 29 20 7b 0a 24 6d 61 78 50 61 63 6b 61 67 65 20 3d 20 24 6c 69 74 65 72 61 6c 2d 3e 67 65 74 )).{.$maxPackage.=.$literal->get
5be00 50 61 63 6b 61 67 65 28 29 3b 0a 24 6d 61 78 4c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 Package();.$maxLiterals.=.array(
5be20 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 2d 3e 76 65 72 73 $literal);.}.elseif.($this->vers
5be40 69 6f 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 ionCompare($literal->getPackage(
5be60 29 2c 20 24 6d 61 78 50 61 63 6b 61 67 65 2c 20 27 3d 3d 27 29 29 20 7b 0a 24 6d 61 78 4c 69 74 ),.$maxPackage,.'==')).{.$maxLit
5be80 65 72 61 6c 73 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 erals[].=.$literal;.}.}..return.
5bea0 24 6d 61 78 4c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 $maxLiterals;.}.....protected.fu
5bec0 6e 63 74 69 6f 6e 20 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 nction.pruneToHighestPriorityOrI
5bee0 6e 73 74 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 nstalled(Pool.$pool,.array.$inst
5bf00 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 0a 7b 0a 24 73 65 alledMap,.array.$literals).{.$se
5bf20 6c 65 63 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 6e lected.=.array();..$priority.=.n
5bf40 75 6c 6c 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 ull;..foreach.($literals.as.$lit
5bf60 65 72 61 6c 29 20 7b 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 eral).{.$package.=.$pool->litera
5bf80 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 28 69 73 73 65 74 lToPackage($literal);..if.(isset
5bfa0 28 24 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 ($installedMap[$package->getId()
5bfc0 5d 29 29 20 7b 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 63 6f ])).{.$selected[].=.$literal;.co
5bfe0 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 ntinue;.}..if.(null.===.$priorit
5c000 79 29 20 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 69 6f 72 y).{.$priority.=.$this->getPrior
5c020 69 74 79 28 24 70 6f 6f 6c 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 ity($pool,.$package);.}..if.($th
5c040 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 6b 61 67 65 29 is->getPriority($pool,.$package)
5c060 20 21 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 73 65 6c 65 .!=.$priority).{.break;.}..$sele
5c080 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 65 cted[].=.$literal;.}..return.$se
5c0a0 6c 65 63 74 65 64 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 lected;.}.......protected.functi
5c0c0 6f 6e 20 70 72 75 6e 65 52 65 6d 6f 74 65 41 6c 69 61 73 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c on.pruneRemoteAliases(Pool.$pool
5c0e0 2c 20 61 72 72 61 79 20 24 6c 69 74 65 72 61 6c 73 29 0a 7b 0a 24 68 61 73 4c 6f 63 61 6c 41 6c ,.array.$literals).{.$hasLocalAl
5c100 69 61 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 ias.=.false;..foreach.($literals
5c120 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c .as.$literal).{.$package.=.$pool
5c140 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 ->literalToPackage($literal);..i
5c160 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b f.($package.instanceof.AliasPack
5c180 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c age.&&.$package->isRootPackageAl
5c1a0 69 61 73 28 29 29 20 7b 0a 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 20 3d 20 74 72 75 65 3b 0a ias()).{.$hasLocalAlias.=.true;.
5c1c0 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 68 61 73 4c 6f 63 61 6c 41 6c 69 61 73 29 break;.}.}..if.(!$hasLocalAlias)
5c1e0 20 7b 0a 72 65 74 75 72 6e 20 24 6c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 24 73 65 6c 65 63 74 65 .{.return.$literals;.}..$selecte
5c200 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 d.=.array();.foreach.($literals.
5c220 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f 6c 2d as.$literal).{.$package.=.$pool-
5c240 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 >literalToPackage($literal);..if
5c260 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
5c280 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 52 6f 6f 74 50 61 63 6b 61 67 65 41 6c 69 ge.&&.$package->isRootPackageAli
5c2a0 61 73 28 29 29 20 7b 0a 24 73 65 6c 65 63 74 65 64 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a as()).{.$selected[].=.$literal;.
5c2c0 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 65 6c 65 63 74 65 64 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 }.}..return.$selected;.}.}.<?php
5c2e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 ............namespace.Composer\D
5c300 65 70 65 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 44 ependencyResolver;.......class.D
5c320 65 63 69 73 69 6f 6e 73 20 69 6d 70 6c 65 6d 65 6e 74 73 20 5c 49 74 65 72 61 74 6f 72 2c 20 5c ecisions.implements.\Iterator,.\
5c340 43 6f 75 6e 74 61 62 6c 65 0a 7b 0a 63 6f 6e 73 74 20 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 Countable.{.const.DECISION_LITER
5c360 41 4c 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 44 45 43 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 20 3d 20 AL.=.0;.const.DECISION_REASON.=.
5c380 31 3b 0a 0a 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 1;..protected.$pool;.protected.$
5c3a0 64 65 63 69 73 69 6f 6e 4d 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e decisionMap;.protected.$decision
5c3c0 51 75 65 75 65 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 Queue.=.array();..public.functio
5c3e0 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f n.__construct($pool).{.$this->po
5c400 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 3d ol.=.$pool;.$this->decisionMap.=
5c420 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 .array();.}..public.function.dec
5c440 69 64 65 28 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 ide($literal,.$level,.$why).{.$t
5c460 68 69 73 2d 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 his->addDecision($literal,.$leve
5c480 6c 29 3b 0a 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 l);.$this->decisionQueue[].=.arr
5c4a0 61 79 28 0a 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 ay(.self::DECISION_LITERAL.=>.$l
5c4c0 69 74 65 72 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 iteral,.self::DECISION_REASON.=>
5c4e0 20 24 77 68 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 .$why,.);.}..public.function.sat
5c500 69 73 66 79 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 isfy($literal).{.$packageId.=.ab
5c520 73 28 24 6c 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 s($literal);..return.(.$literal.
5c540 3e 20 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b >.0.&&.isset($this->decisionMap[
5c560 24 70 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d $packageId]).&&.$this->decisionM
5c580 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 20 7c 7c 0a 24 6c 69 74 65 72 61 6c 20 3c ap[$packageId].>.0.||.$literal.<
5c5a0 20 30 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 .0.&&.isset($this->decisionMap[$
5c5c0 70 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 packageId]).&&.$this->decisionMa
5c5e0 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3c 20 30 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 p[$packageId].<.0.);.}..public.f
5c600 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 6c 69 63 74 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 24 70 61 unction.conflict($literal).{.$pa
5c620 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 72 6e ckageId.=.abs($literal);..return
5c640 20 28 0a 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 .(.(isset($this->decisionMap[$pa
5c660 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b ckageId]).&&.$this->decisionMap[
5c680 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 29 $packageId].>.0.&&.$literal.<.0)
5c6a0 20 7c 7c 0a 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 .||.(isset($this->decisionMap[$p
5c6c0 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 ackageId]).&&.$this->decisionMap
5c6e0 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3c 20 30 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3e 20 30 [$packageId].<.0.&&.$literal.>.0
5c700 29 0a 29 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 64 65 64 28 ).);.}..public.function.decided(
5c720 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 75 72 6e 20 21 65 $literalOrPackageId).{.return.!e
5c740 6d 70 74 79 28 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 mpty($this->decisionMap[abs($lit
5c760 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 62 6c 69 63 20 66 75 eralOrPackageId)]);.}..public.fu
5c780 6e 63 74 69 6f 6e 20 75 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 nction.undecided($literalOrPacka
5c7a0 67 65 49 64 29 0a 7b 0a 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 64 65 63 69 geId).{.return.empty($this->deci
5c7c0 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 29 sionMap[abs($literalOrPackageId)
5c7e0 5d 29 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 64 65 64 49 6e ]);.}..public.function.decidedIn
5c800 73 74 61 6c 6c 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 stall($literalOrPackageId).{.$pa
5c820 63 6b 61 67 65 49 64 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 ckageId.=.abs($literalOrPackageI
5c840 64 29 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f d);..return.isset($this->decisio
5c860 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 20 26 26 20 24 74 68 69 73 2d 3e 64 65 63 69 nMap[$packageId]).&&.$this->deci
5c880 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3e 20 30 3b 0a 7d 0a 0a 70 75 62 6c sionMap[$packageId].>.0;.}..publ
5c8a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 24 6c 69 74 65 72 ic.function.decisionLevel($liter
5c8c0 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 62 alOrPackageId).{.$packageId.=.ab
5c8e0 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 69 66 20 28 69 73 73 65 s($literalOrPackageId);.if.(isse
5c900 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d t($this->decisionMap[$packageId]
5c920 29 29 20 7b 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 )).{.return.abs($this->decisionM
5c940 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a ap[$packageId]);.}..return.0;.}.
5c960 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c .public.function.decisionRule($l
5c980 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 20 iteralOrPackageId).{.$packageId.
5c9a0 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 4f 72 50 61 63 6b 61 67 65 49 64 29 3b 0a 0a 66 6f 72 =.abs($literalOrPackageId);..for
5c9c0 65 61 63 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 each.($this->decisionQueue.as.$i
5c9e0 20 3d 3e 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 .=>.$decision).{.if.($packageId.
5ca00 3d 3d 3d 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 ===.abs($decision[self::DECISION
5ca20 5f 4c 49 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 _LITERAL])).{.return.$decision[s
5ca40 65 6c 66 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 elf::DECISION_REASON];.}.}..retu
5ca60 72 6e 20 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 rn.null;.}..public.function.atOf
5ca80 66 73 65 74 28 24 71 75 65 75 65 4f 66 66 73 65 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 fset($queueOffset).{.return.$thi
5caa0 73 2d 3e 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 s->decisionQueue[$queueOffset];.
5cac0 7d 0a 0a 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 }..public.function.validOffset($
5cae0 71 75 65 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 queueOffset).{.return.$queueOffs
5cb00 65 74 20 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 et.>=.0.&&.$queueOffset.<.count(
5cb20 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 63 $this->decisionQueue);.}..public
5cb40 20 66 75 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 .function.lastReason().{.return.
5cb60 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 63 6f 75 6e 74 28 24 74 68 69 73 $this->decisionQueue[count($this
5cb80 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 29 20 2d 20 31 5d 5b 73 65 6c 66 3a 3a 44 45 43 49 ->decisionQueue).-.1][self::DECI
5cba0 53 49 4f 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 SION_REASON];.}..public.function
5cbc0 20 6c 61 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 .lastLiteral().{.return.$this->d
5cbe0 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 65 63 69 73 69 ecisionQueue[count($this->decisi
5cc00 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 4e 5f 4c 49 54 onQueue).-.1][self::DECISION_LIT
5cc20 45 52 41 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 ERAL];.}..public.function.reset(
5cc40 29 0a 7b 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 ).{.while.($decision.=.array_pop
5cc60 28 24 74 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 ($this->decisionQueue)).{.$this-
5cc80 3e 64 65 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 >decisionMap[abs($decision[self:
5cca0 3a 44 45 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 :DECISION_LITERAL])].=.0;.}.}..p
5ccc0 75 62 6c 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 ublic.function.resetToOffset($of
5cce0 66 73 65 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 fset).{.while.(count($this->deci
5cd00 73 69 6f 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 sionQueue).>.$offset.+.1).{.$dec
5cd20 69 73 69 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 ision.=.array_pop($this->decisio
5cd40 6e 51 75 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 nQueue);.$this->decisionMap[abs(
5cd60 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 54 45 52 41 4c $decision[self::DECISION_LITERAL
5cd80 5d 29 5d 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 ])].=.0;.}.}..public.function.re
5cda0 76 65 72 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 vertLast().{.$this->decisionMap[
5cdc0 61 62 73 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 abs($this->lastLiteral())].=.0;.
5cde0 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 65 75 65 29 3b array_pop($this->decisionQueue);
5ce00 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 .}..public.function.count().{.re
5ce20 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 6e 51 75 65 75 65 29 turn.count($this->decisionQueue)
5ce40 3b 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 ;.}..public.function.rewind().{.
5ce60 65 6e 64 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 end($this->decisionQueue);.}..pu
5ce80 62 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 blic.function.current().{.return
5cea0 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 65 75 65 29 3b 0a .current($this->decisionQueue);.
5cec0 7d 0a 0a 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 }..public.function.key().{.retur
5cee0 6e 20 6b 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 n.key($this->decisionQueue);.}..
5cf00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 public.function.next().{.return.
5cf20 70 72 65 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 prev($this->decisionQueue);.}..p
5cf40 75 62 6c 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 ublic.function.valid().{.return.
5cf60 66 61 6c 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 false.!==.current($this->decisio
5cf80 6e 51 75 65 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6d nQueue);.}..public.function.isEm
5cfa0 70 74 79 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 pty().{.return.count($this->deci
5cfc0 73 69 6f 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 sionQueue).===.0;.}..protected.f
5cfe0 75 6e 63 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 unction.addDecision($literal,.$l
5d000 65 76 65 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 evel).{.$packageId.=.abs($litera
5d020 6c 29 3b 0a 0a 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 l);..$previousDecision.=.isset($
5d040 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 5d 29 20 3f this->decisionMap[$packageId]).?
5d060 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 5d 20 .$this->decisionMap[$packageId].
5d080 3a 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 70 72 65 76 69 6f 75 73 44 65 63 69 73 69 6f 6e 20 21 3d :.null;.if.($previousDecision.!=
5d0a0 20 30 29 20 7b 0a 24 6c 69 74 65 72 61 6c 53 74 72 69 6e 67 20 3d 20 24 74 68 69 73 2d 3e 70 6f .0).{.$literalString.=.$this->po
5d0c0 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 3b 0a 24 ol->literalToString($literal);.$
5d0e0 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 61 6c 54 6f package.=.$this->pool->literalTo
5d100 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 53 6f 6c Package($literal);.throw.new.Sol
5d120 76 65 72 42 75 67 45 78 63 65 70 74 69 6f 6e 28 0a 22 54 72 79 69 6e 67 20 74 6f 20 64 65 63 69 verBugException(."Trying.to.deci
5d140 64 65 20 24 6c 69 74 65 72 61 6c 53 74 72 69 6e 67 20 6f 6e 20 6c 65 76 65 6c 20 24 6c 65 76 65 de.$literalString.on.level.$leve
5d160 6c 2c 20 65 76 65 6e 20 74 68 6f 75 67 68 20 24 70 61 63 6b 61 67 65 20 77 61 73 20 70 72 65 76 l,.even.though.$package.was.prev
5d180 69 6f 75 73 6c 79 20 64 65 63 69 64 65 64 20 61 73 20 22 2e 28 69 6e 74 29 20 24 70 72 65 76 69 iously.decided.as.".(int).$previ
5d1a0 6f 75 73 44 65 63 69 73 69 6f 6e 2e 22 2e 22 0a 29 3b 0a 7d 0a 0a 69 66 20 28 24 6c 69 74 65 72 ousDecision.".".);.}..if.($liter
5d1c0 61 6c 20 3e 20 30 29 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 al.>.0).{.$this->decisionMap[$pa
5d1e0 63 6b 61 67 65 49 64 5d 20 3d 20 24 6c 65 76 65 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 ckageId].=.$level;.}.else.{.$thi
5d200 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 20 3d 20 2d 24 6c s->decisionMap[$packageId].=.-$l
5d220 65 76 65 6c 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 evel;.}.}.}.<?php............nam
5d240 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
5d260 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 57 61 74 63 68 4e 6f 64 65 0a er;.........class.RuleWatchNode.
5d280 7b 0a 70 75 62 6c 69 63 20 24 77 61 74 63 68 31 3b 0a 70 75 62 6c 69 63 20 24 77 61 74 63 68 32 {.public.$watch1;.public.$watch2
5d2a0 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ;..protected.$rule;.......public
5d2c0 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 72 75 6c 65 29 0a 7b 0a 24 .function.__construct($rule).{.$
5d2e0 74 68 69 73 2d 3e 72 75 6c 65 20 3d 20 24 72 75 6c 65 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d this->rule.=.$rule;..$literals.=
5d300 20 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 .$rule->getLiterals();..$this->w
5d320 61 74 63 68 31 20 3d 20 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 3e 20 30 20 3f 20 24 atch1.=.count($literals).>.0.?.$
5d340 6c 69 74 65 72 61 6c 73 5b 30 5d 20 3a 20 30 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 32 20 3d literals[0].:.0;.$this->watch2.=
5d360 20 63 6f 75 6e 74 28 24 6c 69 74 65 72 61 6c 73 29 20 3e 20 31 20 3f 20 24 6c 69 74 65 72 61 6c .count($literals).>.1.?.$literal
5d380 73 5b 31 5d 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 s[1].:.0;.}..........public.func
5d3a0 74 69 6f 6e 20 77 61 74 63 68 32 4f 6e 48 69 67 68 65 73 74 28 44 65 63 69 73 69 6f 6e 73 20 24 tion.watch2OnHighest(Decisions.$
5d3c0 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e decisions).{.$literals.=.$this->
5d3e0 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 0a 20 69 66 20 28 24 6c 69 74 rule->getLiterals();....if.($lit
5d400 65 72 61 6c 73 20 3c 20 33 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 77 61 74 63 68 4c 65 erals.<.3).{.return;.}..$watchLe
5d420 76 65 6c 20 3d 20 30 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 vel.=.0;..foreach.($literals.as.
5d440 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 6c 65 76 65 6c 20 3d 20 24 64 65 63 69 73 69 6f 6e 73 2d $literal).{.$level.=.$decisions-
5d460 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.($
5d480 6c 65 76 65 6c 20 3e 20 24 77 61 74 63 68 4c 65 76 65 6c 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 level.>.$watchLevel).{.$this->wa
5d4a0 74 63 68 32 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 24 77 61 74 63 68 4c 65 76 65 6c 20 3d 20 24 tch2.=.$literal;.$watchLevel.=.$
5d4c0 6c 65 76 65 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 level;.}.}.}.......public.functi
5d4e0 6f 6e 20 67 65 74 52 75 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c on.getRule().{.return.$this->rul
5d500 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f e;.}........public.function.getO
5d520 74 68 65 72 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d therWatch($literal).{.if.($this-
5d540 3e 77 61 74 63 68 31 20 3d 3d 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 >watch1.==.$literal).{.return.$t
5d560 68 69 73 2d 3e 77 61 74 63 68 32 3b 0a 7d 20 65 6c 73 65 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 his->watch2;.}.else.{.return.$th
5d580 69 73 2d 3e 77 61 74 63 68 31 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 is->watch1;.}.}........public.fu
5d5a0 6e 63 74 69 6f 6e 20 6d 6f 76 65 57 61 74 63 68 28 24 66 72 6f 6d 2c 20 24 74 6f 29 0a 7b 0a 69 nction.moveWatch($from,.$to).{.i
5d5c0 66 20 28 24 74 68 69 73 2d 3e 77 61 74 63 68 31 20 3d 3d 20 24 66 72 6f 6d 29 20 7b 0a 24 74 68 f.($this->watch1.==.$from).{.$th
5d5e0 69 73 2d 3e 77 61 74 63 68 31 20 3d 20 24 74 6f 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 is->watch1.=.$to;.}.else.{.$this
5d600 2d 3e 77 61 74 63 68 32 20 3d 20 24 74 6f 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a ->watch2.=.$to;.}.}.}.<?php.....
5d620 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
5d640 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 6f 6c 76 65 72 50 72 encyResolver;.....class.SolverPr
5d660 6f 62 6c 65 6d 73 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 oblemsException.extends.\Runtime
5d680 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 62 6c 65 6d 73 3b Exception.{.protected.$problems;
5d6a0 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 75 62 6c 69 .protected.$installedMap;..publi
5d6c0 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 70 72 c.function.__construct(array.$pr
5d6e0 6f 62 6c 65 6d 73 2c 20 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 oblems,.array.$installedMap).{.$
5d700 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 20 3d 20 24 70 72 6f 62 6c 65 6d 73 3b 0a 24 74 68 69 this->problems.=.$problems;.$thi
5d720 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b s->installedMap.=.$installedMap;
5d740 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 74 68 69 73 2d 3e 63 72 65 ..parent::__construct($this->cre
5d760 61 74 65 4d 65 73 73 61 67 65 28 29 2c 20 32 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ateMessage(),.2);.}..protected.f
5d780 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4d 65 73 73 61 67 65 28 29 0a 7b 0a 24 74 65 78 74 20 unction.createMessage().{.$text.
5d7a0 3d 20 22 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 =."\n";.foreach.($this->problems
5d7c0 20 61 73 20 24 69 20 3d 3e 20 24 70 72 6f 62 6c 65 6d 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 22 .as.$i.=>.$problem).{.$text..=."
5d7e0 20 20 50 72 6f 62 6c 65 6d 20 22 2e 28 24 69 2b 31 29 2e 24 70 72 6f 62 6c 65 6d 2d 3e 67 65 74 ..Problem.".($i+1).$problem->get
5d800 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 PrettyString($this->installedMap
5d820 29 2e 22 5c 6e 22 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 63 6f )."\n";.}..if.(strpos($text,.'co
5d840 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 27 29 20 7c 7c 20 73 74 72 70 6f 73 28 24 74 65 uld.not.be.found').||.strpos($te
5d860 78 74 2c 20 27 6e 6f 20 6d 61 74 63 68 69 6e 67 20 70 61 63 6b 61 67 65 20 66 6f 75 6e 64 27 29 xt,.'no.matching.package.found')
5d880 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 22 5c 6e 50 6f 74 65 6e 74 69 61 6c 20 63 61 75 73 65 73 ).{.$text..=."\nPotential.causes
5d8a0 3a 5c 6e 20 2d 20 41 20 74 79 70 6f 20 69 6e 20 74 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 :\n.-.A.typo.in.the.package.name
5d8c0 5c 6e 20 2d 20 54 68 65 20 70 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 61 76 61 69 6c 61 62 6c \n.-.The.package.is.not.availabl
5d8e0 65 20 69 6e 20 61 20 73 74 61 62 6c 65 2d 65 6e 6f 75 67 68 20 76 65 72 73 69 6f 6e 20 61 63 63 e.in.a.stable-enough.version.acc
5d900 6f 72 64 69 6e 67 20 74 6f 20 79 6f 75 72 20 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 ording.to.your.minimum-stability
5d920 20 73 65 74 74 69 6e 67 5c 6e 20 20 20 73 65 65 20 3c 68 74 74 70 73 3a 2f 2f 67 72 6f 75 70 73 .setting\n...see.<https://groups
5d940 2e 67 6f 6f 67 6c 65 2e 63 6f 6d 2f 64 2f 74 6f 70 69 63 2f 63 6f 6d 70 6f 73 65 72 2d 64 65 76 .google.com/d/topic/composer-dev
5d960 2f 5f 67 33 41 53 65 49 46 6c 72 63 2f 64 69 73 63 75 73 73 69 6f 6e 3e 20 66 6f 72 20 6d 6f 72 /_g3ASeIFlrc/discussion>.for.mor
5d980 65 20 64 65 74 61 69 6c 73 2e 5c 6e 5c 6e 52 65 61 64 20 3c 68 74 74 70 3a 2f 2f 67 65 74 63 6f e.details.\n\nRead.<http://getco
5d9a0 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 61 72 74 69 63 6c 65 73 2f 74 72 6f 75 62 6c 65 73 mposer.org/doc/articles/troubles
5d9c0 68 6f 6f 74 69 6e 67 2e 6d 64 3e 20 66 6f 72 20 66 75 72 74 68 65 72 20 63 6f 6d 6d 6f 6e 20 70 hooting.md>.for.further.common.p
5d9e0 72 6f 62 6c 65 6d 73 2e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 70 roblems.";.}..return.$text;.}..p
5da00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 62 6c 65 6d 73 28 29 0a 7b 0a 72 ublic.function.getProblems().{.r
5da20 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 eturn.$this->problems;.}.}.<?php
5da40 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 ............namespace.Composer\D
5da60 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 ependencyResolver;..use.Composer
5da80 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 6f \Package\AliasPackage;.use.Compo
5daa0 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
5dac0 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 72 61 6e 73 61 63 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 ;.....class.Transaction.{.protec
5dae0 74 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 ted.$policy;.protected.$pool;.pr
5db00 6f 74 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 70 72 6f 74 65 63 74 65 64 otected.$installedMap;.protected
5db20 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 72 61 6e 73 61 63 74 .$decisions;.protected.$transact
5db40 69 6f 6e 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 ion;..public.function.__construc
5db60 74 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 2c t($policy,.$pool,.$installedMap,
5db80 20 24 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 3d 20 24 .$decisions).{.$this->policy.=.$
5dba0 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 24 74 68 policy;.$this->pool.=.$pool;.$th
5dbc0 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 is->installedMap.=.$installedMap
5dbe0 3b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 20 3d 20 24 64 65 63 69 73 69 6f 6e 73 3b ;.$this->decisions.=.$decisions;
5dc00 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d .$this->transaction.=.array();.}
5dc20 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 65 72 61 74 69 6f 6e 73 28 ..public.function.getOperations(
5dc40 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 20 3d 20 24 74 68 ).{.$installMeansUpdateMap.=.$th
5dc60 69 73 2d 3e 66 69 6e 64 55 70 64 61 74 65 73 28 29 3b 0a 0a 24 75 70 64 61 74 65 4d 61 70 20 3d is->findUpdates();..$updateMap.=
5dc80 20 61 72 72 61 79 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b .array();.$installMap.=.array();
5dca0 0a 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 .$uninstallMap.=.array();..forea
5dcc0 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
5dce0 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[
5dd00 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 72 Decisions::DECISION_LITERAL];.$r
5dd20 65 61 73 6f 6e 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 eason.=.$decision[Decisions::DEC
5dd40 49 53 49 4f 4e 5f 52 45 41 53 4f 4e 5d 3b 0a 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 ISION_REASON];..$package.=.$this
5dd60 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
5dd80 6c 29 3b 0a 0a 0a 20 69 66 20 28 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 3d 3d 20 28 69 73 l);....if.(($literal.>.0).==.(is
5dda0 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 set($this->installedMap[$package
5ddc0 2d 3e 67 65 74 49 64 28 29 5d 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 ->getId()]))).{.continue;.}..if.
5dde0 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 69 6e 73 74 ($literal.>.0).{.if.(isset($inst
5de00 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d allMeansUpdateMap[abs($literal)]
5de20 29 20 26 26 20 21 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 ).&&.!$package.instanceof.AliasP
5de40 61 63 6b 61 67 65 29 20 7b 0a 0a 24 73 6f 75 72 63 65 20 3d 20 24 69 6e 73 74 61 6c 6c 4d 65 61 ackage).{..$source.=.$installMea
5de60 6e 73 55 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 3b 0a 0a 24 75 70 nsUpdateMap[abs($literal)];..$up
5de80 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 61 72 72 dateMap[$package->getId()].=.arr
5dea0 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 73 6f 75 72 ay(.'package'.=>.$package,.'sour
5dec0 63 65 27 20 3d 3e 20 24 73 6f 75 72 63 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 61 ce'.=>.$source,.'reason'.=>.$rea
5dee0 73 6f 6e 2c 0a 29 3b 0a 0a 0a 20 75 6e 73 65 74 28 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 son,.);....unset($installMeansUp
5df00 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 3b 0a 24 69 67 6e 6f 72 65 dateMap[abs($literal)]);.$ignore
5df20 52 65 6d 6f 76 65 5b 24 73 6f 75 72 63 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b Remove[$source->getId()].=.true;
5df40 0a 7d 20 65 6c 73 65 20 7b 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e .}.else.{.$installMap[$package->
5df60 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 20 3d 3e 20 24 getId()].=.array(.'package'.=>.$
5df80 70 61 63 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 package,.'reason'.=>.$reason,.);
5dfa0 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e .}.}.}..foreach.($this->decision
5dfc0 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 74 65 72 61 6c s.as.$i.=>.$decision).{.$literal
5dfe0 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
5e000 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 2d 3e 70 6f 6f _LITERAL];.$package.=.$this->poo
5e020 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 0a 0a l->literalToPackage($literal);..
5e040 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 20 26 26 0a 69 73 73 65 74 28 24 74 68 69 73 if.($literal.<=.0.&&.isset($this
5e060 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 ->installedMap[$package->getId()
5e080 5d 29 20 26 26 0a 21 69 73 73 65 74 28 24 69 67 6e 6f 72 65 52 65 6d 6f 76 65 5b 24 70 61 63 6b ]).&&.!isset($ignoreRemove[$pack
5e0a0 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 5b age->getId()])).{.$uninstallMap[
5e0c0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 $package->getId()].=.array(.'pac
5e0e0 6b 61 67 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 kage'.=>.$package,.'reason'.=>.$
5e100 72 65 61 73 6f 6e 2c 0a 29 3b 0a 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 74 reason,.);..}.}..$this->transact
5e120 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 74 65 ionFromMaps($installMap,.$update
5e140 4d 61 70 2c 20 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 Map,.$uninstallMap);..return.$th
5e160 69 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 is->transaction;.}..protected.fu
5e180 6e 63 74 69 6f 6e 20 74 72 61 6e 73 61 63 74 69 6f 6e 46 72 6f 6d 4d 61 70 73 28 24 69 6e 73 74 nction.transactionFromMaps($inst
5e1a0 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 6c 6c 4d 61 allMap,.$updateMap,.$uninstallMa
5e1c0 70 29 0a 7b 0a 24 71 75 65 75 65 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e p).{.$queue.=.array_map(function
5e1e0 20 28 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 61 74 69 6f .($operation).{.return.$operatio
5e200 6e 5b 27 70 61 63 6b 61 67 65 27 5d 3b 0a 7d 2c 0a 24 74 68 69 73 2d 3e 66 69 6e 64 52 6f 6f 74 n['package'];.},.$this->findRoot
5e220 50 61 63 6b 61 67 65 73 28 24 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 4d 61 70 Packages($installMap,.$updateMap
5e240 29 0a 29 3b 0a 0a 24 76 69 73 69 74 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 77 68 69 6c 65 ).);..$visited.=.array();..while
5e260 20 28 21 65 6d 70 74 79 28 24 71 75 65 75 65 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 61 .(!empty($queue)).{.$package.=.a
5e280 72 72 61 79 5f 70 6f 70 28 24 71 75 65 75 65 29 3b 0a 24 70 61 63 6b 61 67 65 49 64 20 3d 20 24 rray_pop($queue);.$packageId.=.$
5e2a0 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 76 package->getId();..if.(!isset($v
5e2c0 69 73 69 74 65 64 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 isited[$packageId])).{.array_pus
5e2e0 68 28 24 71 75 65 75 65 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a 69 66 20 28 24 70 61 63 6b 61 h($queue,.$package);..if.($packa
5e300 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 61 72 ge.instanceof.AliasPackage).{.ar
5e320 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c ray_push($queue,.$package->getAl
5e340 69 61 73 4f 66 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 iasOf());.}.else.{.foreach.($pac
5e360 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a kage->getRequires().as.$link).{.
5e380 24 70 6f 73 73 69 62 6c 65 52 65 71 75 69 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d $possibleRequires.=.$this->pool-
5e3a0 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 >whatProvides($link->getTarget()
5e3c0 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 66 6f 72 65 ,.$link->getConstraint());..fore
5e3e0 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 24 72 65 71 75 69 ach.($possibleRequires.as.$requi
5e400 72 65 29 20 7b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 71 75 65 75 65 2c 20 24 72 65 71 75 69 72 re).{.array_push($queue,.$requir
5e420 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 76 69 73 69 74 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 e);.}.}.}..$visited[$package->ge
5e440 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 73 65 tId()].=.true;.}.else.{.if.(isse
5e460 74 28 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 24 74 t($installMap[$packageId])).{.$t
5e480 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 28 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 his->install(.$installMap[$packa
5e4a0 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 0a 24 69 6e 73 74 61 6c 6c 4d 61 70 5b 24 70 geId]['package'],.$installMap[$p
5e4c0 61 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 73 6f 6e 27 5d 0a 29 3b 0a 75 6e 73 65 74 28 24 69 6e ackageId]['reason'].);.unset($in
5e4e0 73 74 61 6c 6c 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 3b 0a 7d 0a 69 66 20 28 69 73 73 stallMap[$packageId]);.}.if.(iss
5e500 65 74 28 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 24 74 et($updateMap[$packageId])).{.$t
5e520 68 69 73 2d 3e 75 70 64 61 74 65 28 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 his->update(.$updateMap[$package
5e540 49 64 5d 5b 27 73 6f 75 72 63 65 27 5d 2c 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 Id]['source'],.$updateMap[$packa
5e560 67 65 49 64 5d 5b 27 70 61 63 6b 61 67 65 27 5d 2c 0a 24 75 70 64 61 74 65 4d 61 70 5b 24 70 61 geId]['package'],.$updateMap[$pa
5e580 63 6b 61 67 65 49 64 5d 5b 27 72 65 61 73 6f 6e 27 5d 0a 29 3b 0a 75 6e 73 65 74 28 24 75 70 64 ckageId]['reason'].);.unset($upd
5e5a0 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 66 6f 72 65 ateMap[$packageId]);.}.}.}..fore
5e5c0 61 63 68 20 28 24 75 6e 69 6e 73 74 61 6c 6c 4d 61 70 20 61 73 20 24 75 6e 69 6e 73 74 61 6c 6c ach.($uninstallMap.as.$uninstall
5e5e0 29 20 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 6e 73 74 61 6c 6c 28 24 75 6e 69 6e 73 74 61 6c 6c 5b ).{.$this->uninstall($uninstall[
5e600 27 70 61 63 6b 61 67 65 27 5d 2c 20 24 75 6e 69 6e 73 74 61 6c 6c 5b 27 72 65 61 73 6f 6e 27 5d 'package'],.$uninstall['reason']
5e620 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 52 );.}.}..protected.function.findR
5e640 6f 6f 74 50 61 63 6b 61 67 65 73 28 24 69 6e 73 74 61 6c 6c 4d 61 70 2c 20 24 75 70 64 61 74 65 ootPackages($installMap,.$update
5e660 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 69 6e 73 74 61 6c 6c 4d 61 70 20 2b Map).{.$packages.=.$installMap.+
5e680 20 24 75 70 64 61 74 65 4d 61 70 3b 0a 24 72 6f 6f 74 73 20 3d 20 24 70 61 63 6b 61 67 65 73 3b .$updateMap;.$roots.=.$packages;
5e6a0 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 70 61 63 6b 61 67 65 ..foreach.($packages.as.$package
5e6c0 49 64 20 3d 3e 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 Id.=>.$operation).{.$package.=.$
5e6e0 6f 70 65 72 61 74 69 6f 6e 5b 27 70 61 63 6b 61 67 65 27 5d 3b 0a 0a 69 66 20 28 21 69 73 73 65 operation['package'];..if.(!isse
5e700 74 28 24 72 6f 6f 74 73 5b 24 70 61 63 6b 61 67 65 49 64 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 t($roots[$packageId])).{.continu
5e720 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 e;.}..foreach.($package->getRequ
5e740 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
5e760 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
5e780 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
5e7a0 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
5e7c0 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 75 6e 73 65 74 28 24 eRequires.as.$require).{.unset($
5e7e0 72 6f 6f 74 73 5b 24 72 65 71 75 69 72 65 2d 3e 67 65 74 49 64 28 29 5d 29 3b 0a 7d 0a 7d 0a 7d roots[$require->getId()]);.}.}.}
5e800 0a 0a 72 65 74 75 72 6e 20 24 72 6f 6f 74 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 ..return.$roots;.}..protected.fu
5e820 6e 63 74 69 6f 6e 20 66 69 6e 64 55 70 64 61 74 65 73 28 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 4d nction.findUpdates().{.$installM
5e840 65 61 6e 73 55 70 64 61 74 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 eansUpdateMap.=.array();..foreac
5e860 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 65 h.($this->decisions.as.$i.=>.$de
5e880 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 44 cision).{.$literal.=.$decision[D
5e8a0 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 61 ecisions::DECISION_LITERAL];.$pa
5e8c0 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 61 ckage.=.$this->pool->literalToPa
5e8e0 63 6b 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 ckage($literal);..if.($package.i
5e900 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 63 6f 6e 74 69 6e nstanceof.AliasPackage).{.contin
5e920 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 20 26 26 20 69 73 ue;.}....if.($literal.<=.0.&&.is
5e940 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 set($this->installedMap[$package
5e960 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 75 70 64 61 74 65 73 20 3d 20 24 74 68 69 73 2d ->getId()])).{.$updates.=.$this-
5e980 3e 70 6f 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 >policy->findUpdatePackages($thi
5e9a0 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 70 s->pool,.$this->installedMap,.$p
5e9c0 61 63 6b 61 67 65 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 24 70 61 63 ackage);..$literals.=.array($pac
5e9e0 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 75 70 64 61 74 kage->getId());..foreach.($updat
5ea00 65 73 20 61 73 20 24 75 70 64 61 74 65 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 5b 5d 20 3d 20 24 es.as.$update).{.$literals[].=.$
5ea20 75 70 64 61 74 65 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 update->getId();.}..foreach.($li
5ea40 74 65 72 61 6c 73 20 61 73 20 24 75 70 64 61 74 65 4c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 terals.as.$updateLiteral).{.if.(
5ea60 24 75 70 64 61 74 65 4c 69 74 65 72 61 6c 20 21 3d 3d 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 24 $updateLiteral.!==.$literal).{.$
5ea80 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 75 70 64 61 74 installMeansUpdateMap[abs($updat
5eaa0 65 4c 69 74 65 72 61 6c 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a eLiteral)].=.$package;.}.}.}.}..
5eac0 72 65 74 75 72 6e 20 24 69 6e 73 74 61 6c 6c 4d 65 61 6e 73 55 70 64 61 74 65 4d 61 70 3b 0a 7d return.$installMeansUpdateMap;.}
5eae0 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 24 70 61 ..protected.function.install($pa
5eb00 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 ckage,.$reason).{.if.($package.i
5eb20 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 72 65 74 75 72 6e nstanceof.AliasPackage).{.return
5eb40 20 24 74 68 69 73 2d 3e 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b .$this->markAliasInstalled($pack
5eb60 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 age,.$reason);.}..$this->transac
5eb80 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 tion[].=.new.Operation\InstallOp
5eba0 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 eration($package,.$reason);.}..p
5ebc0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 24 66 72 6f 6d 2c 20 rotected.function.update($from,.
5ebe0 24 74 6f 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 $to,.$reason).{.$this->transacti
5ec00 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 on[].=.new.Operation\UpdateOpera
5ec20 74 69 6f 6e 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 70 72 tion($from,.$to,.$reason);.}..pr
5ec40 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 6e 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b otected.function.uninstall($pack
5ec60 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 age,.$reason).{.if.($package.ins
5ec80 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 tanceof.AliasPackage).{.return.$
5eca0 74 68 69 73 2d 3e 6d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 6b this->markAliasUninstalled($pack
5ecc0 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 74 72 61 6e 73 61 63 age,.$reason);.}..$this->transac
5ece0 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e 5c 55 6e 69 6e 73 74 61 6c 6c tion[].=.new.Operation\Uninstall
5ed00 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 6e 29 3b 0a 7d 0a Operation($package,.$reason);.}.
5ed20 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 69 61 73 49 6e 73 .protected.function.markAliasIns
5ed40 74 61 6c 6c 65 64 28 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 29 0a 7b 0a 24 74 68 69 talled($package,.$reason).{.$thi
5ed60 73 2d 3e 74 72 61 6e 73 61 63 74 69 6f 6e 5b 5d 20 3d 20 6e 65 77 20 4f 70 65 72 61 74 69 6f 6e s->transaction[].=.new.Operation
5ed80 5c 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 28 24 70 61 \MarkAliasInstalledOperation($pa
5eda0 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
5edc0 6e 63 74 69 6f 6e 20 6d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 28 24 70 61 63 nction.markAliasUninstalled($pac
5ede0 6b 61 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 kage,.$reason).{.$this->transact
5ee00 69 6f 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 55 ion[].=.new.Operation\MarkAliasU
5ee20 6e 69 6e 73 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 ninstalledOperation($package,.$r
5ee40 65 61 73 6f 6e 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 eason);.}.}.<?php............nam
5ee60 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
5ee80 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 63 6b er\Operation;..use.Composer\Pack
5eea0 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 73 age\PackageInterface;.......clas
5eec0 73 20 55 6e 69 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c s.UninstallOperation.extends.Sol
5eee0 76 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 verOperation.{.protected.$packag
5ef00 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 e;........public.function.__cons
5ef20 74 72 75 63 74 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 truct(PackageInterface.$package,
5ef40 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 5f 5f 63 6f 6e .$reason.=.null).{.parent::__con
5ef60 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 63 6b 61 67 65 struct($reason);..$this->package
5ef80 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 20 66 75 6e 63 .=.$package;.}.......public.func
5efa0 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 tion.getPackage().{.return.$this
5efc0 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 75 6e 63 74 69 ->package;.}.......public.functi
5efe0 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 75 6e 69 6e 73 74 on.getJobType().{.return.'uninst
5f000 61 6c 6c 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 5f 5f 74 6f all';.}.....public.function.__to
5f020 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 55 6e 69 6e 73 74 61 6c 6c 69 6e 67 20 String().{.return.'Uninstalling.
5f040 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 '.$this->package->getPrettyName(
5f060 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 69 ).'.('.$this->formatVersion($thi
5f080 73 2d 3e 70 61 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a s->package).')';.}.}.<?php......
5f0a0 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
5f0c0 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 ncyResolver\Operation;..use.Comp
5f0e0 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 0a oser\Package\PackageInterface;..
5f100 0a 0a 0a 0a 0a 63 6c 61 73 73 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e .....class.UpdateOperation.exten
5f120 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 64 20 24 ds.SolverOperation.{.protected.$
5f140 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 61 72 67 65 initialPackage;.protected.$targe
5f160 74 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f tPackage;.........public.functio
5f180 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 n.__construct(PackageInterface.$
5f1a0 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
5f1c0 74 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 5f 5f 63 t,.$reason.=.null).{.parent::__c
5f1e0 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 69 6e 69 74 69 onstruct($reason);..$this->initi
5f200 61 6c 50 61 63 6b 61 67 65 20 3d 20 24 69 6e 69 74 69 61 6c 3b 0a 24 74 68 69 73 2d 3e 74 61 72 alPackage.=.$initial;.$this->tar
5f220 67 65 74 50 61 63 6b 61 67 65 20 3d 20 24 74 61 72 67 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 getPackage.=.$target;.}.......pu
5f240 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 blic.function.getInitialPackage(
5f260 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 ).{.return.$this->initialPackage
5f280 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 54 61 72 ;.}.......public.function.getTar
5f2a0 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 61 72 getPackage().{.return.$this->tar
5f2c0 67 65 74 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 getPackage;.}.......public.funct
5f2e0 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 75 70 64 61 74 ion.getJobType().{.return.'updat
5f300 65 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 e';.}.....public.function.__toSt
5f320 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 55 70 64 61 74 69 6e 67 20 27 2e 24 74 68 69 ring().{.return.'Updating.'.$thi
5f340 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 s->initialPackage->getPrettyName
5f360 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
5f380 69 73 2d 3e 69 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 29 2e 27 29 20 74 6f 20 27 2e 0a 24 74 68 is->initialPackage).').to.'..$th
5f3a0 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 is->targetPackage->getPrettyName
5f3c0 28 29 2e 20 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 ()..'.('.$this->formatVersion($t
5f3e0 68 69 73 2d 3e 74 61 72 67 65 74 50 61 63 6b 61 67 65 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 his->targetPackage).')';.}.}.<?p
5f400 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
5f420 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 0a 0a \DependencyResolver\Operation;..
5f440 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 50 61 63 6b 61 67 use.Composer\Package\AliasPackag
5f460 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 e;.......class.MarkAliasInstalle
5f480 64 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 61 74 69 dOperation.extends.SolverOperati
5f4a0 6f 6e 0a 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 on.{.protected.$package;........
5f4c0 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 41 6c 69 61 public.function.__construct(Alia
5f4e0 73 50 61 63 6b 61 67 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 sPackage.$package,.$reason.=.nul
5f500 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
5f520 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;.}
5f540 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
5f560 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;.}..
5f580 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(
5f5a0 29 0a 7b 0a 72 65 74 75 72 6e 20 27 6d 61 72 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 27 3b ).{.return.'markAliasInstalled';
5f5c0 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e .}.....public.function.__toStrin
5f5e0 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 4d 61 72 6b 69 6e 67 20 27 2e 24 74 68 69 73 2d 3e 70 g().{.return.'Marking.'.$this->p
5f600 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 74 68 ackage->getPrettyName().'.('.$th
5f620 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 is->formatVersion($this->package
5f640 29 2e 27 29 20 61 73 20 69 6e 73 74 61 6c 6c 65 64 2c 20 61 6c 69 61 73 20 6f 66 20 27 2e 24 74 ).').as.installed,.alias.of.'.$t
5f660 68 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 2d 3e 67 65 74 50 his->package->getAliasOf()->getP
5f680 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 65 rettyName().'.('.$this->formatVe
5f6a0 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 rsion($this->package->getAliasOf
5f6c0 28 29 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 0a 6e 61 ()).')';.}.}.<?php............na
5f6e0 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c mespace.Composer\DependencyResol
5f700 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 63 ver\Operation;..use.Composer\Pac
5f720 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
5f740 73 73 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 ss.InstallOperation.extends.Solv
5f760 65 72 4f 70 65 72 61 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 61 63 6b 61 67 65 erOperation.{.protected.$package
5f780 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
5f7a0 72 75 63 74 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 ruct(PackageInterface.$package,.
5f7c0 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 5f 5f 63 6f 6e 73 $reason.=.null).{.parent::__cons
5f7e0 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 63 6b 61 67 65 20 truct($reason);..$this->package.
5f800 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 20 66 75 6e 63 74 =.$package;.}.......public.funct
5f820 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d ion.getPackage().{.return.$this-
5f840 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 75 6e 63 74 69 6f >package;.}.......public.functio
5f860 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 69 6e 73 74 61 6c 6c n.getJobType().{.return.'install
5f880 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 5f 5f 74 6f 53 74 72 ';.}.....public.function.__toStr
5f8a0 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 49 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 68 ing().{.return.'Installing.'.$th
5f8c0 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 is->package->getPrettyName().'.(
5f8e0 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 70 61 '.$this->formatVersion($this->pa
5f900 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...........
5f920 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
5f940 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\
5f960 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 75 Package\Version\VersionParser;.u
5f980 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
5f9a0 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 53 6f 6c 76 65 face;.......abstract.class.Solve
5f9c0 72 4f 70 65 72 61 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 70 65 72 61 74 69 6f 6e 49 rOperation.implements.OperationI
5f9e0 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 3b 0a 0a 0a nterface.{.protected.$reason;...
5fa00 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(
5fa20 24 72 65 61 73 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 $reason.=.null).{.$this->reason.
5fa40 3d 20 24 72 65 61 73 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 =.$reason;.}.......public.functi
5fa60 6f 6e 20 67 65 74 52 65 61 73 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 on.getReason().{.return.$this->r
5fa80 65 61 73 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 66 6f 72 eason;.}..protected.function.for
5faa0 6d 61 74 56 65 72 73 69 6f 6e 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 matVersion(PackageInterface.$pac
5fac0 6b 61 67 65 29 0a 7b 0a 72 65 74 75 72 6e 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3a 3a 66 6f kage).{.return.VersionParser::fo
5fae0 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 rmatVersion($package);.}.}.<?php
5fb00 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 ............namespace.Composer\D
5fb20 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 75 73 ependencyResolver\Operation;..us
5fb40 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;
5fb60 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 .......class.MarkAliasUninstalle
5fb80 64 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 61 74 69 dOperation.extends.SolverOperati
5fba0 6f 6e 0a 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 on.{.protected.$package;........
5fbc0 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 41 6c 69 61 public.function.__construct(Alia
5fbe0 73 50 61 63 6b 61 67 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 sPackage.$package,.$reason.=.nul
5fc00 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
5fc20 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;.}
5fc40 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
5fc60 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;.}..
5fc80 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(
5fca0 29 0a 7b 0a 72 65 74 75 72 6e 20 27 6d 61 72 6b 41 6c 69 61 73 55 6e 69 6e 73 74 61 6c 6c 65 64 ).{.return.'markAliasUninstalled
5fcc0 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 5f 5f 74 6f 53 74 72 ';.}.....public.function.__toStr
5fce0 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 4d 61 72 6b 69 6e 67 20 27 2e 24 74 68 69 73 2d ing().{.return.'Marking.'.$this-
5fd00 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2e 27 20 28 27 2e 24 >package->getPrettyName().'.('.$
5fd20 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 this->formatVersion($this->packa
5fd40 67 65 29 2e 27 29 20 61 73 20 75 6e 69 6e 73 74 61 6c 6c 65 64 2c 20 61 6c 69 61 73 20 6f 66 20 ge).').as.uninstalled,.alias.of.
5fd60 27 2e 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 2d 3e '.$this->package->getAliasOf()->
5fd80 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
5fda0 61 74 56 65 72 73 69 6f 6e 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 atVersion($this->package->getAli
5fdc0 61 73 4f 66 28 29 29 2e 27 29 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a asOf()).')';.}.}.<?php..........
5fde0 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
5fe00 65 73 6f 6c 76 65 72 5c 4f 70 65 72 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 esolver\Operation;.......interfa
5fe20 63 65 20 4f 70 65 72 61 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 ce.OperationInterface.{......pub
5fe40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 54 79 70 65 28 29 3b 0a 0a 0a 0a 0a 0a lic.function.getJobType();......
5fe60 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 29 3b 0a 0a 0a .public.function.getReason();...
5fe80 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 ....public.function.__toString()
5fea0 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 43 ;.}.<?php............namespace.C
5fec0 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 omposer\DependencyResolver;..use
5fee0 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 6b 61 67 65 3b 0a 75 .Composer\Package\BasePackage;.u
5ff00 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 se.Composer\Package\AliasPackage
5ff20 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 56 ;.use.Composer\Package\Version\V
5ff40 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 61 63 6b 61 ersionParser;.use.Composer\Packa
5ff60 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 ge\Link;.use.Composer\Package\Li
5ff80 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
5ffa0 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 4c 69 6e 6b 43 face;.use.Composer\Package\LinkC
5ffc0 6f 6e 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 onstraint\VersionConstraint;.use
5ffe0 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 .Composer\Package\LinkConstraint
60000 5c 45 6d 70 74 79 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 \EmptyConstraint;.use.Composer\R
60020 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 epository\RepositoryInterface;.u
60040 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
60060 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
60080 6f 72 79 5c 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 ory\ComposerRepository;.use.Comp
600a0 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 6f 73 69 74 oser\Repository\InstalledReposit
600c0 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 52 65 70 6f 73 oryInterface;.use.Composer\Repos
600e0 69 74 6f 72 79 5c 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 itory\StreamableRepositoryInterf
60100 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 50 6c 61 ace;.use.Composer\Repository\Pla
60120 74 66 6f 72 6d 52 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 tformRepository;........class.Po
60140 6f 6c 0a 7b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 4e 41 4d 45 20 3d 20 2d 31 3b 0a 63 6f 6e 73 ol.{.const.MATCH_NAME.=.-1;.cons
60160 74 20 4d 41 54 43 48 5f 4e 4f 4e 45 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 20 3d 20 t.MATCH_NONE.=.0;.const.MATCH.=.
60180 31 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 5f 50 52 4f 56 49 44 45 20 3d 20 32 3b 0a 63 6f 6e 73 1;.const.MATCH_PROVIDE.=.2;.cons
601a0 74 20 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 4d 41 54 43 48 t.MATCH_REPLACE.=.3;.const.MATCH
601c0 5f 46 49 4c 54 45 52 45 44 20 3d 20 34 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 70 6f 73 _FILTERED.=.4;..protected.$repos
601e0 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 itories.=.array();.protected.$pr
60200 6f 76 69 64 65 72 52 65 70 6f 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 oviderRepos.=.array();.protected
60220 20 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 .$packages.=.array();.protected.
60240 24 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 $packageByName.=.array();.protec
60260 74 65 64 20 24 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 3b 0a 70 72 6f 74 ted.$acceptableStabilities;.prot
60280 65 63 74 65 64 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 70 72 6f 74 65 63 74 65 64 ected.$stabilityFlags;.protected
602a0 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 76 .$versionParser;.protected.$prov
602c0 69 64 65 72 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 iderCache.=.array();.protected.$
602e0 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 20 3d 20 filterRequires;.protected.$id.=.
60300 31 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 1;..public.function.__construct(
60320 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 20 3d 20 27 73 74 61 62 6c 65 27 2c 20 61 72 $minimumStability.=.'stable',.ar
60340 72 61 79 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 61 72 72 61 79 28 29 2c 20 61 ray.$stabilityFlags.=.array(),.a
60360 72 72 61 79 20 24 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a rray.$filterRequires.=.array()).
60380 7b 0a 24 73 74 61 62 69 6c 69 74 69 65 73 20 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 {.$stabilities.=.BasePackage::$s
603a0 74 61 62 69 6c 69 74 69 65 73 3b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 50 61 72 73 65 72 tabilities;.$this->versionParser
603c0 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 24 74 68 69 73 2d 3e 61 63 63 .=.new.VersionParser;.$this->acc
603e0 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f eptableStabilities.=.array();.fo
60400 72 65 61 63 68 20 28 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 65 73 reach.(BasePackage::$stabilities
60420 20 61 73 20 24 73 74 61 62 69 6c 69 74 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 .as.$stability.=>.$value).{.if.(
60440 24 76 61 6c 75 65 20 3c 3d 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 $value.<=.BasePackage::$stabilit
60460 69 65 73 5b 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 5d 29 20 7b 0a 24 74 68 69 73 2d ies[$minimumStability]).{.$this-
60480 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 5b 24 73 74 61 62 69 6c 69 74 >acceptableStabilities[$stabilit
604a0 79 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 y].=.$value;.}.}.$this->stabilit
604c0 79 46 6c 61 67 73 20 3d 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 3b 0a 24 74 68 69 73 2d yFlags.=.$stabilityFlags;.$this-
604e0 3e 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 20 3d 20 24 66 69 6c 74 65 72 52 65 71 75 69 72 65 >filterRequires.=.$filterRequire
60500 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 61 64 64 52 s;.}........public.function.addR
60520 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
60540 65 70 6f 2c 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 epo,.$rootAliases.=.array()).{.i
60560 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 70 6f 73 69 74 65 52 65 70 f.($repo.instanceof.CompositeRep
60580 6f 73 69 74 6f 72 79 29 20 7b 0a 24 72 65 70 6f 73 20 3d 20 24 72 65 70 6f 2d 3e 67 65 74 52 65 ository).{.$repos.=.$repo->getRe
605a0 70 6f 73 69 74 6f 72 69 65 73 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 70 6f 73 20 3d 20 positories();.}.else.{.$repos.=.
605c0 61 72 72 61 79 28 24 72 65 70 6f 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 array($repo);.}..foreach.($repos
605e0 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 .as.$repo).{.$this->repositories
60600 5b 5d 20 3d 20 24 72 65 70 6f 3b 0a 0a 24 65 78 65 6d 70 74 20 3d 20 24 72 65 70 6f 20 69 6e 73 [].=.$repo;..$exempt.=.$repo.ins
60620 74 61 6e 63 65 6f 66 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 7c 7c 20 24 72 tanceof.PlatformRepository.||.$r
60640 65 70 6f 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f epo.instanceof.InstalledReposito
60660 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 0a 69 66 20 28 24 72 65 70 6f 20 69 6e 73 74 61 6e 63 65 ryInterface;..if.($repo.instance
60680 6f 66 20 43 6f 6d 70 6f 73 65 72 52 65 70 6f 73 69 74 6f 72 79 20 26 26 20 24 72 65 70 6f 2d 3e of.ComposerRepository.&&.$repo->
606a0 68 61 73 50 72 6f 76 69 64 65 72 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 76 69 64 65 hasProviders()).{.$this->provide
606c0 72 52 65 70 6f 73 5b 5d 20 3d 20 24 72 65 70 6f 3b 0a 24 72 65 70 6f 2d 3e 73 65 74 52 6f 6f 74 rRepos[].=.$repo;.$repo->setRoot
606e0 41 6c 69 61 73 65 73 28 24 72 6f 6f 74 41 6c 69 61 73 65 73 29 3b 0a 24 72 65 70 6f 2d 3e 72 65 Aliases($rootAliases);.$repo->re
60700 73 65 74 50 61 63 6b 61 67 65 49 64 73 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 65 70 6f setPackageIds();.}.elseif.($repo
60720 20 69 6e 73 74 61 6e 63 65 6f 66 20 53 74 72 65 61 6d 61 62 6c 65 52 65 70 6f 73 69 74 6f 72 79 .instanceof.StreamableRepository
60740 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 Interface).{.foreach.($repo->get
60760 4d 69 6e 69 6d 61 6c 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 MinimalPackages().as.$package).{
60780 0a 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 3b 0a 24 76 65 72 73 .$name.=.$package['name'];.$vers
607a0 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 24 73 74 61 62 ion.=.$package['version'];.$stab
607c0 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 65 53 74 61 62 ility.=.VersionParser::parseStab
607e0 69 6c 69 74 79 28 24 76 65 72 73 69 6f 6e 29 3b 0a 0a 0a 20 24 6e 61 6d 65 73 20 3d 20 61 72 72 ility($version);....$names.=.arr
60800 61 79 28 0a 24 6e 61 6d 65 20 3d 3e 20 74 72 75 65 2c 0a 29 3b 0a 69 66 20 28 69 73 73 65 74 28 ay(.$name.=>.true,.);.if.(isset(
60820 24 70 61 63 6b 61 67 65 5b 27 70 72 6f 76 69 64 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 $package['provide'])).{.foreach.
60840 28 24 70 61 63 6b 61 67 65 5b 27 70 72 6f 76 69 64 65 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 ($package['provide'].as.$target.
60860 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 74 61 72 67 65 74 =>.$constraint).{.$names[$target
60880 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 ].=.true;.}.}.if.(isset($package
608a0 5b 27 72 65 70 6c 61 63 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 ['replace'])).{.foreach.($packag
608c0 65 5b 27 72 65 70 6c 61 63 65 27 5d 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 63 6f 6e 73 e['replace'].as.$target.=>.$cons
608e0 74 72 61 69 6e 74 29 20 7b 0a 24 6e 61 6d 65 73 5b 24 74 61 72 67 65 74 5d 20 3d 20 74 72 75 65 traint).{.$names[$target].=.true
60900 3b 0a 7d 0a 7d 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 6e 61 6d 65 73 ;.}.}.$names.=.array_keys($names
60920 29 3b 0a 0a 69 66 20 28 24 65 78 65 6d 70 74 20 7c 7c 20 24 74 68 69 73 2d 3e 69 73 50 61 63 6b );..if.($exempt.||.$this->isPack
60940 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 6e 61 6d 65 73 2c 20 24 73 74 61 62 69 6c 69 74 79 ageAcceptable($names,.$stability
60960 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 5b 27 69 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 64 2b )).{.$package['id'].=.$this->id+
60980 2b 3b 0a 24 70 61 63 6b 61 67 65 5b 27 73 74 61 62 69 6c 69 74 79 27 5d 20 3d 20 24 73 74 61 62 +;.$package['stability'].=.$stab
609a0 69 6c 69 74 79 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 70 61 63 6b ility;.$this->packages[].=.$pack
609c0 61 67 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 70 72 6f 76 69 64 age;..foreach.($names.as.$provid
609e0 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f 76 ed).{.$this->packageByName[$prov
60a00 69 64 65 64 5d 5b 24 70 61 63 6b 61 67 65 5b 27 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 ided][$package['id']].=.$this->p
60a20 61 63 6b 61 67 65 73 5b 24 74 68 69 73 2d 3e 69 64 20 2d 20 32 5d 3b 0a 7d 0a 0a 0a 20 75 6e 73 ackages[$this->id.-.2];.}....uns
60a40 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 72 et($rootAliasData);.if.(isset($r
60a60 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5d 29 29 20 7b 0a ootAliases[$name][$version])).{.
60a80 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e $rootAliasData.=.$rootAliases[$n
60aa0 61 6d 65 5d 5b 24 76 65 72 73 69 6f 6e 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 ame][$version];.}.elseif.(isset(
60ac0 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 29 20 26 26 $package['alias_normalized']).&&
60ae0 20 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b .isset($rootAliases[$name][$pack
60b00 61 67 65 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 5d 29 29 20 7b 0a 24 72 6f age['alias_normalized']])).{.$ro
60b20 6f 74 41 6c 69 61 73 44 61 74 61 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 otAliasData.=.$rootAliases[$name
60b40 5d 5b 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 5d 3b ][$package['alias_normalized']];
60b60 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 44 61 74 61 29 29 20 7b .}..if.(isset($rootAliasData)).{
60b80 0a 24 61 6c 69 61 73 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 75 6e 73 65 74 28 24 61 6c 69 61 73 .$alias.=.$package;.unset($alias
60ba0 5b 27 72 61 77 27 5d 29 3b 0a 24 61 6c 69 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 72 ['raw']);.$alias['version'].=.$r
60bc0 6f 6f 74 41 6c 69 61 73 44 61 74 61 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d ootAliasData['alias_normalized']
60be0 3b 0a 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 20 3d 20 24 72 6f 6f 74 41 6c 69 61 73 44 61 ;.$alias['alias'].=.$rootAliasDa
60c00 74 61 5b 27 61 6c 69 61 73 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6f 66 27 5d 20 ta['alias'];.$alias['alias_of'].
60c20 3d 20 24 70 61 63 6b 61 67 65 5b 27 69 64 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 69 64 27 5d 20 3d =.$package['id'];.$alias['id'].=
60c40 20 24 74 68 69 73 2d 3e 69 64 2b 2b 3b 0a 24 61 6c 69 61 73 5b 27 72 6f 6f 74 5f 61 6c 69 61 73 .$this->id++;.$alias['root_alias
60c60 27 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 '].=.true;.$this->packages[].=.$
60c80 61 6c 69 61 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 70 72 6f 76 alias;..foreach.($names.as.$prov
60ca0 69 64 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 ided).{.$this->packageByName[$pr
60cc0 6f 76 69 64 65 64 5d 5b 24 61 6c 69 61 73 5b 27 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 ovided][$alias['id']].=.$this->p
60ce0 61 63 6b 61 67 65 73 5b 24 74 68 69 73 2d 3e 69 64 20 2d 20 32 5d 3b 0a 7d 0a 7d 0a 0a 0a 20 69 ackages[$this->id.-.2];.}.}....i
60d00 66 20 28 69 73 73 65 74 28 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 27 5d 29 29 20 7b 0a 24 f.(isset($package['alias'])).{.$
60d20 61 6c 69 61 73 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 75 6e 73 65 74 28 24 61 6c 69 61 73 5b 27 alias.=.$package;.unset($alias['
60d40 72 61 77 27 5d 29 3b 0a 24 61 6c 69 61 73 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 24 70 61 63 raw']);.$alias['version'].=.$pac
60d60 6b 61 67 65 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 24 61 6c 69 61 73 kage['alias_normalized'];.$alias
60d80 5b 27 61 6c 69 61 73 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 61 6c 69 61 73 27 5d 3b 0a 24 ['alias'].=.$package['alias'];.$
60da0 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6f 66 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 69 64 alias['alias_of'].=.$package['id
60dc0 27 5d 3b 0a 24 61 6c 69 61 73 5b 27 69 64 27 5d 20 3d 20 24 74 68 69 73 2d 3e 69 64 2b 2b 3b 0a '];.$alias['id'].=.$this->id++;.
60de0 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 3b 0a 0a 66 6f 72 $this->packages[].=.$alias;..for
60e00 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 70 72 6f 76 69 64 65 64 29 20 7b 0a 24 74 68 each.($names.as.$provided).{.$th
60e20 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 70 72 6f 76 69 64 65 64 5d 5b 24 61 6c is->packageByName[$provided][$al
60e40 69 61 73 5b 27 69 64 27 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b 24 74 68 ias['id']].=.$this->packages[$th
60e60 69 73 2d 3e 69 64 20 2d 20 32 5d 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f is->id.-.2];.}.}.}.}.}.else.{.fo
60e80 72 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 reach.($repo->getPackages().as.$
60ea0 70 61 63 6b 61 67 65 29 20 7b 0a 24 6e 61 6d 65 73 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 package).{.$names.=.$package->ge
60ec0 74 4e 61 6d 65 73 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 2d tNames();.$stability.=.$package-
60ee0 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 3b 0a 69 66 20 28 24 65 78 65 6d 70 74 20 7c 7c 20 >getStability();.if.($exempt.||.
60f00 24 74 68 69 73 2d 3e 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 6e 61 6d 65 $this->isPackageAcceptable($name
60f20 73 2c 20 24 73 74 61 62 69 6c 69 74 79 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 s,.$stability)).{.$package->setI
60f40 64 28 24 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 73 5b d($this->id++);.$this->packages[
60f60 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 6e 61 6d 65 73 20 61 ].=.$package;..foreach.($names.a
60f80 73 20 24 70 72 6f 76 69 64 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e s.$provided).{.$this->packageByN
60fa0 61 6d 65 5b 24 70 72 6f 76 69 64 65 64 5d 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a ame[$provided][].=.$package;.}..
60fc0 0a 20 24 6e 61 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 69 ..$name.=.$package->getName();.i
60fe0 66 20 28 69 73 73 65 74 28 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 f.(isset($rootAliases[$name][$pa
61000 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 29 29 20 7b 0a 24 61 6c 69 61 73 20 ckage->getVersion()])).{.$alias.
61020 3d 20 24 72 6f 6f 74 41 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 5b 24 70 61 63 6b 61 67 65 2d 3e =.$rootAliases[$name][$package->
61040 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 3b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 getVersion()];.if.($package.inst
61060 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 anceof.AliasPackage).{.$package.
61080 3d 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 24 61 6c 69 =.$package->getAliasOf();.}.$ali
610a0 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 65 28 24 70 61 asPackage.=.new.AliasPackage($pa
610c0 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 69 7a 65 64 27 ckage,.$alias['alias_normalized'
610e0 5d 2c 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 ],.$alias['alias']);.$aliasPacka
61100 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 75 65 29 3b 0a 24 ge->setRootPackageAlias(true);.$
61120 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 24 74 68 69 73 2d 3e 69 64 2b 2b 29 aliasPackage->setId($this->id++)
61140 3b 0a 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 61 64 ;..$package->getRepository()->ad
61160 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e dPackage($aliasPackage);.$this->
61180 70 61 63 6b 61 67 65 73 5b 5d 20 3d 20 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 66 6f 72 packages[].=.$aliasPackage;..for
611a0 65 61 63 68 20 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 20 each.($aliasPackage->getNames().
611c0 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 6d 65 as.$name).{.$this->packageByName
611e0 5b 24 6e 61 6d 65 5d 5b 5d 20 3d 20 24 61 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 7d 0a 7d 0a 7d [$name][].=.$aliasPackage;.}.}.}
61200 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 69 .}.}.}.}..public.function.getPri
61220 6f 72 69 74 79 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 29 ority(RepositoryInterface.$repo)
61240 0a 7b 0a 24 70 72 69 6f 72 69 74 79 20 3d 20 61 72 72 61 79 5f 73 65 61 72 63 68 28 24 72 65 70 .{.$priority.=.array_search($rep
61260 6f 2c 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 74 72 75 65 29 3b 0a 0a o,.$this->repositories,.true);..
61280 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 70 72 69 6f 72 69 74 79 29 20 7b 0a 74 68 72 6f 77 if.(false.===.$priority).{.throw
612a0 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 43 6f 75 6c 64 20 6e 6f .new.\RuntimeException("Could.no
612c0 74 20 64 65 74 65 72 6d 69 6e 65 20 72 65 70 6f 73 69 74 6f 72 79 20 70 72 69 6f 72 69 74 79 2e t.determine.repository.priority.
612e0 20 54 68 65 20 72 65 70 6f 73 69 74 6f 72 79 20 77 61 73 20 6e 6f 74 20 72 65 67 69 73 74 65 72 .The.repository.was.not.register
61300 65 64 20 69 6e 20 74 68 65 20 70 6f 6f 6c 2e 22 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 2d 24 70 ed.in.the.pool.");.}..return.-$p
61320 72 69 6f 72 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f riority;.}........public.functio
61340 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 20 24 74 68 69 n.packageById($id).{.return.$thi
61360 73 2d 3e 65 6e 73 75 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 74 68 69 73 2d 3e s->ensurePackageIsLoaded($this->
61380 70 61 63 6b 61 67 65 73 5b 24 69 64 20 2d 20 31 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 packages[$id.-.1]);.}..........p
613a0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6e 61 6d ublic.function.whatProvides($nam
613c0 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 6f 6e 73 e,.LinkConstraintInterface.$cons
613e0 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 traint.=.null).{.if.(isset($this
61400 2d 3e 70 72 6f 76 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 28 73 74 72 69 6e 67 29 20 ->providerCache[$name][(string).
61420 24 63 6f 6e 73 74 72 61 69 6e 74 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 $constraint])).{.return.$this->p
61440 72 6f 76 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 28 73 74 72 69 6e 67 29 20 24 63 6f roviderCache[$name][(string).$co
61460 6e 73 74 72 61 69 6e 74 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 76 nstraint];.}..return.$this->prov
61480 69 64 65 72 43 61 63 68 65 5b 24 6e 61 6d 65 5d 5b 28 73 74 72 69 6e 67 29 20 24 63 6f 6e 73 74 iderCache[$name][(string).$const
614a0 72 61 69 6e 74 5d 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 75 74 65 57 68 61 74 50 72 6f 76 69 raint].=.$this->computeWhatProvi
614c0 64 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 des($name,.$constraint);.}.....p
614e0 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 70 75 74 65 57 68 61 74 50 72 6f 76 69 rivate.function.computeWhatProvi
61500 64 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 24 63 61 6e 64 69 des($name,.$constraint).{.$candi
61520 64 61 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 dates.=.array();..foreach.($this
61540 2d 3e 70 72 6f 76 69 64 65 72 52 65 70 6f 73 20 61 73 20 24 72 65 70 6f 29 20 7b 0a 66 6f 72 65 ->providerRepos.as.$repo).{.fore
61560 61 63 68 20 28 24 72 65 70 6f 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 74 68 69 73 2c 20 ach.($repo->whatProvides($this,.
61580 24 6e 61 6d 65 29 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 24 63 61 6e 64 69 64 61 $name).as.$candidate).{.$candida
615a0 74 65 73 5b 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a 69 66 20 28 24 63 61 6e 64 69 64 61 tes[].=.$candidate;.if.($candida
615c0 74 65 2d 3e 67 65 74 49 64 28 29 20 3c 20 31 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 2d 3e 73 te->getId().<.1).{.$candidate->s
615e0 65 74 49 64 28 24 74 68 69 73 2d 3e 69 64 2b 2b 29 3b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 etId($this->id++);.$this->packag
61600 65 73 5b 24 74 68 69 73 2d 3e 69 64 20 2d 20 32 5d 20 3d 20 24 63 61 6e 64 69 64 61 74 65 3b 0a es[$this->id.-.2].=.$candidate;.
61620 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 }.}.}..if.(isset($this->packageB
61640 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 yName[$name])).{.$candidates.=.a
61660 72 72 61 79 5f 6d 65 72 67 65 28 24 63 61 6e 64 69 64 61 74 65 73 2c 20 24 74 68 69 73 2d 3e 70 rray_merge($candidates,.$this->p
61680 61 63 6b 61 67 65 42 79 4e 61 6d 65 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 24 6d 61 74 63 68 65 ackageByName[$name]);.}..$matche
616a0 73 20 3d 20 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 s.=.$provideMatches.=.array();.$
616c0 6e 61 6d 65 4d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 61 nameMatch.=.false;..foreach.($ca
616e0 6e 64 69 64 61 74 65 73 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 73 77 69 74 63 68 ndidates.as.$candidate).{.switch
61700 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 28 24 63 61 6e 64 69 64 61 74 65 2c 20 24 6e 61 6d 65 .($this->match($candidate,.$name
61720 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 ,.$constraint)).{.case.self::MAT
61740 43 48 5f 4e 4f 4e 45 3a 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 CH_NONE:.break;..case.self::MATC
61760 48 5f 4e 41 4d 45 3a 0a 24 6e 61 6d 65 4d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b H_NAME:.$nameMatch.=.true;.break
61780 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 3a 0a 24 6e 61 6d 65 4d 61 74 63 68 20 ;..case.self::MATCH:.$nameMatch.
617a0 3d 20 74 72 75 65 3b 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 =.true;.$matches[].=.$this->ensu
617c0 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 62 rePackageIsLoaded($candidate);.b
617e0 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 50 52 4f 56 49 44 45 3a reak;..case.self::MATCH_PROVIDE:
61800 0a 24 70 72 6f 76 69 64 65 4d 61 74 63 68 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 .$provideMatches[].=.$this->ensu
61820 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 62 rePackageIsLoaded($candidate);.b
61840 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 3a reak;..case.self::MATCH_REPLACE:
61860 0a 24 6d 61 74 63 68 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 50 61 63 6b 61 .$matches[].=.$this->ensurePacka
61880 67 65 49 73 4c 6f 61 64 65 64 28 24 63 61 6e 64 69 64 61 74 65 29 3b 0a 62 72 65 61 6b 3b 0a 0a geIsLoaded($candidate);.break;..
618a0 63 61 73 65 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 46 49 4c 54 45 52 45 44 3a 0a 62 72 65 61 6b case.self::MATCH_FILTERED:.break
618c0 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 ;..default:.throw.new.\Unexpecte
618e0 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 65 78 70 65 63 74 65 64 20 6d 61 74 63 dValueException('Unexpected.matc
61900 68 20 74 79 70 65 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 6e 61 6d 65 4d 61 74 63 68 29 h.type');.}.}....if.($nameMatch)
61920 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 .{.return.$matches;.}..return.ar
61940 72 61 79 5f 6d 65 72 67 65 28 24 6d 61 74 63 68 65 73 2c 20 24 70 72 6f 76 69 64 65 4d 61 74 63 ray_merge($matches,.$provideMatc
61960 68 65 73 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 hes);.}..public.function.literal
61980 54 6f 50 61 63 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 64 ToPackage($literal).{.$packageId
619a0 20 3d 20 61 62 73 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .=.abs($literal);..return.$this-
619c0 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 3b 0a 7d 0a 0a 70 75 62 >packageById($packageId);.}..pub
619e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 lic.function.literalToString($li
61a00 74 65 72 61 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 3f 20 teral).{.return.($literal.>.0.?.
61a20 27 2b 27 20 3a 20 27 2d 27 29 20 2e 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 '+'.:.'-')...$this->literalToPac
61a40 6b 61 67 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 kage($literal);.}..public.functi
61a60 6f 6e 20 6c 69 74 65 72 61 6c 54 6f 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 on.literalToPrettyString($litera
61a80 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 l,.$installedMap).{.$package.=.$
61aa0 74 68 69 73 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 this->literalToPackage($literal)
61ac0 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 24 70 61 63 6b ;..if.(isset($installedMap[$pack
61ae0 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 6c 69 age->getId()])).{.$prefix.=.($li
61b00 74 65 72 61 6c 20 3e 20 30 20 3f 20 27 6b 65 65 70 27 20 3a 20 27 72 65 6d 6f 76 65 27 29 3b 0a teral.>.0.?.'keep'.:.'remove');.
61b20 7d 20 65 6c 73 65 20 7b 0a 24 70 72 65 66 69 78 20 3d 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 }.else.{.$prefix.=.($literal.>.0
61b40 20 3f 20 27 69 6e 73 74 61 6c 6c 27 20 3a 20 27 64 6f 6e 5c 27 74 20 69 6e 73 74 61 6c 6c 27 29 .?.'install'.:.'don\'t.install')
61b60 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 65 66 69 78 2e 27 20 27 2e 24 70 61 63 6b 61 67 65 ;.}..return.$prefix.'.'.$package
61b80 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 ->getPrettyString();.}..public.f
61ba0 75 6e 63 74 69 6f 6e 20 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 6e 61 6d unction.isPackageAcceptable($nam
61bc0 65 2c 20 24 73 74 61 62 69 6c 69 74 79 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 e,.$stability).{.foreach.((array
61be0 29 20 24 6e 61 6d 65 20 61 73 20 24 6e 29 20 7b 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 74 ).$name.as.$n).{...if.(!isset($t
61c00 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 5b 24 6e 5d 29 20 26 26 20 69 73 73 65 his->stabilityFlags[$n]).&&.isse
61c20 74 28 24 74 68 69 73 2d 3e 61 63 63 65 70 74 61 62 6c 65 53 74 61 62 69 6c 69 74 69 65 73 5b 24 t($this->acceptableStabilities[$
61c40 73 74 61 62 69 6c 69 74 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a stability])).{.return.true;.}...
61c60 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 .if.(isset($this->stabilityFlags
61c80 5b 24 6e 5d 29 20 26 26 20 42 61 73 65 50 61 63 6b 61 67 65 3a 3a 24 73 74 61 62 69 6c 69 74 69 [$n]).&&.BasePackage::$stabiliti
61ca0 65 73 5b 24 73 74 61 62 69 6c 69 74 79 5d 20 3c 3d 20 24 74 68 69 73 2d 3e 73 74 61 62 69 6c 69 es[$stability].<=.$this->stabili
61cc0 74 79 46 6c 61 67 73 5b 24 6e 5d 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a tyFlags[$n]).{.return.true;.}.}.
61ce0 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 .return.false;.}..private.functi
61d00 6f 6e 20 65 6e 73 75 72 65 50 61 63 6b 61 67 65 49 73 4c 6f 61 64 65 64 28 24 64 61 74 61 29 0a on.ensurePackageIsLoaded($data).
61d20 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 29 29 20 7b 0a 69 66 20 28 69 73 73 {.if.(is_array($data)).{.if.(iss
61d40 65 74 28 24 64 61 74 61 5b 27 61 6c 69 61 73 5f 6f 66 27 5d 29 29 20 7b 0a 24 61 6c 69 61 73 4f et($data['alias_of'])).{.$aliasO
61d60 66 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 49 64 28 24 64 61 74 61 5b 27 61 6c f.=.$this->packageById($data['al
61d80 69 61 73 5f 6f 66 27 5d 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 70 61 63 ias_of']);.$package.=.$this->pac
61da0 6b 61 67 65 73 5b 24 64 61 74 61 5b 27 69 64 27 5d 20 2d 20 31 5d 20 3d 20 24 64 61 74 61 5b 27 kages[$data['id'].-.1].=.$data['
61dc0 72 65 70 6f 27 5d 2d 3e 6c 6f 61 64 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 64 61 74 61 2c 20 repo']->loadAliasPackage($data,.
61de0 24 61 6c 69 61 73 4f 66 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 6f 6f 74 50 61 63 6b $aliasOf);.$package->setRootPack
61e00 61 67 65 41 6c 69 61 73 28 21 65 6d 70 74 79 28 24 64 61 74 61 5b 27 72 6f 6f 74 5f 61 6c 69 61 ageAlias(!empty($data['root_alia
61e20 73 27 5d 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 s']));.}.else.{.$package.=.$this
61e40 2d 3e 70 61 63 6b 61 67 65 73 5b 24 64 61 74 61 5b 27 69 64 27 5d 20 2d 20 31 5d 20 3d 20 24 64 ->packages[$data['id'].-.1].=.$d
61e60 61 74 61 5b 27 72 65 70 6f 27 5d 2d 3e 6c 6f 61 64 50 61 63 6b 61 67 65 28 24 64 61 74 61 29 3b ata['repo']->loadPackage($data);
61e80 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 .}..foreach.($package->getNames(
61ea0 29 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 42 79 4e 61 ).as.$name).{.$this->packageByNa
61ec0 6d 65 5b 24 6e 61 6d 65 5d 5b 24 64 61 74 61 5b 27 69 64 27 5d 5d 20 3d 20 24 70 61 63 6b 61 67 me[$name][$data['id']].=.$packag
61ee0 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 49 64 28 24 64 61 74 61 5b 27 69 64 27 5d e;.}.$package->setId($data['id']
61f00 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 );..return.$package;.}..return.$
61f20 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 data;.}...........private.functi
61f40 6f 6e 20 6d 61 74 63 68 28 24 63 61 6e 64 69 64 61 74 65 2c 20 24 6e 61 6d 65 2c 20 4c 69 6e 6b on.match($candidate,.$name,.Link
61f60 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 69 6e 74 20 ConstraintInterface.$constraint.
61f80 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 63 61 6e 64 69 64 =.null).{...if.(is_array($candid
61fa0 61 74 65 29 29 20 7b 0a 24 63 61 6e 64 69 64 61 74 65 4e 61 6d 65 20 3d 20 24 63 61 6e 64 69 64 ate)).{.$candidateName.=.$candid
61fc0 61 74 65 5b 27 6e 61 6d 65 27 5d 3b 0a 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 20 3d ate['name'];.$candidateVersion.=
61fe0 20 24 63 61 6e 64 69 64 61 74 65 5b 27 76 65 72 73 69 6f 6e 27 5d 3b 0a 24 69 73 44 65 76 20 3d .$candidate['version'];.$isDev.=
62000 20 24 63 61 6e 64 69 64 61 74 65 5b 27 73 74 61 62 69 6c 69 74 79 27 5d 20 3d 3d 3d 20 27 64 65 .$candidate['stability'].===.'de
62020 76 27 3b 0a 24 69 73 41 6c 69 61 73 20 3d 20 69 73 73 65 74 28 24 63 61 6e 64 69 64 61 74 65 5b v';.$isAlias.=.isset($candidate[
62040 27 61 6c 69 61 73 5f 6f 66 27 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 63 61 6e 64 69 64 'alias_of']);.}.else.{...$candid
62060 61 74 65 4e 61 6d 65 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b ateName.=.$candidate->getName();
62080 0a 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 20 3d 20 24 63 61 6e 64 69 64 61 74 65 2d .$candidateVersion.=.$candidate-
620a0 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 3b 0a 24 69 73 44 65 76 20 3d 20 24 63 61 6e 64 69 64 61 >getVersion();.$isDev.=.$candida
620c0 74 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 28 29 20 3d 3d 3d 20 27 64 65 76 27 3b 0a 24 69 te->getStability().===.'dev';.$i
620e0 73 41 6c 69 61 73 20 3d 20 24 63 61 6e 64 69 64 61 74 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 sAlias.=.$candidate.instanceof.A
62100 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 73 44 65 76 20 26 26 20 21 liasPackage;.}..if.(!$isDev.&&.!
62120 24 69 73 41 6c 69 61 73 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 52 $isAlias.&&.isset($this->filterR
62140 65 71 75 69 72 65 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 72 65 71 75 69 72 65 46 69 6c 74 65 equires[$name])).{.$requireFilte
62160 72 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 52 65 71 75 69 72 65 73 5b 24 6e 61 6d 65 5d r.=.$this->filterRequires[$name]
62180 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 71 75 69 72 65 46 69 6c 74 65 72 20 3d 20 6e 65 77 20 ;.}.else.{.$requireFilter.=.new.
621a0 45 6d 70 74 79 43 6f 6e 73 74 72 61 69 6e 74 3b 0a 7d 0a 0a 69 66 20 28 24 63 61 6e 64 69 64 61 EmptyConstraint;.}..if.($candida
621c0 74 65 4e 61 6d 65 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 70 6b 67 43 6f 6e 73 74 72 61 69 teName.===.$name).{.$pkgConstrai
621e0 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 27 3d 3d 27 2c nt.=.new.VersionConstraint('==',
62200 20 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 29 3b 0a 0a 69 66 20 28 24 63 6f 6e 73 74 .$candidateVersion);..if.($const
62220 72 61 69 6e 74 20 3d 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d raint.===.null.||.$constraint->m
62240 61 74 63 68 65 73 28 24 70 6b 67 43 6f 6e 73 74 72 61 69 6e 74 29 29 20 7b 0a 72 65 74 75 72 6e atches($pkgConstraint)).{.return
62260 20 24 72 65 71 75 69 72 65 46 69 6c 74 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 70 6b 67 43 6f 6e .$requireFilter->matches($pkgCon
62280 73 74 72 61 69 6e 74 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 54 43 48 20 3a 20 73 65 6c 66 3a 3a 4d straint).?.self::MATCH.:.self::M
622a0 41 54 43 48 5f 46 49 4c 54 45 52 45 44 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d ATCH_FILTERED;.}..return.self::M
622c0 41 54 43 48 5f 4e 41 4d 45 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 63 61 6e 64 ATCH_NAME;.}..if.(is_array($cand
622e0 69 64 61 74 65 29 29 20 7b 0a 24 70 72 6f 76 69 64 65 73 20 3d 20 69 73 73 65 74 28 24 63 61 6e idate)).{.$provides.=.isset($can
62300 64 69 64 61 74 65 5b 27 70 72 6f 76 69 64 65 27 5d 29 0a 3f 20 24 74 68 69 73 2d 3e 76 65 72 73 didate['provide']).?.$this->vers
62320 69 6f 6e 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 24 63 61 6e 64 69 64 61 74 65 ionParser->parseLinks($candidate
62340 4e 61 6d 65 2c 20 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 2c 20 27 70 72 6f 76 69 64 Name,.$candidateVersion,.'provid
62360 65 73 27 2c 20 24 63 61 6e 64 69 64 61 74 65 5b 27 70 72 6f 76 69 64 65 27 5d 29 0a 3a 20 61 72 es',.$candidate['provide']).:.ar
62380 72 61 79 28 29 3b 0a 24 72 65 70 6c 61 63 65 73 20 3d 20 69 73 73 65 74 28 24 63 61 6e 64 69 64 ray();.$replaces.=.isset($candid
623a0 61 74 65 5b 27 72 65 70 6c 61 63 65 27 5d 29 0a 3f 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e ate['replace']).?.$this->version
623c0 50 61 72 73 65 72 2d 3e 70 61 72 73 65 4c 69 6e 6b 73 28 24 63 61 6e 64 69 64 61 74 65 4e 61 6d Parser->parseLinks($candidateNam
623e0 65 2c 20 24 63 61 6e 64 69 64 61 74 65 56 65 72 73 69 6f 6e 2c 20 27 72 65 70 6c 61 63 65 73 27 e,.$candidateVersion,.'replaces'
62400 2c 20 24 63 61 6e 64 69 64 61 74 65 5b 27 72 65 70 6c 61 63 65 27 5d 29 0a 3a 20 61 72 72 61 79 ,.$candidate['replace']).:.array
62420 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 70 72 6f 76 69 64 65 73 20 3d 20 24 63 61 6e 64 69 64 ();.}.else.{.$provides.=.$candid
62440 61 74 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 3b 0a 24 72 65 70 6c 61 63 65 73 20 3d 20 ate->getProvides();.$replaces.=.
62460 24 63 61 6e 64 69 64 61 74 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 3b 0a 7d 0a 0a 0a 20 $candidate->getReplaces();.}....
62480 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6c 61 63 65 73 5b 30 5d 29 20 7c 7c 20 69 73 73 65 74 if.(isset($replaces[0]).||.isset
624a0 28 24 70 72 6f 76 69 64 65 73 5b 30 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 76 ($provides[0])).{.foreach.($prov
624c0 69 64 65 73 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 ides.as.$link).{.if.($link->getT
624e0 61 72 67 65 74 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 20 26 26 20 28 24 63 6f 6e 73 74 72 61 69 6e arget().===.$name.&&.($constrain
62500 74 20 3d 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 t.===.null.||.$constraint->match
62520 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 29 20 7b 0a 72 es($link->getConstraint()))).{.r
62540 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 46 69 6c 74 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 6c eturn.$requireFilter->matches($l
62560 69 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 ink->getConstraint()).?.self::MA
62580 54 43 48 5f 50 52 4f 56 49 44 45 20 3a 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 46 49 4c 54 45 52 TCH_PROVIDE.:.self::MATCH_FILTER
625a0 45 44 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6c 61 63 65 73 20 61 73 20 24 ED;.}.}..foreach.($replaces.as.$
625c0 6c 69 6e 6b 29 20 7b 0a 69 66 20 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d link).{.if.($link->getTarget().=
625e0 3d 3d 20 24 6e 61 6d 65 20 26 26 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 3d 3d 20 6e 75 6c ==.$name.&&.($constraint.===.nul
62600 6c 20 7c 7c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 6c 69 6e 6b 2d l.||.$constraint->matches($link-
62620 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 >getConstraint()))).{.return.$re
62640 71 75 69 72 65 46 69 6c 74 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 6c 69 6e 6b 2d 3e 67 65 74 43 quireFilter->matches($link->getC
62660 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 52 45 50 4c 41 onstraint()).?.self::MATCH_REPLA
62680 43 45 20 3a 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 46 49 4c 54 45 52 45 44 3b 0a 7d 0a 7d 0a 0a CE.:.self::MATCH_FILTERED;.}.}..
626a0 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 4f 4e 45 3b 0a 7d 0a 0a 69 66 20 28 return.self::MATCH_NONE;.}..if.(
626c0 69 73 73 65 74 28 24 70 72 6f 76 69 64 65 73 5b 24 6e 61 6d 65 5d 29 20 26 26 20 28 24 63 6f 6e isset($provides[$name]).&&.($con
626e0 73 74 72 61 69 6e 74 20 3d 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 24 63 6f 6e 73 74 72 61 69 6e 74 2d straint.===.null.||.$constraint-
62700 3e 6d 61 74 63 68 65 73 28 24 70 72 6f 76 69 64 65 73 5b 24 6e 61 6d 65 5d 2d 3e 67 65 74 43 6f >matches($provides[$name]->getCo
62720 6e 73 74 72 61 69 6e 74 28 29 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 71 75 69 72 65 46 nstraint()))).{.return.$requireF
62740 69 6c 74 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 70 72 6f 76 69 64 65 73 5b 24 6e 61 6d 65 5d 2d ilter->matches($provides[$name]-
62760 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 3f 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f >getConstraint()).?.self::MATCH_
62780 50 52 4f 56 49 44 45 20 3a 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 46 49 4c 54 45 52 45 44 3b 0a PROVIDE.:.self::MATCH_FILTERED;.
627a0 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6c 61 63 65 73 5b 24 6e 61 6d 65 5d 29 20 26 }..if.(isset($replaces[$name]).&
627c0 26 20 28 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 3d 3d 20 6e 75 6c 6c 20 7c 7c 20 24 63 6f 6e 73 &.($constraint.===.null.||.$cons
627e0 74 72 61 69 6e 74 2d 3e 6d 61 74 63 68 65 73 28 24 72 65 70 6c 61 63 65 73 5b 24 6e 61 6d 65 5d traint->matches($replaces[$name]
62800 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 72 ->getConstraint()))).{.return.$r
62820 65 71 75 69 72 65 46 69 6c 74 65 72 2d 3e 6d 61 74 63 68 65 73 28 24 72 65 70 6c 61 63 65 73 5b equireFilter->matches($replaces[
62840 24 6e 61 6d 65 5d 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 20 3f 20 73 65 6c 66 3a $name]->getConstraint()).?.self:
62860 3a 4d 41 54 43 48 5f 52 45 50 4c 41 43 45 20 3a 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 46 49 4c :MATCH_REPLACE.:.self::MATCH_FIL
62880 54 45 52 45 44 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 4d 41 54 43 48 5f 4e 4f 4e TERED;.}..return.self::MATCH_NON
628a0 45 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 E;.}.}.<?php............namespac
628c0 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 0a e.Composer\DependencyResolver;..
628e0 0a 0a 0a 63 6c 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 ...class.Rule.{.const.RULE_INTER
62900 4e 41 4c 5f 41 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 NAL_ALLOW_UPDATE.=.1;.const.RULE
62920 5f 4a 4f 42 5f 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 _JOB_INSTALL.=.2;.const.RULE_JOB
62940 5f 52 45 4d 4f 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 _REMOVE.=.3;.const.RULE_PACKAGE_
62960 43 4f 4e 46 4c 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 CONFLICT.=.6;.const.RULE_PACKAGE
62980 5f 52 45 51 55 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 _REQUIRES.=.7;.const.RULE_PACKAG
629a0 45 5f 4f 42 53 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 E_OBSOLETES.=.8;.const.RULE_INST
629c0 41 4c 4c 45 44 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 ALLED_PACKAGE_OBSOLETES.=.9;.con
629e0 73 74 20 52 55 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 st.RULE_PACKAGE_SAME_NAME.=.10;.
62a00 63 6f 6e 73 74 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 const.RULE_PACKAGE_IMPLICIT_OBSO
62a20 4c 45 54 45 53 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 LETES.=.11;.const.RULE_LEARNED.=
62a40 20 31 32 3b 0a 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 .12;.const.RULE_PACKAGE_ALIAS.=.
62a60 31 33 3b 0a 0a 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 13;..protected.$pool;..protected
62a80 20 24 64 69 73 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 .$disabled;.protected.$literals;
62aa0 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 64 3b .protected.$type;.protected.$id;
62ac0 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 .protected.$reason;.protected.$r
62ae0 65 61 73 6f 6e 44 61 74 61 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 3b 0a 0a 70 72 6f easonData;..protected.$job;..pro
62b00 74 65 63 74 65 64 20 24 72 75 6c 65 48 61 73 68 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 tected.$ruleHash;..public.functi
62b20 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 on.__construct(Pool.$pool,.array
62b40 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 6f 6e 44 61 74 61 .$literals,.$reason,.$reasonData
62b60 2c 20 24 6a 6f 62 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 ,.$job.=.null).{.$this->pool.=.$
62b80 70 6f 6f 6c 3b 0a 0a 0a 20 73 6f 72 74 28 24 6c 69 74 65 72 61 6c 73 29 3b 0a 0a 24 74 68 69 73 pool;....sort($literals);..$this
62ba0 2d 3e 6c 69 74 65 72 61 6c 73 20 3d 20 24 6c 69 74 65 72 61 6c 73 3b 0a 24 74 68 69 73 2d 3e 72 ->literals.=.$literals;.$this->r
62bc0 65 61 73 6f 6e 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 eason.=.$reason;.$this->reasonDa
62be0 74 61 20 3d 20 24 72 65 61 73 6f 6e 44 61 74 61 3b 0a 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c ta.=.$reasonData;..$this->disabl
62c00 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a 24 74 68 69 73 2d 3e 6a 6f 62 20 3d 20 24 6a 6f 62 3b 0a ed.=.false;..$this->job.=.$job;.
62c20 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 2d 31 3b 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 48 .$this->type.=.-1;..$this->ruleH
62c40 61 73 68 20 3d 20 73 75 62 73 74 72 28 6d 64 35 28 69 6d 70 6c 6f 64 65 28 27 2c 27 2c 20 24 74 ash.=.substr(md5(implode(',',.$t
62c60 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 29 2c 20 30 2c 20 35 29 3b 0a 7d 0a 0a 70 75 62 6c 69 his->literals)),.0,.5);.}..publi
62c80 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 61 73 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 c.function.getHash().{.return.$t
62ca0 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f his->ruleHash;.}..public.functio
62cc0 6e 20 73 65 74 49 64 28 24 69 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 64 20 3d 20 24 69 64 3b 0a n.setId($id).{.$this->id.=.$id;.
62ce0 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 64 28 29 0a 7b 0a 72 65 74 }..public.function.getId().{.ret
62d00 75 72 6e 20 24 74 68 69 73 2d 3e 69 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f urn.$this->id;.}..public.functio
62d20 6e 20 67 65 74 4a 6f 62 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 62 3b 0a n.getJob().{.return.$this->job;.
62d40 7d 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 29 0a 7b }..public.function.getReason().{
62d60 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 75 62 6c 69 63 .return.$this->reason;.}..public
62d80 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 61 73 6f 6e 44 61 74 61 28 29 0a 7b 0a 72 65 74 75 .function.getReasonData().{.retu
62da0 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 rn.$this->reasonData;.}..public.
62dc0 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 28 29 0a 7b 0a function.getRequiredPackage().{.
62de0 69 66 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 3d 3d 3d 20 73 65 6c 66 3a 3a 52 55 4c 45 if.($this->reason.===.self::RULE
62e00 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 _JOB_INSTALL).{.return.$this->re
62e20 61 73 6f 6e 44 61 74 61 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 20 3d asonData;.}..if.($this->reason.=
62e40 3d 3d 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 29 20 ==.self::RULE_PACKAGE_REQUIRES).
62e60 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 2d 3e 67 65 74 54 {.return.$this->reasonData->getT
62e80 61 72 67 65 74 28 29 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 arget();.}.}..........public.fun
62ea0 63 74 69 6f 6e 20 65 71 75 61 6c 73 28 52 75 6c 65 20 24 72 75 6c 65 29 0a 7b 0a 69 66 20 28 24 ction.equals(Rule.$rule).{.if.($
62ec0 74 68 69 73 2d 3e 72 75 6c 65 48 61 73 68 20 21 3d 3d 20 24 72 75 6c 65 2d 3e 72 75 6c 65 48 61 this->ruleHash.!==.$rule->ruleHa
62ee0 73 68 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 sh).{.return.false;.}..if.(count
62f00 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 20 21 3d 20 63 6f 75 6e 74 28 24 72 75 6c 65 ($this->literals).!=.count($rule
62f20 2d 3e 6c 69 74 65 72 61 6c 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a ->literals)).{.return.false;.}..
62f40 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6e 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c for.($i.=.0,.$n.=.count($this->l
62f60 69 74 65 72 61 6c 73 29 3b 20 24 69 20 3c 20 24 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 24 iterals);.$i.<.$n;.$i++).{.if.($
62f80 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 24 69 5d 20 21 3d 3d 20 24 72 75 6c 65 2d 3e 6c 69 this->literals[$i].!==.$rule->li
62fa0 74 65 72 61 6c 73 5b 24 69 5d 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a terals[$i]).{.return.false;.}.}.
62fc0 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .return.true;.}..public.function
62fe0 20 73 65 74 54 79 70 65 28 24 74 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d 20 .setType($type).{.$this->type.=.
63000 24 74 79 70 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 $type;.}..public.function.getTyp
63020 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 70 75 62 e().{.return.$this->type;.}..pub
63040 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e lic.function.disable().{.$this->
63060 64 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 disabled.=.true;.}..public.funct
63080 69 6f 6e 20 65 6e 61 62 6c 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 20 3d ion.enable().{.$this->disabled.=
630a0 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 69 73 .false;.}..public.function.isDis
630c0 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 abled().{.return.$this->disabled
630e0 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 45 6e 61 62 6c 65 64 28 29 ;.}..public.function.isEnabled()
63100 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 64 3b 0a 7d 0a 0a 70 .{.return.!$this->disabled;.}..p
63120 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 69 74 65 72 61 6c 73 28 29 0a 7b 0a 72 ublic.function.getLiterals().{.r
63140 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 eturn.$this->literals;.}..public
63160 20 66 75 6e 63 74 69 6f 6e 20 69 73 41 73 73 65 72 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e .function.isAssertion().{.return
63180 20 31 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 29 3b 0a 7d .1.===.count($this->literals);.}
631a0 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 6e ..public.function.getPrettyStrin
631c0 67 28 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 29 g(array.$installedMap.=.array())
631e0 0a 7b 0a 24 72 75 6c 65 54 65 78 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 .{.$ruleText.=.'';.foreach.($thi
63200 73 2d 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b s->literals.as.$i.=>.$literal).{
63220 0a 69 66 20 28 24 69 20 21 3d 20 30 29 20 7b 0a 24 72 75 6c 65 54 65 78 74 20 2e 3d 20 27 7c 27 .if.($i.!=.0).{.$ruleText..=.'|'
63240 3b 0a 7d 0a 24 72 75 6c 65 54 65 78 74 20 2e 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 ;.}.$ruleText..=.$this->pool->li
63260 74 65 72 61 6c 54 6f 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 2c 20 24 69 teralToPrettyString($literal,.$i
63280 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 74 68 69 73 2d 3e nstalledMap);.}..switch.($this->
632a0 72 65 61 73 6f 6e 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 49 4e 54 45 52 4e reason).{.case.self::RULE_INTERN
632c0 41 4c 5f 41 4c 4c 4f 57 5f 55 50 44 41 54 45 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 AL_ALLOW_UPDATE:.return.$ruleTex
632e0 74 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 3a t;..case.self::RULE_JOB_INSTALL:
63300 0a 72 65 74 75 72 6e 20 22 49 6e 73 74 61 6c 6c 20 63 6f 6d 6d 61 6e 64 20 72 75 6c 65 20 28 24 .return."Install.command.rule.($
63320 72 75 6c 65 54 65 78 74 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4a 4f 42 ruleText)";..case.self::RULE_JOB
63340 5f 52 45 4d 4f 56 45 3a 0a 72 65 74 75 72 6e 20 22 52 65 6d 6f 76 65 20 63 6f 6d 6d 61 6e 64 20 _REMOVE:.return."Remove.command.
63360 72 75 6c 65 20 28 24 72 75 6c 65 54 65 78 74 29 22 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 rule.($ruleText)";..case.self::R
63380 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 43 54 3a 0a 24 70 61 63 6b 61 67 65 31 20 ULE_PACKAGE_CONFLICT:.$package1.
633a0 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 28 =.$this->pool->literalToPackage(
633c0 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 30 5d 29 3b 0a 24 70 61 63 6b 61 67 65 32 20 3d $this->literals[0]);.$package2.=
633e0 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 .$this->pool->literalToPackage($
63400 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 5b 31 5d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 this->literals[1]);..return.$pac
63420 6b 61 67 65 31 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 2e 27 20 63 6f 6e 66 6c kage1->getPrettyString().'.confl
63440 69 63 74 73 20 77 69 74 68 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 50 61 63 6b 61 67 65 icts.with.'.$this->formatPackage
63460 73 55 6e 69 71 75 65 28 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 32 29 29 2e 27 2e 27 3b 0a 0a sUnique(array($package2)).'.';..
63480 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 53 case.self::RULE_PACKAGE_REQUIRES
634a0 3a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 3b 0a 24 :.$literals.=.$this->literals;.$
634c0 73 6f 75 72 63 65 4c 69 74 65 72 61 6c 20 3d 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 6c 69 74 sourceLiteral.=.array_shift($lit
634e0 65 72 61 6c 73 29 3b 0a 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e erals);.$sourcePackage.=.$this->
63500 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 73 6f 75 72 63 65 4c 69 pool->literalToPackage($sourceLi
63520 74 65 72 61 6c 29 3b 0a 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f teral);..$requires.=.array();.fo
63540 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).{.
63560 24 72 65 71 75 69 72 65 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 $requires[].=.$this->pool->liter
63580 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 24 74 65 78 74 20 alToPackage($literal);.}..$text.
635a0 3d 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 2d 3e 67 65 74 50 72 65 74 74 79 53 74 =.$this->reasonData->getPrettySt
635c0 72 69 6e 67 28 24 73 6f 75 72 63 65 50 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 24 72 65 71 75 69 ring($sourcePackage);.if.($requi
635e0 72 65 73 29 20 7b 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 res).{.$text..=.'.->.satisfiable
63600 20 62 79 20 27 20 2e 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 50 61 63 6b 61 67 65 73 55 6e 69 .by.'...$this->formatPackagesUni
63620 71 75 65 28 24 72 65 71 75 69 72 65 73 29 20 2e 20 27 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 que($requires)...'.';.}.else.{.$
63640 74 61 72 67 65 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 44 61 74 61 2d 3e targetName.=.$this->reasonData->
63660 67 65 74 54 61 72 67 65 74 28 29 3b 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 getTarget();....if.(0.===.strpos
63680 28 24 74 61 72 67 65 74 4e 61 6d 65 2c 20 27 65 78 74 2d 27 29 29 20 7b 0a 24 65 78 74 20 3d 20 ($targetName,.'ext-')).{.$ext.=.
636a0 73 75 62 73 74 72 28 24 74 61 72 67 65 74 4e 61 6d 65 2c 20 34 29 3b 0a 24 65 72 72 6f 72 20 3d substr($targetName,.4);.$error.=
636c0 20 65 78 74 65 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 .extension_loaded($ext).?.'has.t
636e0 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 28 27 2e 28 70 68 70 76 65 72 73 69 6f 6e 28 he.wrong.version.('.(phpversion(
63700 24 65 78 74 29 20 3f 3a 20 27 30 27 29 2e 27 29 20 69 6e 73 74 61 6c 6c 65 64 27 20 3a 20 27 69 $ext).?:.'0').').installed'.:.'i
63720 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 27 3b 0a 0a 24 74 s.missing.from.your.system';..$t
63740 65 78 74 20 2e 3d 20 27 20 2d 3e 20 74 68 65 20 72 65 71 75 65 73 74 65 64 20 50 48 50 20 65 78 ext..=.'.->.the.requested.PHP.ex
63760 74 65 6e 73 69 6f 6e 20 27 2e 24 65 78 74 2e 27 20 27 2e 24 65 72 72 6f 72 2e 27 2e 27 3b 0a 7d tension.'.$ext.'.'.$error.'.';.}
63780 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 61 72 67 65 74 4e 61 6d .elseif.(0.===.strpos($targetNam
637a0 65 2c 20 27 6c 69 62 2d 27 29 29 20 7b 0a 0a 20 24 6c 69 62 20 3d 20 73 75 62 73 74 72 28 24 74 e,.'lib-')).{...$lib.=.substr($t
637c0 61 72 67 65 74 4e 61 6d 65 2c 20 34 29 3b 0a 0a 24 74 65 78 74 20 2e 3d 20 27 20 2d 3e 20 74 68 argetName,.4);..$text..=.'.->.th
637e0 65 20 72 65 71 75 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 27 2e 24 6c 69 e.requested.linked.library.'.$li
63800 62 2e 27 20 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 61 6c b.'.has.the.wrong.version.instal
63820 6c 65 64 20 6f 72 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 led.or.is.missing.from.your.syst
63840 65 6d 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 6f 20 68 61 76 65 20 74 68 65 20 65 78 74 65 6e 73 em,.make.sure.to.have.the.extens
63860 69 6f 6e 20 70 72 6f 76 69 64 69 6e 67 20 69 74 2e 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 65 ion.providing.it.';.}.else.{.$te
63880 78 74 20 2e 3d 20 27 20 2d 3e 20 6e 6f 20 6d 61 74 63 68 69 6e 67 20 70 61 63 6b 61 67 65 20 66 xt..=.'.->.no.matching.package.f
638a0 6f 75 6e 64 2e 27 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 0a 63 61 73 65 ound.';.}.}..return.$text;..case
638c0 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 .self::RULE_PACKAGE_OBSOLETES:.r
638e0 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 eturn.$ruleText;.case.self::RULE
63900 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 3a 0a 72 65 _INSTALLED_PACKAGE_OBSOLETES:.re
63920 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f turn.$ruleText;.case.self::RULE_
63940 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 3a 0a 72 65 74 75 72 6e 20 27 43 61 6e 20 6f PACKAGE_SAME_NAME:.return.'Can.o
63960 6e 6c 79 20 69 6e 73 74 61 6c 6c 20 6f 6e 65 20 6f 66 3a 20 27 20 2e 20 24 74 68 69 73 2d 3e 66 nly.install.one.of:.'...$this->f
63980 6f 72 6d 61 74 50 61 63 6b 61 67 65 73 55 6e 69 71 75 65 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 ormatPackagesUnique($this->liter
639a0 61 6c 73 29 20 2e 20 27 2e 27 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 50 41 43 4b als)...'.';.case.self::RULE_PACK
639c0 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 4f 4c 45 54 45 53 3a 0a 72 65 74 75 72 6e 20 24 AGE_IMPLICIT_OBSOLETES:.return.$
639e0 72 75 6c 65 54 65 78 74 3b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 52 55 4c 45 5f 4c 45 41 52 4e 45 ruleText;.case.self::RULE_LEARNE
63a00 44 3a 0a 72 65 74 75 72 6e 20 27 43 6f 6e 63 6c 75 73 69 6f 6e 3a 20 27 2e 24 72 75 6c 65 54 65 D:.return.'Conclusion:.'.$ruleTe
63a20 78 74 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 41 4c 49 41 xt;.case.self::RULE_PACKAGE_ALIA
63a40 53 3a 0a 72 65 74 75 72 6e 20 24 72 75 6c 65 54 65 78 74 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 S:.return.$ruleText;.}.}..protec
63a60 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 50 61 63 6b 61 67 65 73 55 6e 69 71 75 ted.function.formatPackagesUniqu
63a80 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 70 72 65 70 61 72 65 64 20 3d e(array.$packages).{.$prepared.=
63aa0 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 .array();.foreach.($packages.as.
63ac0 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 69 73 5f 6f 62 6a 65 63 74 28 24 70 61 63 6b $package).{.if.(!is_object($pack
63ae0 61 67 65 29 29 20 7b 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 age)).{.$package.=.$this->pool->
63b00 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 24 70 literalToPackage($package);.}.$p
63b20 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 27 6e 61 repared[$package->getName()]['na
63b40 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 29 me'].=.$package->getPrettyName()
63b60 3b 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d ;.$prepared[$package->getName()]
63b80 5b 27 76 65 72 73 69 6f 6e 73 27 5d 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f ['versions'][$package->getVersio
63ba0 6e 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 56 65 72 73 69 6f n()].=.$package->getPrettyVersio
63bc0 6e 28 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 72 65 70 61 72 65 64 20 61 73 20 24 6e 61 n();.}.foreach.($prepared.as.$na
63be0 6d 65 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 72 65 70 61 72 65 64 5b 24 6e 61 6d me.=>.$package).{.$prepared[$nam
63c00 65 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 27 5d 2e 27 5b 27 2e 69 6d 70 6c 6f 64 e].=.$package['name'].'['.implod
63c20 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 5b 27 76 65 72 73 69 6f 6e 73 27 5d 29 2e 27 5d e(',.',.$package['versions']).']
63c40 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 72 65 70 ';.}..return.implode(',.',.$prep
63c60 61 72 65 64 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 5f ared);.}.......public.function._
63c80 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 72 65 73 75 6c 74 20 3d 20 28 24 74 68 69 73 2d 3e _toString().{.$result.=.($this->
63ca0 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 3f 20 27 64 69 73 61 62 6c 65 64 28 27 20 3a 20 27 28 isDisabled()).?.'disabled('.:.'(
63cc0 27 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 73 20 61 73 20 ';..foreach.($this->literals.as.
63ce0 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 69 20 21 3d 20 30 29 20 7b $i.=>.$literal).{.if.($i.!=.0).{
63d00 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 7c 27 3b 0a 7d 0a 24 72 65 73 75 6c 74 20 2e 3d 20 24 74 .$result..=.'|';.}.$result..=.$t
63d20 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 his->pool->literalToString($lite
63d40 72 61 6c 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 2e 3d 20 27 29 27 3b 0a 0a 72 65 74 75 72 6e ral);.}..$result..=.')';..return
63d60 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e .$result;.}.}.<?php............n
63d80 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
63da0 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 61 63 6b lver;..use.Composer\Package\Pack
63dc0 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
63de0 67 65 5c 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c 65 53 ge\AliasPackage;.....class.RuleS
63e00 65 74 47 65 6e 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 79 3b etGenerator.{.protected.$policy;
63e20 0a 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 72 75 6c .protected.$pool;.protected.$rul
63e40 65 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 es;.protected.$jobs;.protected.$
63e60 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._
63e80 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6c 69 63 79 49 6e 74 65 72 66 61 63 65 20 24 70 6f 6c 69 _construct(PolicyInterface.$poli
63ea0 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 63 79 20 cy,.Pool.$pool).{.$this->policy.
63ec0 3d 20 24 70 6f 6c 69 63 79 3b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a =.$policy;.$this->pool.=.$pool;.
63ee0 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 64 20 66 75 6e 63 74 }................protected.funct
63f00 69 6f 6e 20 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 ion.createRequireRule(PackageInt
63f20 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 20 24 70 72 6f 76 69 64 65 72 erface.$package,.array.$provider
63f40 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 20 3d 20 6e 75 6c 6c 29 0a s,.$reason,.$reasonData.=.null).
63f60 7b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 2d 24 70 61 63 6b 61 67 65 2d 3e 67 {.$literals.=.array(-$package->g
63f80 65 74 49 64 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 72 6f 76 69 64 65 72 73 20 61 73 etId());..foreach.($providers.as
63fa0 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 0a 20 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d .$provider).{...if.($provider.==
63fc0 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 24 6c 69 =.$package).{.return.null;.}.$li
63fe0 74 65 72 61 6c 73 5b 5d 20 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 49 64 28 29 3b 0a 7d terals[].=.$provider->getId();.}
64000 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 24 ..return.new.Rule($this->pool,.$
64020 6c 69 74 65 72 61 6c 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 29 3b literals,.$reason,.$reasonData);
64040 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 .}..............protected.functi
64060 6f 6e 20 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 75 6c 65 28 61 72 72 61 79 20 on.createInstallOneOfRule(array.
64080 24 70 61 63 6b 61 67 65 73 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 29 0a 7b 0a 24 6c 69 74 $packages,.$reason,.$job).{.$lit
640a0 65 72 61 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 erals.=.array();.foreach.($packa
640c0 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 6c 69 74 65 72 61 6c 73 5b 5d 20 3d ges.as.$package).{.$literals[].=
640e0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 65 .$package->getId();.}..return.ne
64100 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 24 6c 69 74 65 72 61 6c 73 2c 20 24 w.Rule($this->pool,.$literals,.$
64120 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 24 6a 6f reason,.$job['packageName'],.$jo
64140 62 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 b);.}.............protected.func
64160 74 69 6f 6e 20 63 72 65 61 74 65 52 65 6d 6f 76 65 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 tion.createRemoveRule(PackageInt
64180 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6a 6f 62 29 0a erface.$package,.$reason,.$job).
641a0 7b 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
641c0 72 72 61 79 28 2d 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 29 2c 20 24 72 65 61 73 6f rray(-$package->getId()),.$reaso
641e0 6e 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2c 20 24 6a 6f 62 29 3b 0a 7d n,.$job['packageName'],.$job);.}
64200 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 ................protected.functi
64220 6f 6e 20 63 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 on.createConflictRule(PackageInt
64240 65 72 66 61 63 65 20 24 69 73 73 75 65 72 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 erface.$issuer,.PackageInterface
64260 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 .$provider,.$reason,.$reasonData
64280 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 24 69 73 73 75 65 72 20 3d 3d 3d 20 24 70 72 .=.null).{...if.($issuer.===.$pr
642a0 6f 76 69 64 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e ovider).{.return.null;.}..return
642c0 20 6e 65 77 20 52 75 6c 65 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 2c 20 61 72 72 61 79 28 2d 24 69 .new.Rule($this->pool,.array(-$i
642e0 73 73 75 65 72 2d 3e 67 65 74 49 64 28 29 2c 20 2d 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 49 ssuer->getId(),.-$provider->getI
64300 64 28 29 29 2c 20 24 72 65 61 73 6f 6e 2c 20 24 72 65 61 73 6f 6e 44 61 74 61 29 3b 0a 7d 0a 0a d()),.$reason,.$reasonData);.}..
64320 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 52 75 6c .........private.function.addRul
64340 65 28 24 74 79 70 65 2c 20 52 75 6c 65 20 24 6e 65 77 52 75 6c 65 20 3d 20 6e 75 6c 6c 29 0a 7b e($type,.Rule.$newRule.=.null).{
64360 0a 69 66 20 28 21 24 6e 65 77 52 75 6c 65 20 7c 7c 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e .if.(!$newRule.||.$this->rules->
64380 63 6f 6e 74 61 69 6e 73 45 71 75 61 6c 28 24 6e 65 77 52 75 6c 65 29 29 20 7b 0a 72 65 74 75 72 containsEqual($newRule)).{.retur
643a0 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 61 64 64 28 24 6e 65 77 52 75 6c 65 n;.}..$this->rules->add($newRule
643c0 2c 20 24 74 79 70 65 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 ,.$type);.}..protected.function.
643e0 61 64 64 52 75 6c 65 73 46 6f 72 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 addRulesForPackage(PackageInterf
64400 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 77 6f 72 6b 51 75 65 75 65 20 3d 20 6e 65 77 ace.$package).{.$workQueue.=.new
64420 20 5c 53 70 6c 51 75 65 75 65 3b 0a 24 77 6f 72 6b 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 28 .\SplQueue;.$workQueue->enqueue(
64440 24 70 61 63 6b 61 67 65 29 3b 0a 0a 77 68 69 6c 65 20 28 21 24 77 6f 72 6b 51 75 65 75 65 2d 3e $package);..while.(!$workQueue->
64460 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 77 6f 72 6b 51 75 65 isEmpty()).{.$package.=.$workQue
64480 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 74 68 69 73 2d 3e ue->dequeue();.if.(isset($this->
644a0 61 64 64 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 7b 0a addedMap[$package->getId()])).{.
644c0 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 65 64 4d 61 70 5b 24 70 61 continue;.}..$this->addedMap[$pa
644e0 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 65 61 63 68 ckage->getId()].=.true;..foreach
64500 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
64520 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-
64540 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
64560 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());
64580 0a 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
645a0 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
645c0 75 69 72 65 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 6f 73 73 69 62 6c 65 52 65 71 75 uireRule($package,.$possibleRequ
645e0 69 72 65 73 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 49 52 45 ires,.Rule::RULE_PACKAGE_REQUIRE
64600 53 2c 20 24 6c 69 6e 6b 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 52 S,.$link));..foreach.($possibleR
64620 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 77 6f 72 6b 51 75 65 75 equires.as.$require).{.$workQueu
64640 65 2d 3e 65 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 65 29 3b 0a 7d 0a 7d 0a 0a 66 6f 72 65 61 e->enqueue($require);.}.}..forea
64660 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 20 61 73 20 ch.($package->getConflicts().as.
64680 24 6c 69 6e 6b 29 20 7b 0a 24 70 6f 73 73 69 62 6c 65 43 6f 6e 66 6c 69 63 74 73 20 3d 20 24 74 $link).{.$possibleConflicts.=.$t
646a0 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 67 his->pool->whatProvides($link->g
646c0 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 74 etTarget(),.$link->getConstraint
646e0 28 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 73 69 62 6c 65 43 6f 6e 66 6c 69 63 74 ());..foreach.($possibleConflict
64700 73 20 61 73 20 24 63 6f 6e 66 6c 69 63 74 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 s.as.$conflict).{.$this->addRule
64720 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 41 43 4b 41 47 45 2c 20 24 74 68 69 73 2d 3e 63 (RuleSet::TYPE_PACKAGE,.$this->c
64740 72 65 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e reateConflictRule($package,.$con
64760 66 6c 69 63 74 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 43 4f 4e 46 4c 49 flict,.Rule::RULE_PACKAGE_CONFLI
64780 43 54 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 69 73 49 6e 73 74 61 6c 6c 65 64 CT,.$link));.}.}....$isInstalled
647a0 20 3d 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 .=.(isset($this->installedMap[$p
647c0 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 ackage->getId()]));..foreach.($p
647e0 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 ackage->getReplaces().as.$link).
64800 7b 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f {.$obsoleteProviders.=.$this->po
64820 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 72 67 65 ol->whatProvides($link->getTarge
64840 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 0a 66 t(),.$link->getConstraint());..f
64860 6f 72 65 61 63 68 20 28 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 oreach.($obsoleteProviders.as.$p
64880 72 6f 76 69 64 65 72 29 20 7b 0a 69 66 20 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 rovider).{.if.($provider.===.$pa
648a0 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 ckage).{.continue;.}..if.(!$this
648c0 2d 3e 6f 62 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 ->obsoleteImpossibleForAlias($pa
648e0 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 64 65 72 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 28 ckage,.$provider)).{.$reason.=.(
64900 24 69 73 49 6e 73 74 61 6c 6c 65 64 29 20 3f 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 49 4e 53 54 41 $isInstalled).?.Rule::RULE_INSTA
64920 4c 4c 45 44 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 20 3a 20 52 75 6c 65 3a 3a 52 LLED_PACKAGE_OBSOLETES.:.Rule::R
64940 55 4c 45 5f 50 41 43 4b 41 47 45 5f 4f 42 53 4f 4c 45 54 45 53 3b 0a 24 74 68 69 73 2d 3e 61 64 ULE_PACKAGE_OBSOLETES;.$this->ad
64960 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 24 74 68 dRule(RuleSet::TYPE_PACKAGE,.$th
64980 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 2c is->createConflictRule($package,
649a0 20 24 70 72 6f 76 69 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a .$provider,.$reason,.$link));.}.
649c0 7d 0a 7d 0a 0a 24 6f 62 73 6f 6c 65 74 65 50 72 6f 76 69 64 65 72 73 20 3d 20 24 74 68 69 73 2d }.}..$obsoleteProviders.=.$this-
649e0 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 >pool->whatProvides($package->ge
64a00 74 4e 61 6d 65 28 29 2c 20 6e 75 6c 6c 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6f 62 73 6f 6c tName(),.null);..foreach.($obsol
64a20 65 74 65 50 72 6f 76 69 64 65 72 73 20 61 73 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 69 66 20 eteProviders.as.$provider).{.if.
64a40 28 24 70 72 6f 76 69 64 65 72 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 63 6f 6e 74 69 ($provider.===.$package).{.conti
64a60 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 nue;.}..if.(($package.instanceof
64a80 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 .AliasPackage).&&.$package->getA
64aa0 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 72 6f 76 69 64 65 72 29 20 7b 0a 24 74 68 69 73 2d liasOf().===.$provider).{.$this-
64ac0 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,.
64ae0 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 69 72 65 52 75 6c 65 $rule.=.$this->createRequireRule
64b00 28 24 70 61 63 6b 61 67 65 2c 20 61 72 72 61 79 28 24 70 72 6f 76 69 64 65 72 29 2c 20 52 75 6c ($package,.array($provider),.Rul
64b20 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 41 4c 49 41 53 2c 20 24 70 61 63 6b 61 67 65 29 e::RULE_PACKAGE_ALIAS,.$package)
64b40 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 74 68 69 73 2d 3e 6f 62 73 6f 6c 65 74 65 49 6d 70 );.}.elseif.(!$this->obsoleteImp
64b60 6f 73 73 69 62 6c 65 46 6f 72 41 6c 69 61 73 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 ossibleForAlias($package,.$provi
64b80 64 65 72 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 der)).{.$reason.=.($package->get
64ba0 4e 61 6d 65 28 29 20 3d 3d 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 Name().==.$provider->getName()).
64bc0 3f 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 53 41 4d 45 5f 4e 41 4d 45 20 3a ?.Rule::RULE_PACKAGE_SAME_NAME.:
64be0 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 49 4d 50 4c 49 43 49 54 5f 4f 42 53 .Rule::RULE_PACKAGE_IMPLICIT_OBS
64c00 4f 4c 45 54 45 53 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a OLETES;.$this->addRule(RuleSet::
64c20 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 72 65 TYPE_PACKAGE,.$rule.=.$this->cre
64c40 61 74 65 43 6f 6e 66 6c 69 63 74 52 75 6c 65 28 24 70 61 63 6b 61 67 65 2c 20 24 70 72 6f 76 69 ateConflictRule($package,.$provi
64c60 64 65 72 2c 20 24 72 65 61 73 6f 6e 2c 20 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a der,.$reason,.$package));.}.}.}.
64c80 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6f 62 73 6f 6c 65 74 65 49 6d }..protected.function.obsoleteIm
64ca0 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 2c 20 24 70 72 6f 76 possibleForAlias($package,.$prov
64cc0 69 64 65 72 29 0a 7b 0a 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 3d 20 24 70 61 63 6b 61 ider).{.$packageIsAlias.=.$packa
64ce0 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 3b 0a 24 70 72 6f ge.instanceof.AliasPackage;.$pro
64d00 76 69 64 65 72 49 73 41 6c 69 61 73 20 3d 20 24 70 72 6f 76 69 64 65 72 20 69 6e 73 74 61 6e 63 viderIsAlias.=.$provider.instanc
64d20 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 0a 24 69 6d 70 6f 73 73 69 62 6c 65 20 3d eof.AliasPackage;..$impossible.=
64d40 20 28 0a 28 24 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 61 63 6b 61 67 65 2d .(.($packageIsAlias.&&.$package-
64d60 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 7c 7c 0a >getAliasOf().===.$provider).||.
64d80 28 24 70 72 6f 76 69 64 65 72 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e ($providerIsAlias.&&.$provider->
64da0 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 29 20 7c 7c 0a 28 24 getAliasOf().===.$package).||.($
64dc0 70 61 63 6b 61 67 65 49 73 41 6c 69 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 49 73 41 6c 69 packageIsAlias.&&.$providerIsAli
64de0 61 73 20 26 26 20 24 70 72 6f 76 69 64 65 72 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 20 3d 3d as.&&.$provider->getAliasOf().==
64e00 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 29 0a 29 3b 0a 0a 72 65 =.$package->getAliasOf()).);..re
64e20 74 75 72 6e 20 24 69 6d 70 6f 73 73 69 62 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 turn.$impossible;.}........priva
64e40 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c 65 73 46 6f 72 55 70 64 61 74 65 50 61 63 te.function.addRulesForUpdatePac
64e60 6b 61 67 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 kages(PackageInterface.$package)
64e80 0a 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 .{.$updates.=.$this->policy->fin
64ea0 64 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 dUpdatePackages($this->pool,.$th
64ec0 69 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 66 6f is->installedMap,.$package);..fo
64ee0 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 29 20 7b 0a 24 74 reach.($updates.as.$update).{.$t
64f00 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 75 70 64 61 74 65 29 his->addRulesForPackage($update)
64f20 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 75 6c ;.}.}..protected.function.addRul
64f40 65 73 46 6f 72 4a 6f 62 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f esForJobs().{.foreach.($this->jo
64f60 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 64 27 bs.as.$job).{.switch.($job['cmd'
64f80 5d 29 20 7b 0a 63 61 73 65 20 27 69 6e 73 74 61 6c 6c 27 3a 0a 69 66 20 28 24 6a 6f 62 5b 27 70 ]).{.case.'install':.if.($job['p
64fa0 61 63 6b 61 67 65 73 27 5d 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6a 6f 62 5b 27 70 61 63 6b ackages']).{.foreach.($job['pack
64fc0 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 21 69 73 73 65 74 ages'].as.$package).{.if.(!isset
64fe0 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 ($this->installedMap[$package->g
65000 65 74 49 64 28 29 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 50 61 etId()])).{.$this->addRulesForPa
65020 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 24 72 75 6c 65 20 3d 20 24 74 ckage($package);.}.}..$rule.=.$t
65040 68 69 73 2d 3e 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 4f 6e 65 4f 66 52 75 6c 65 28 24 6a 6f 62 his->createInstallOneOfRule($job
65060 5b 27 70 61 63 6b 61 67 65 73 27 5d 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 ['packages'],.Rule::RULE_JOB_INS
65080 54 41 4c 4c 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 TALL,.$job);.$this->addRule(Rule
650a0 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;.
650c0 63 61 73 65 20 27 72 65 6d 6f 76 65 27 3a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 6a 6f 62 case.'remove':.....foreach.($job
650e0 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 24 72 75 6c ['packages'].as.$package).{.$rul
65100 65 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 6d 6f 76 65 52 75 6c 65 28 24 70 61 63 e.=.$this->createRemoveRule($pac
65120 6b 61 67 65 2c 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 52 45 4d 4f 56 45 2c 20 24 6a 6f kage,.Rule::RULE_JOB_REMOVE,.$jo
65140 62 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 b);.$this->addRule(RuleSet::TYPE
65160 5f 4a 4f 42 2c 20 24 72 75 6c 65 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 75 _JOB,.$rule);.}.break;.}.}.}..pu
65180 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 75 6c 65 73 46 6f 72 28 24 6a 6f 62 73 2c blic.function.getRulesFor($jobs,
651a0 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 6a 6f 62 73 20 3d 20 .$installedMap).{.$this->jobs.=.
651c0 24 6a 6f 62 73 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 6e 65 77 20 52 75 6c 65 53 65 $jobs;.$this->rules.=.new.RuleSe
651e0 74 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 24 69 6e 73 74 61 6c t;.$this->installedMap.=.$instal
65200 6c 65 64 4d 61 70 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c ledMap;..foreach.($this->install
65220 65 64 4d 61 70 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 edMap.as.$package).{.$this->addR
65240 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 24 74 68 69 73 2d ulesForPackage($package);.$this-
65260 3e 61 64 64 52 75 6c 65 73 46 6f 72 55 70 64 61 74 65 50 61 63 6b 61 67 65 73 28 24 70 61 63 6b >addRulesForUpdatePackages($pack
65280 61 67 65 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 61 64 64 52 75 6c 65 73 46 6f 72 4a 6f 62 73 28 age);.}..$this->addRulesForJobs(
652a0 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 3b 0a 7d 0a 7d 0a 3c 3f 70 );..return.$this->rules;.}.}.<?p
652c0 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
652e0 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 44 \DependencyResolver;.....class.D
65300 65 62 75 67 53 6f 6c 76 65 72 20 65 78 74 65 6e 64 73 20 53 6f 6c 76 65 72 0a 7b 0a 70 72 6f 74 ebugSolver.extends.Solver.{.prot
65320 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 44 65 63 69 73 69 6f 6e 4d 61 70 28 ected.function.printDecisionMap(
65340 29 0a 7b 0a 65 63 68 6f 20 22 5c 6e 44 65 63 69 73 69 6f 6e 4d 61 70 3a 20 5c 6e 22 3b 0a 66 6f ).{.echo."\nDecisionMap:.\n";.fo
65360 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 20 61 73 20 24 70 61 reach.($this->decisionMap.as.$pa
65380 63 6b 61 67 65 49 64 20 3d 3e 20 24 6c 65 76 65 6c 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 ckageId.=>.$level).{.if.($packag
653a0 65 49 64 20 3d 3d 3d 20 30 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 24 6c 65 eId.===.0).{.continue;.}.if.($le
653c0 76 65 6c 20 3e 20 30 29 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 2b 27 20 2e 20 24 74 68 69 73 2d vel.>.0).{.echo.'....+'...$this-
653e0 3e 70 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 >pool->packageById($packageId)."
65400 5c 6e 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 30 29 20 7b 0a 65 63 68 \n";.}.elseif.($level.<.0).{.ech
65420 6f 20 27 20 20 20 20 2d 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b 61 67 65 o.'....-'...$this->pool->package
65440 42 79 49 64 28 24 70 61 63 6b 61 67 65 49 64 29 2e 22 5c 6e 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a ById($packageId)."\n";.}.else.{.
65460 65 63 68 6f 20 27 20 20 20 20 3f 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 70 61 63 6b echo.'....?'...$this->pool->pack
65480 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 7d 0a 7d 0a 65 63 ageById($packageId)."\n";.}.}.ec
654a0 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 ho."\n";.}..protected.function.p
654c0 72 69 6e 74 44 65 63 69 73 69 6f 6e 51 75 65 75 65 28 29 0a 7b 0a 65 63 68 6f 20 22 44 65 63 69 rintDecisionQueue().{.echo."Deci
654e0 73 69 6f 6e 51 75 65 75 65 3a 20 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e sionQueue:.\n";.foreach.($this->
65500 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 73 20 24 69 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 decisionQueue.as.$i.=>.$literal)
65520 20 7b 0a 65 63 68 6f 20 27 20 20 20 20 27 20 2e 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 6c 69 .{.echo.'....'...$this->pool->li
65540 74 65 72 61 6c 54 6f 53 74 72 69 6e 67 28 24 6c 69 74 65 72 61 6c 29 20 2e 20 27 20 27 20 2e 20 teralToString($literal)...'.'...
65560 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 51 75 65 75 65 57 68 79 5b 24 69 5d 2e 22 20 6c 65 $this->decisionQueueWhy[$i].".le
65580 76 65 6c 20 22 2e 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 4d 61 70 5b 61 62 73 28 24 6c 69 vel.".$this->decisionMap[abs($li
655a0 74 65 72 61 6c 29 5d 2e 22 5c 6e 22 3b 0a 7d 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 7d 0a 0a 70 72 teral)]."\n";.}.echo."\n";.}..pr
655c0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 69 6e 74 57 61 74 63 68 65 73 28 29 0a otected.function.printWatches().
655e0 7b 0a 65 63 68 6f 20 22 5c 6e 57 61 74 63 68 65 73 3a 5c 6e 22 3b 0a 66 6f 72 65 61 63 68 20 28 {.echo."\nWatches:\n";.foreach.(
65600 24 74 68 69 73 2d 3e 77 61 74 63 68 65 73 20 61 73 20 24 6c 69 74 65 72 61 6c 49 64 20 3d 3e 20 $this->watches.as.$literalId.=>.
65620 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 27 20 20 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 $watch).{.echo.'..'.$this->liter
65640 61 6c 46 72 6f 6d 49 64 28 24 6c 69 74 65 72 61 6c 49 64 29 2e 22 5c 6e 22 3b 0a 24 71 75 65 75 alFromId($literalId)."\n";.$queu
65660 65 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 27 20 20 20 20 27 2c 20 24 77 61 74 63 68 29 29 e.=.array(array('....',.$watch))
65680 3b 0a 0a 77 68 69 6c 65 20 28 21 65 6d 70 74 79 28 24 71 75 65 75 65 29 29 20 7b 0a 6c 69 73 74 ;..while.(!empty($queue)).{.list
656a0 28 24 69 6e 64 65 6e 74 2c 20 24 77 61 74 63 68 29 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 71 ($indent,.$watch).=.array_pop($q
656c0 75 65 75 65 29 3b 0a 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 24 77 61 74 63 68 3b 0a 0a 69 66 ueue);..echo.$indent.$watch;..if
656e0 20 28 24 77 61 74 63 68 29 20 7b 0a 65 63 68 6f 20 27 20 5b 69 64 3d 27 2e 24 77 61 74 63 68 2d .($watch).{.echo.'.[id='.$watch-
65700 3e 67 65 74 49 64 28 29 2e 27 2c 77 61 74 63 68 31 3d 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 >getId().',watch1='.$this->liter
65720 61 6c 46 72 6f 6d 49 64 28 24 77 61 74 63 68 2d 3e 77 61 74 63 68 31 29 2e 27 2c 77 61 74 63 68 alFromId($watch->watch1).',watch
65740 32 3d 27 2e 24 74 68 69 73 2d 3e 6c 69 74 65 72 61 6c 46 72 6f 6d 49 64 28 24 77 61 74 63 68 2d 2='.$this->literalFromId($watch-
65760 3e 77 61 74 63 68 32 29 2e 22 5d 22 3b 0a 7d 0a 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a 0a 69 66 20 >watch2)."]";.}..echo."\n";..if.
65780 28 24 77 61 74 63 68 20 26 26 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d 20 24 77 61 ($watch.&&.($watch->next1.==.$wa
657a0 74 63 68 20 7c 7c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d 20 24 77 61 74 63 68 29 29 tch.||.$watch->next2.==.$watch))
657c0 20 7b 0a 69 66 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 31 20 3d 3d 20 24 77 61 74 63 68 29 20 .{.if.($watch->next1.==.$watch).
657e0 7b 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 31 20 2a 52 45 43 55 52 53 49 4f 4e {.echo.$indent."....1.*RECURSION
65800 2a 22 3b 0a 7d 0a 69 66 20 28 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 20 3d 3d 20 24 77 61 74 63 *";.}.if.($watch->next2.==.$watc
65820 68 29 20 7b 0a 65 63 68 6f 20 24 69 6e 64 65 6e 74 2e 22 20 20 20 20 32 20 2a 52 45 43 55 52 53 h).{.echo.$indent."....2.*RECURS
65840 49 4f 4e 2a 22 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 77 61 74 63 68 20 26 26 20 28 24 77 ION*";.}.}.elseif.($watch.&&.($w
65860 61 74 63 68 2d 3e 6e 65 78 74 31 20 7c 7c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 29 29 20 7b atch->next1.||.$watch->next2)).{
65880 0a 24 69 6e 64 65 6e 74 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 31 27 .$indent.=.str_replace(array('1'
658a0 2c 20 27 32 27 29 2c 20 27 20 27 2c 20 24 69 6e 64 65 6e 74 29 3b 0a 0a 61 72 72 61 79 5f 70 75 ,.'2'),.'.',.$indent);..array_pu
658c0 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 20 20 20 32 20 sh($queue,.array($indent.'....2.
658e0 27 2c 20 24 77 61 74 63 68 2d 3e 6e 65 78 74 32 29 29 3b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 ',.$watch->next2));.array_push($
65900 71 75 65 75 65 2c 20 61 72 72 61 79 28 24 69 6e 64 65 6e 74 2e 27 20 20 20 20 31 20 27 2c 20 24 queue,.array($indent.'....1.',.$
65920 77 61 74 63 68 2d 3e 6e 65 78 74 31 29 29 3b 0a 7d 0a 7d 0a 0a 65 63 68 6f 20 22 5c 6e 22 3b 0a watch->next1));.}.}..echo."\n";.
65940 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
65960 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;...
65980 0a 0a 63 6c 61 73 73 20 52 75 6c 65 53 65 74 49 74 65 72 61 74 6f 72 20 69 6d 70 6c 65 6d 65 6e ..class.RuleSetIterator.implemen
659a0 74 73 20 5c 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b ts.\Iterator.{.protected.$rules;
659c0 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 73 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 63 .protected.$types;..protected.$c
659e0 75 72 72 65 6e 74 4f 66 66 73 65 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 urrentOffset;.protected.$current
65a00 54 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 Type;.protected.$currentTypeOffs
65a20 65 74 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 et;..public.function.__construct
65a40 28 61 72 72 61 79 20 24 72 75 6c 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 3d 20 (array.$rules).{.$this->rules.=.
65a60 24 72 75 6c 65 73 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 $rules;.$this->types.=.array_key
65a80 73 28 24 72 75 6c 65 73 29 3b 0a 73 6f 72 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 29 3b 0a 0a s($rules);.sort($this->types);..
65aa0 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $this->rewind();.}..public.funct
65ac0 69 6f 6e 20 63 75 72 72 65 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 75 ion.current().{.return.$this->ru
65ae0 6c 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 5b 24 74 68 69 73 2d 3e 63 les[$this->currentType][$this->c
65b00 75 72 72 65 6e 74 4f 66 66 73 65 74 5d 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f urrentOffset];.}..public.functio
65b20 6e 20 6b 65 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 n.key().{.return.$this->currentT
65b40 79 70 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 28 29 0a 7b ype;.}..public.function.next().{
65b60 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 .$this->currentOffset++;..if.(!i
65b80 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 74 sset($this->rules[$this->current
65ba0 54 79 70 65 5d 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e Type])).{.return;.}..if.($this->
65bc0 63 75 72 72 65 6e 74 4f 66 66 73 65 74 20 3e 3d 20 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 currentOffset.>=.sizeof($this->r
65be0 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 20 7b 0a 24 74 68 ules[$this->currentType])).{.$th
65c00 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 64 6f 20 7b 0a 24 74 68 is->currentOffset.=.0;..do.{.$th
65c20 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 is->currentTypeOffset++;..if.(!i
65c40 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 65 6e 74 sset($this->types[$this->current
65c60 54 79 70 65 4f 66 66 73 65 74 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 TypeOffset])).{.$this->currentTy
65c80 70 65 20 3d 20 2d 31 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e pe.=.-1;.break;.}..$this->curren
65ca0 74 54 79 70 65 20 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 68 69 73 2d 3e 63 75 72 72 tType.=.$this->types[$this->curr
65cc0 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 3b 0a 7d 20 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 entTypeOffset];.}.while.(isset($
65ce0 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 66 this->types[$this->currentTypeOf
65d00 66 73 65 74 5d 29 20 26 26 20 21 73 69 7a 65 6f 66 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 fset]).&&.!sizeof($this->rules[$
65d20 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 this->currentType]));.}.}..publi
65d40 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 75 72 c.function.rewind().{.$this->cur
65d60 72 65 6e 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 rentOffset.=.0;..$this->currentT
65d80 79 70 65 4f 66 66 73 65 74 20 3d 20 2d 31 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 ypeOffset.=.-1;.$this->currentTy
65da0 70 65 20 3d 20 2d 31 3b 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 pe.=.-1;..do.{.$this->currentTyp
65dc0 65 4f 66 66 73 65 74 2b 2b 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 eOffset++;..if.(!isset($this->ty
65de0 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 29 29 20 pes[$this->currentTypeOffset])).
65e00 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 2d 31 3b 0a 62 72 65 61 6b {.$this->currentType.=.-1;.break
65e20 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 20 3d 20 24 74 68 69 73 2d ;.}..$this->currentType.=.$this-
65e40 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]
65e60 3b 0a 7d 20 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 79 70 65 73 5b 24 74 ;.}.while.(isset($this->types[$t
65e80 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 4f 66 66 73 65 74 5d 29 20 26 26 20 21 73 69 7a his->currentTypeOffset]).&&.!siz
65ea0 65 6f 66 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 eof($this->rules[$this->currentT
65ec0 79 70 65 5d 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 ype]));.}..public.function.valid
65ee0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 5b 24 ().{.return.isset($this->rules[$
65f00 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 54 79 70 65 5d 29 0a 26 26 20 69 73 73 65 74 28 24 74 68 this->currentType]).&&.isset($th
65f20 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 5b 24 74 is->rules[$this->currentType][$t
65f40 68 69 73 2d 3e 63 75 72 72 65 6e 74 4f 66 66 73 65 74 5d 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a his->currentOffset]);.}.}.<?php.
65f60 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
65f80 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 0a 63 6c 61 73 73 pendencyResolver;..........class
65fa0 20 52 75 6c 65 57 61 74 63 68 43 68 61 69 6e 20 65 78 74 65 6e 64 73 20 5c 53 70 6c 44 6f 75 62 .RuleWatchChain.extends.\SplDoub
65fc0 6c 79 4c 69 6e 6b 65 64 4c 69 73 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 66 66 73 65 74 lyLinkedList.{.protected.$offset
65fe0 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 65 6b .=.0;.......public.function.seek
66000 28 24 6f 66 66 73 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 66 6f 72 ($offset).{.$this->rewind();.for
66020 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 6f 66 66 73 65 74 3b 20 24 69 2b 2b 2c 20 24 74 .($i.=.0;.$i.<.$offset;.$i++,.$t
66040 68 69 73 2d 3e 6e 65 78 74 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 his->next());.}..........public.
66060 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 28 29 0a 7b 0a 24 6f 66 66 73 65 74 20 3d 20 24 74 function.remove().{.$offset.=.$t
66080 68 69 73 2d 3e 6b 65 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 66 66 73 65 74 55 6e 73 65 74 28 24 his->key();.$this->offsetUnset($
660a0 6f 66 66 73 65 74 29 3b 0a 24 74 68 69 73 2d 3e 73 65 65 6b 28 24 6f 66 66 73 65 74 29 3b 0a 7d offset);.$this->seek($offset);.}
660c0 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
660e0 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 75 73 65 20 mposer\DependencyResolver;..use.
66100 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 6e Composer\Repository\RepositoryIn
66120 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 6f 6c 76 65 72 0a 7b 0a 63 6f 6e 73 terface;.....class.Solver.{.cons
66140 74 20 42 52 41 4e 43 48 5f 4c 49 54 45 52 41 4c 53 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 42 52 41 t.BRANCH_LITERALS.=.0;.const.BRA
66160 4e 43 48 5f 4c 45 56 45 4c 20 3d 20 31 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6c 69 63 NCH_LEVEL.=.1;..protected.$polic
66180 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 74 65 64 20 24 69 y;.protected.$pool;.protected.$i
661a0 6e 73 74 61 6c 6c 65 64 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 3b 0a 70 72 6f 74 nstalled;.protected.$rules;.prot
661c0 65 63 74 65 64 20 24 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 3b 0a 70 72 6f 74 65 63 74 ected.$ruleSetGenerator;.protect
661e0 65 64 20 24 75 70 64 61 74 65 41 6c 6c 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 65 64 ed.$updateAll;..protected.$added
66200 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 Map.=.array();.protected.$update
66220 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 61 74 63 68 47 Map.=.array();.protected.$watchG
66240 72 61 70 68 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 63 69 73 69 6f 6e 73 3b 0a 70 72 6f 74 raph;.protected.$decisions;.prot
66260 65 63 74 65 64 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 ected.$installedMap;..protected.
66280 24 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 72 61 6e $propagateIndex;.protected.$bran
662a0 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 62 6c ches.=.array();.protected.$probl
662c0 65 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6c 65 61 72 6e 65 ems.=.array();.protected.$learne
662e0 64 50 6f 6f 6c 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f dPool.=.array();..public.functio
66300 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 63 65 20 24 70 n.__construct(PolicyInterface.$p
66320 6f 6c 69 63 79 2c 20 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 olicy,.Pool.$pool,.RepositoryInt
66340 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6c 69 erface.$installed).{.$this->poli
66360 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 20 24 70 6f 6f cy.=.$policy;.$this->pool.=.$poo
66380 6c 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 l;.$this->installed.=.$installed
663a0 3b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 ;.$this->ruleSetGenerator.=.new.
663c0 52 75 6c 65 53 65 74 47 65 6e 65 72 61 74 6f 72 28 24 70 6f 6c 69 63 79 2c 20 24 70 6f 6f 6c 29 RuleSetGenerator($policy,.$pool)
663e0 3b 0a 7d 0a 0a 0a 20 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6b 65 41 73 73 65 ;.}....private.function.makeAsse
66400 72 74 69 6f 6e 52 75 6c 65 44 65 63 69 73 69 6f 6e 73 28 29 0a 7b 0a 24 64 65 63 69 73 69 6f 6e rtionRuleDecisions().{.$decision
66420 53 74 61 72 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 29 20 Start.=.count($this->decisions).
66440 2d 20 31 3b 0a 0a 24 72 75 6c 65 73 43 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d -.1;..$rulesCount.=.count($this-
66460 3e 72 75 6c 65 73 29 3b 0a 66 6f 72 20 28 24 72 75 6c 65 49 6e 64 65 78 20 3d 20 30 3b 20 24 72 >rules);.for.($ruleIndex.=.0;.$r
66480 75 6c 65 49 6e 64 65 78 20 3c 20 24 72 75 6c 65 73 43 6f 75 6e 74 3b 20 24 72 75 6c 65 49 6e 64 uleIndex.<.$rulesCount;.$ruleInd
664a0 65 78 2b 2b 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 72 75 ex++).{.$rule.=.$this->rules->ru
664c0 6c 65 42 79 49 64 28 24 72 75 6c 65 49 6e 64 65 78 29 3b 0a 0a 69 66 20 28 21 24 72 75 6c 65 2d leById($ruleIndex);..if.(!$rule-
664e0 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 20 7c 7c 20 24 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 >isAssertion().||.$rule->isDisab
66500 6c 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 74 65 72 61 6c 73 20 led()).{.continue;.}..$literals.
66520 3d 20 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 24 6c 69 74 65 72 61 6c =.$rule->getLiterals();.$literal
66540 20 3d 20 24 6c 69 74 65 72 61 6c 73 5b 30 5d 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 .=.$literals[0];..if.(!$this->de
66560 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 cisions->decided(abs($literal)))
66580 20 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 69 74 .{.$this->decisions->decide($lit
665a0 65 72 61 6c 2c 20 31 2c 20 24 72 75 6c 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 eral,.1,.$rule);.continue;.}..if
665c0 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 28 24 6c 69 74 .($this->decisions->satisfy($lit
665e0 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 52 75 6c 65 eral)).{.continue;.}....if.(Rule
66600 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 20 3d 3d 3d 20 24 72 75 6c 65 2d 3e 67 65 74 Set::TYPE_LEARNED.===.$rule->get
66620 54 79 70 65 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a 63 6f 6e 74 Type()).{.$rule->disable();.cont
66640 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6f 6e 66 6c 69 63 74 20 3d 20 24 74 68 69 73 2d 3e 64 65 63 69 inue;.}..$conflict.=.$this->deci
66660 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 52 75 6c 65 28 24 6c 69 74 65 72 61 6c 29 3b 0a 0a sions->decisionRule($literal);..
66680 69 66 20 28 24 63 6f 6e 66 6c 69 63 74 20 26 26 20 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 50 if.($conflict.&&.RuleSet::TYPE_P
666a0 41 43 4b 41 47 45 20 3d 3d 3d 20 24 63 6f 6e 66 6c 69 63 74 2d 3e 67 65 74 54 79 70 65 28 29 29 ACKAGE.===.$conflict->getType())
666c0 20 7b 0a 0a 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 .{..$problem.=.new.Problem($this
666e0 2d 3e 70 6f 6f 6c 29 3b 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 72 75 6c ->pool);..$problem->addRule($rul
66700 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 29 e);.$problem->addRule($conflict)
66720 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 0a ;.$this->disableProblem($rule);.
66740 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 6f $this->problems[].=.$problem;.co
66760 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 62 ntinue;.}....$problem.=.new.Prob
66780 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 lem($this->pool);.$problem->addR
667a0 75 6c 65 28 24 72 75 6c 65 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 63 ule($rule);.$problem->addRule($c
667c0 6f 6e 66 6c 69 63 74 29 3b 0a 0a 0a 20 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 onflict);......foreach.($this->r
667e0 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 3a 54 59 ules->getIteratorFor(RuleSet::TY
66800 50 45 5f 4a 4f 42 29 20 61 73 20 24 61 73 73 65 72 74 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 61 PE_JOB).as.$assertRule).{.if.($a
66820 73 73 65 72 74 52 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 20 7c 7c 20 21 24 61 73 73 ssertRule->isDisabled().||.!$ass
66840 65 72 74 52 75 6c 65 2d 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 29 20 7b 0a 63 6f 6e 74 69 6e ertRule->isAssertion()).{.contin
66860 75 65 3b 0a 7d 0a 0a 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 73 20 3d 20 24 61 73 ue;.}..$assertRuleLiterals.=.$as
66880 73 65 72 74 52 75 6c 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 24 61 73 73 65 72 74 sertRule->getLiterals();.$assert
668a0 52 75 6c 65 4c 69 74 65 72 61 6c 20 3d 20 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c RuleLiteral.=.$assertRuleLiteral
668c0 73 5b 30 5d 3b 0a 0a 69 66 20 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 20 21 3d 3d 20 61 62 73 s[0];..if.(abs($literal).!==.abs
668e0 28 24 61 73 73 65 72 74 52 75 6c 65 4c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 ($assertRuleLiteral)).{.continue
66900 3b 0a 7d 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 61 73 73 65 72 74 52 75 ;.}..$problem->addRule($assertRu
66920 6c 65 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 61 73 73 65 le);.$this->disableProblem($asse
66940 72 74 52 75 6c 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 5d 20 3d 20 24 rtRule);.}.$this->problems[].=.$
66960 70 72 6f 62 6c 65 6d 3b 0a 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 73 65 problem;..$this->decisions->rese
66980 74 54 6f 4f 66 66 73 65 74 28 24 64 65 63 69 73 69 6f 6e 53 74 61 72 74 29 3b 0a 24 72 75 6c 65 tToOffset($decisionStart);.$rule
669a0 49 6e 64 65 78 20 3d 20 2d 31 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 Index.=.-1;.}.}..protected.funct
669c0 69 6f 6e 20 73 65 74 75 70 49 6e 73 74 61 6c 6c 65 64 4d 61 70 28 29 0a 7b 0a 24 74 68 69 73 2d ion.setupInstalledMap().{.$this-
669e0 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 >installedMap.=.array();.foreach
66a00 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 .($this->installed->getPackages(
66a20 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 ).as.$package).{.$this->installe
66a40 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 24 70 61 63 6b 61 dMap[$package->getId()].=.$packa
66a60 67 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6a 6f 62 73 20 61 73 20 24 ge;.}..foreach.($this->jobs.as.$
66a80 6a 6f 62 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 job).{.switch.($job['cmd']).{.ca
66aa0 73 65 20 27 75 70 64 61 74 65 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 6a 6f 62 5b 27 70 61 63 6b se.'update':.foreach.($job['pack
66ac0 61 67 65 73 27 5d 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 ages'].as.$package).{.if.(isset(
66ae0 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 $this->installedMap[$package->ge
66b00 74 49 64 28 29 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 tId()])).{.$this->updateMap[$pac
66b20 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 7d 0a 62 72 65 61 6b kage->getId()].=.true;.}.}.break
66b40 3b 0a 0a 63 61 73 65 20 27 75 70 64 61 74 65 2d 61 6c 6c 27 3a 0a 66 6f 72 65 61 63 68 20 28 24 ;..case.'update-all':.foreach.($
66b60 74 68 69 73 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 this->installedMap.as.$package).
66b80 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 {.$this->updateMap[$package->get
66ba0 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 69 6e Id()].=.true;.}.break;..case.'in
66bc0 73 74 61 6c 6c 27 3a 0a 69 66 20 28 21 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 7b stall':.if.(!$job['packages']).{
66be0 0a 24 70 72 6f 62 6c 65 6d 20 3d 20 6e 65 77 20 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 .$problem.=.new.Problem($this->p
66c00 6f 6f 6c 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 ool);.$problem->addRule(new.Rule
66c20 28 24 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 ($this->pool,.array(),.null,.nul
66c40 6c 2c 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 l,.$job));.$this->problems[].=.$
66c60 70 72 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 problem;.}.break;.}.}.}..public.
66c80 66 75 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 function.solve(Request.$request)
66ca0 0a 7b 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 .{.$this->jobs.=.$request->getJo
66cc0 62 73 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 bs();..$this->setupInstalledMap(
66ce0 29 3b 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 );..$this->decisions.=.new.Decis
66d00 69 6f 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 ions($this->pool);..$this->rules
66d20 20 3d 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 .=.$this->ruleSetGenerator->getR
66d40 75 6c 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 ulesFor($this->jobs,.$this->inst
66d60 61 6c 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 alledMap);.$this->watchGraph.=.n
66d80 65 77 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 ew.RuleWatchGraph;..foreach.($th
66da0 69 73 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 is->rules.as.$rule).{.$this->wat
66dc0 63 68 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 chGraph->insert(new.RuleWatchNod
66de0 65 28 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 e($rule));.}...$this->makeAssert
66e00 69 6f 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 ionRuleDecisions();..$this->runS
66e20 61 74 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 at(true);....foreach.($this->ins
66e40 74 61 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 talledMap.as.$packageId.=>.$void
66e60 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 75 6e 64 65 63 69 ).{.if.($this->decisions->undeci
66e80 64 65 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 ded($packageId)).{.$this->decisi
66ea0 6f 6e 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 ons->decide(-$packageId,.1,.null
66ec0 29 3b 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 );.}.}..if.($this->problems).{.t
66ee0 68 72 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 hrow.new.SolverProblemsException
66f00 28 24 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 ($this->problems,.$this->install
66f20 65 64 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 edMap);.}..$transaction.=.new.Tr
66f40 61 6e 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 ansaction($this->policy,.$this->
66f60 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 74 68 69 73 pool,.$this->installedMap,.$this
66f80 2d 3e 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 ->decisions);..return.$transacti
66fa0 6f 6e 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 on->getOperations();.}..protecte
66fc0 64 20 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 d.function.literalFromId($id).{.
66fe0 24 70 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 $package.=.$this->pool->packageB
67000 79 49 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 yId(abs($id));..return.new.Liter
67020 61 6c 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 al($package,.$id.>.0);.}........
67040 0a 0a 0a 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 ...protected.function.propagate(
67060 24 6c 65 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 $level).{.while.($this->decision
67080 73 2d 3e 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 s->validOffset($this->propagateI
670a0 6e 64 65 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 ndex)).{.$decision.=.$this->deci
670c0 73 69 6f 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 sions->atOffset($this->propagate
670e0 49 6e 64 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 Index);..$conflict.=.$this->watc
67100 68 47 72 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 hGraph->propagateLiteral(.$decis
67120 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 4c 5d ion[Decisions::DECISION_LITERAL]
67140 2c 0a 24 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 ,.$level,.$this->decisions.);..$
67160 74 68 69 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 this->propagateIndex++;..if.($co
67180 6e 66 6c 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 nflict).{.return.$conflict;.}.}.
671a0 0a 72 65 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 .return.null;.}.....private.func
671c0 74 69 6f 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 tion.revert($level).{.while.(!$t
671e0 68 69 73 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 his->decisions->isEmpty()).{.$li
67200 74 65 72 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 teral.=.$this->decisions->lastLi
67220 74 65 72 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 teral();..if.($this->decisions->
67240 75 6e 64 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 undecided($literal)).{.break;.}.
67260 0a 24 64 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 .$decisionLevel.=.$this->decisio
67280 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 3b 0a 0a 69 66 ns->decisionLevel($literal);..if
672a0 20 28 24 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 .($decisionLevel.<=.$level).{.br
672c0 65 61 6b 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 eak;.}..$this->decisions->revert
672e0 4c 61 73 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 Last();.$this->propagateIndex.=.
67300 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 7d 0a 0a 77 68 69 6c count($this->decisions);.}..whil
67320 65 20 28 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 e.(!empty($this->branches).&&.$t
67340 68 69 73 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 his->branches[count($this->branc
67360 68 65 73 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 hes).-.1][self::BRANCH_LEVEL].>=
67380 20 24 6c 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 .$level).{.array_pop($this->bran
673a0 63 68 65 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 ches);.}.}.................priva
673c0 74 65 20 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 te.function.setPropagateLearn($l
673e0 65 76 65 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 evel,.$literal,.$disableRules,.R
67400 75 6c 65 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 ule.$rule).{.$level++;..$this->d
67420 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 ecisions->decide($literal,.$leve
67440 6c 2c 20 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 l,.$rule);..while.(true).{.$rule
67460 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 0a 69 66 .=.$this->propagate($level);..if
67480 20 28 21 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 .(!$rule).{.break;.}..if.($level
674a0 20 3d 3d 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 .==.1).{.return.$this->analyzeUn
674c0 73 6f 6c 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 solvable($rule,.$disableRules);.
674e0 7d 0a 0a 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 }....list($learnLiteral,.$newLev
67500 65 6c 2c 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 el,.$newRule,.$why).=.$this->ana
67520 6c 79 7a 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 lyze($level,.$rule);..if.($newLe
67540 76 65 6c 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 vel.<=.0.||.$newLevel.>=.$level)
67560 20 7b 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 .{.throw.new.SolverBugException(
67580 0a 22 54 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 ."Trying.to.revert.to.invalid.le
675a0 76 65 6c 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 vel.".(int).$newLevel.".from.lev
675c0 65 6c 20 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 el.".(int).$level.".".);.}.elsei
675e0 66 20 28 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 f.(!$newRule).{.throw.new.Solver
67600 42 75 67 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 BugException(."No.rule.was.learn
67620 65 64 20 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 ed.from.analyzing.$rule.at.level
67640 20 24 6c 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 .$level.".);.}..$level.=.$newLev
67660 65 6c 3b 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 el;..$this->revert($level);..$th
67680 69 73 2d 3e 72 75 6c 65 73 2d 3e 61 64 64 28 24 6e 65 77 52 75 6c 65 2c 20 52 75 6c 65 53 65 74 is->rules->add($newRule,.RuleSet
676a0 3a 3a 54 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 ::TYPE_LEARNED);..$this->learned
676c0 57 68 79 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 Why[$newRule->getId()].=.$why;..
676e0 24 72 75 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 $ruleNode.=.new.RuleWatchNode($n
67700 65 77 52 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 ewRule);.$ruleNode->watch2OnHigh
67720 65 73 74 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 est($this->decisions);.$this->wa
67740 74 63 68 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 tchGraph->insert($ruleNode);..$t
67760 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6c 65 61 72 6e 4c 69 74 his->decisions->decide($learnLit
67780 65 72 61 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 eral,.$level,.$newRule);.}..retu
677a0 72 6e 20 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 rn.$level;.}..private.function.s
677c0 65 6c 65 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 electAndInstall($level,.array.$d
677e0 65 63 69 73 69 6f 6e 51 75 65 75 65 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 52 75 6c ecisionQueue,.$disableRules,.Rul
67800 65 20 24 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 e.$rule).{...$literals.=.$this->
67820 70 6f 6c 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 policy->selectPreferedPackages($
67840 74 68 69 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 this->pool,.$this->installedMap,
67860 20 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 2c 20 24 72 75 6c 65 2d 3e 67 65 74 52 65 71 75 69 .$decisionQueue,.$rule->getRequi
67880 72 65 64 50 61 63 6b 61 67 65 28 29 29 3b 0a 0a 24 73 65 6c 65 63 74 65 64 4c 69 74 65 72 61 6c redPackage());..$selectedLiteral
678a0 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
678c0 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
678e0 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
67900 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
67920 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,
67940 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
67960 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
67980 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
679a0 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.=
679c0 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
679e0 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
67a00 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
67a20 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
67a40 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
67a60 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][
67a80 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
67aa0 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.($
67ac0 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
67ae0 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
67b00 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;.
67b20 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;..
67b40 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
67b60 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).{
67b80 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.===.
67ba0 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
67bc0 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.
67be0 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;
67c00 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.(
67c20 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
67c40 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
67c60 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
67c80 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
67ca0 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
67cc0 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
67ce0 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
67d00 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
67d20 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--;
67d40 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->
67d60 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.
67d80 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_
67da0 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($
67dc0 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(
67de0 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
67e00 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
67e20 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.(!
67e40 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.($
67e60 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
67e80 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
67ea0 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)]);.
67ec0 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;
67ee0 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
67f00 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
67f20 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
67f40 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-
67f60 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
67f80 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
67fa0 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
67fc0 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
67fe0 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.
68000 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
68020 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
68040 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
68060 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
68080 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
680a0 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
680c0 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->
680e0 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
68100 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)
68120 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
68140 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-
68160 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
68180 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
681a0 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
681c0 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
681e0 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
68200 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)
68220 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
68240 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
68260 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
68280 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,.
682a0 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.
682c0 50 72 6f 62 6c 65 6d 28 24 74 68 69 73 2d 3e 70 6f 6f 6c 29 3b 0a 24 70 72 6f 62 6c 65 6d 2d 3e Problem($this->pool);.$problem->
682e0 61 64 64 52 75 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 2d 3e addRule($conflictRule);..$this->
68300 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 6f 62 6c 65 6d 2c 20 analyzeUnsolvableRule($problem,.
68320 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 $conflictRule);..$this->problems
68340 5b 5d 20 3d 20 24 70 72 6f 62 6c 65 6d 3b 0a 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 29 3b [].=.$problem;..$seen.=.array();
68360 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2d 3e 67 65 74 4c .$literals.=.$conflictRule->getL
68380 69 74 65 72 61 6c 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 iterals();..foreach.($literals.a
683a0 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 s.$literal).{...if.($this->decis
683c0 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a 63 6f 6e 74 69 ions->satisfy($literal)).{.conti
683e0 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 20 3d 20 74 72 nue;.}.$seen[abs($literal)].=.tr
68400 75 65 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 ue;.}..foreach.($this->decisions
68420 20 61 73 20 24 64 65 63 69 73 69 6f 6e 29 20 7b 0a 24 6c 69 74 65 72 61 6c 20 3d 20 24 64 65 63 .as.$decision).{.$literal.=.$dec
68440 69 73 69 6f 6e 5b 44 65 63 69 73 69 6f 6e 73 3a 3a 44 45 43 49 53 49 4f 4e 5f 4c 49 54 45 52 41 ision[Decisions::DECISION_LITERA
68460 4c 5d 3b 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 L];....if.(!isset($seen[abs($lit
68480 65 72 61 6c 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 77 68 79 20 3d 20 24 eral)])).{.continue;.}..$why.=.$
684a0 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 52 45 41 decision[Decisions::DECISION_REA
684c0 53 4f 4e 5d 3b 0a 0a 24 70 72 6f 62 6c 65 6d 2d 3e 61 64 64 52 75 6c 65 28 24 77 68 79 29 3b 0a SON];..$problem->addRule($why);.
684e0 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 6f 6c 76 61 62 6c 65 52 75 6c 65 28 24 70 72 $this->analyzeUnsolvableRule($pr
68500 6f 62 6c 65 6d 2c 20 24 77 68 79 29 3b 0a 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 77 68 79 2d oblem,.$why);..$literals.=.$why-
68520 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 >getLiterals();..foreach.($liter
68540 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e als.as.$literal).{...if.($this->
68560 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a decisions->satisfy($literal)).{.
68580 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 73 65 65 6e 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d continue;.}.$seen[abs($literal)]
685a0 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 69 73 61 62 6c 65 52 75 6c 65 73 29 .=.true;.}.}..if.($disableRules)
685c0 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 5b 63 6f 75 6e .{.foreach.($this->problems[coun
685e0 74 28 24 74 68 69 73 2d 3e 70 72 6f 62 6c 65 6d 73 29 20 2d 20 31 5d 20 61 73 20 24 72 65 61 73 t($this->problems).-.1].as.$reas
68600 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 6d 28 24 72 65 61 on).{.$this->disableProblem($rea
68620 73 6f 6e 5b 27 72 75 6c 65 27 5d 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 53 6f 6c son['rule']);.}..$this->resetSol
68640 76 65 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 31 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d ver();..return.1;.}..return.0;.}
68660 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 50 72 6f 62 6c 65 ..private.function.disableProble
68680 6d 28 24 77 68 79 29 0a 7b 0a 24 6a 6f 62 20 3d 20 24 77 68 79 2d 3e 67 65 74 4a 6f 62 28 29 3b m($why).{.$job.=.$why->getJob();
686a0 0a 0a 69 66 20 28 21 24 6a 6f 62 29 20 7b 0a 24 77 68 79 2d 3e 64 69 73 61 62 6c 65 28 29 3b 0a ..if.(!$job).{.$why->disable();.
686c0 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 75 .return;.}....foreach.($this->ru
686e0 6c 65 73 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 20 28 24 6a 6f 62 20 3d 3d 3d 20 24 72 75 les.as.$rule).{.if.($job.===.$ru
68700 6c 65 2d 3e 67 65 74 4a 6f 62 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 le->getJob()).{.$rule->disable()
68720 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 65 74 53 ;.}.}.}..private.function.resetS
68740 6f 6c 76 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 72 65 73 65 olver().{.$this->decisions->rese
68760 74 28 29 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 30 3b t();..$this->propagateIndex.=.0;
68780 0a 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 74 68 .$this->branches.=.array();..$th
687a0 69 73 2d 3e 65 6e 61 62 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 28 29 3b is->enableDisableLearnedRules();
687c0 0a 24 74 68 69 73 2d 3e 6d 61 6b 65 41 73 73 65 72 74 69 6f 6e 52 75 6c 65 44 65 63 69 73 69 6f .$this->makeAssertionRuleDecisio
687e0 6e 73 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e ns();.}.........private.function
68800 20 65 6e 61 62 6c 65 44 69 73 61 62 6c 65 4c 65 61 72 6e 65 64 52 75 6c 65 73 28 29 0a 7b 0a 66 .enableDisableLearnedRules().{.f
68820 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 72 61 74 6f oreach.($this->rules->getIterato
68840 72 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4c 45 41 52 4e 45 44 29 20 61 73 20 24 rFor(RuleSet::TYPE_LEARNED).as.$
68860 72 75 6c 65 29 20 7b 0a 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 57 68 79 rule).{.$why.=.$this->learnedWhy
68880 5b 24 72 75 6c 65 2d 3e 67 65 74 49 64 28 29 5d 3b 0a 24 70 72 6f 62 6c 65 6d 52 75 6c 65 73 20 [$rule->getId()];.$problemRules.
688a0 3d 20 24 74 68 69 73 2d 3e 6c 65 61 72 6e 65 64 50 6f 6f 6c 5b 24 77 68 79 5d 3b 0a 0a 24 66 6f =.$this->learnedPool[$why];..$fo
688c0 75 6e 64 44 69 73 61 62 6c 65 64 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 undDisabled.=.false;.foreach.($p
688e0 72 6f 62 6c 65 6d 52 75 6c 65 73 20 61 73 20 24 70 72 6f 62 6c 65 6d 52 75 6c 65 29 20 7b 0a 69 roblemRules.as.$problemRule).{.i
68900 66 20 28 24 70 72 6f 62 6c 65 6d 52 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b f.($problemRule->isDisabled()).{
68920 0a 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d .$foundDisabled.=.true;.break;.}
68940 0a 7d 0a 0a 69 66 20 28 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 26 26 20 24 72 75 6c 65 2d .}..if.($foundDisabled.&&.$rule-
68960 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 64 69 73 61 62 6c 65 28 29 >isEnabled()).{.$rule->disable()
68980 3b 0a 7d 20 65 6c 73 65 69 66 20 28 21 24 66 6f 75 6e 64 44 69 73 61 62 6c 65 64 20 26 26 20 24 ;.}.elseif.(!$foundDisabled.&&.$
689a0 72 75 6c 65 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 24 72 75 6c 65 2d 3e 65 6e 61 rule->isDisabled()).{.$rule->ena
689c0 62 6c 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 ble();.}.}.}..private.function.r
689e0 75 6e 53 61 74 28 24 64 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 unSat($disableRules.=.true).{.$t
68a00 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 65 49 6e 64 65 78 20 3d 20 30 3b 0a 0a 0a 20 0a 20 0a 20 his->propagateIndex.=.0;........
68a20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 ............$decisionQueue.=.arr
68a40 61 79 28 29 3b 0a 24 64 65 63 69 73 69 6f 6e 53 75 70 70 6c 65 6d 65 6e 74 51 75 65 75 65 20 3d ay();.$decisionSupplementQueue.=
68a60 20 61 72 72 61 79 28 29 3b 0a 24 64 69 73 61 62 6c 65 52 75 6c 65 73 20 3d 20 61 72 72 61 79 28 .array();.$disableRules.=.array(
68a80 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 31 3b 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 );..$level.=.1;.$systemLevel.=.$
68aa0 6c 65 76 65 6c 20 2b 20 31 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 50 6f 73 20 3d 20 30 3b 0a 0a 77 level.+.1;.$installedPos.=.0;..w
68ac0 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 0a 69 66 20 28 31 20 3d 3d 3d 20 24 6c 65 76 65 6c 29 hile.(true).{..if.(1.===.$level)
68ae0 20 7b 0a 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 .{.$conflictRule.=.$this->propag
68b00 61 74 65 28 24 6c 65 76 65 6c 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 63 6f 6e 66 6c ate($level);.if.(null.!==.$confl
68b20 69 63 74 52 75 6c 65 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 6e 61 6c 79 7a 65 55 6e 73 ictRule).{.if.($this->analyzeUns
68b40 6f 6c 76 61 62 6c 65 28 24 63 6f 6e 66 6c 69 63 74 52 75 6c 65 2c 20 24 64 69 73 61 62 6c 65 52 olvable($conflictRule,.$disableR
68b60 75 6c 65 73 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a ules)).{.continue;.}..return;.}.
68b80 7d 0a 0a 0a 20 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c 29 20 }....if.($level.<.$systemLevel).
68ba0 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 2d 3e 67 65 74 49 {.$iterator.=.$this->rules->getI
68bc0 74 65 72 61 74 6f 72 46 6f 72 28 52 75 6c 65 53 65 74 3a 3a 54 59 50 45 5f 4a 4f 42 29 3b 0a 66 teratorFor(RuleSet::TYPE_JOB);.f
68be0 6f 72 65 61 63 68 20 28 24 69 74 65 72 61 74 6f 72 20 61 73 20 24 72 75 6c 65 29 20 7b 0a 69 66 oreach.($iterator.as.$rule).{.if
68c00 20 28 24 72 75 6c 65 2d 3e 69 73 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 64 65 63 69 73 69 6f .($rule->isEnabled()).{.$decisio
68c20 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 nQueue.=.array();.$noneSatisfied
68c40 20 3d 20 74 72 75 65 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 75 6c 65 2d 3e 67 65 74 4c 69 74 .=.true;..foreach.($rule->getLit
68c60 65 72 61 6c 73 28 29 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 24 74 68 69 73 erals().as.$literal).{.if.($this
68c80 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 73 61 74 69 73 66 79 28 24 6c 69 74 65 72 61 6c 29 29 20 ->decisions->satisfy($literal)).
68ca0 7b 0a 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 3d 20 66 61 6c 73 65 3b 0a 62 72 65 61 6b 3b {.$noneSatisfied.=.false;.break;
68cc0 0a 7d 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d 3e 64 65 .}.if.($literal.>.0.&&.$this->de
68ce0 63 69 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 24 6c 69 74 65 72 61 6c 29 29 20 7b 0a cisions->undecided($literal)).{.
68d00 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 7d 0a 7d $decisionQueue[].=.$literal;.}.}
68d20 0a 0a 69 66 20 28 24 6e 6f 6e 65 53 61 74 69 73 66 69 65 64 20 26 26 20 63 6f 75 6e 74 28 24 64 ..if.($noneSatisfied.&&.count($d
68d40 65 63 69 73 69 6f 6e 51 75 65 75 65 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 ecisionQueue)).{.....if.(count($
68d60 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 64 29 20 21 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d this->installed).!=.count($this-
68d80 3e 75 70 64 61 74 65 4d 61 70 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 61 72 >updateMap)).{.$prunedQueue.=.ar
68da0 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 20 61 ray();.foreach.($decisionQueue.a
68dc0 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 69 s.$literal).{.if.(isset($this->i
68de0 6e 73 74 61 6c 6c 65 64 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 6c 29 5d 29 29 20 7b 0a 24 nstalledMap[abs($literal)])).{.$
68e00 70 72 75 6e 65 64 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 69 66 20 28 69 73 prunedQueue[].=.$literal;.if.(is
68e20 73 65 74 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 4d 61 70 5b 61 62 73 28 24 6c 69 74 65 72 61 set($this->updateMap[abs($litera
68e40 6c 29 5d 29 29 20 7b 0a 24 70 72 75 6e 65 64 51 75 65 75 65 20 3d 20 24 64 65 63 69 73 69 6f 6e l)])).{.$prunedQueue.=.$decision
68e60 51 75 65 75 65 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 Queue;.break;.}.}.}.$decisionQue
68e80 75 65 20 3d 20 24 70 72 75 6e 65 64 51 75 65 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6e 6f 6e ue.=.$prunedQueue;.}.}..if.($non
68ea0 65 53 61 74 69 73 66 69 65 64 20 26 26 20 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 eSatisfied.&&.count($decisionQue
68ec0 75 65 29 29 20 7b 0a 0a 24 6f 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a 24 6c 65 76 65 6c ue)).{..$oLevel.=.$level;.$level
68ee0 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 76 65 .=.$this->selectAndInstall($leve
68f00 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 65 73 l,.$decisionQueue,.$disableRules
68f20 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 0a 72 ,.$rule);..if.(0.===.$level).{.r
68f40 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 3d 20 24 6f 4c 65 76 65 6c 29 20 eturn;.}.if.($level.<=.$oLevel).
68f60 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d {.break;.}.}.}.}..$systemLevel.=
68f80 20 24 6c 65 76 65 6c 20 2b 20 31 3b 0a 0a 0a 20 24 69 74 65 72 61 74 6f 72 2d 3e 6e 65 78 74 28 .$level.+.1;....$iterator->next(
68fa0 29 3b 0a 69 66 20 28 24 69 74 65 72 61 74 6f 72 2d 3e 76 61 6c 69 64 28 29 29 20 7b 0a 63 6f 6e );.if.($iterator->valid()).{.con
68fc0 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d tinue;.}.}..if.($level.<.$system
68fe0 4c 65 76 65 6c 29 20 7b 0a 24 73 79 73 74 65 6d 4c 65 76 65 6c 20 3d 20 24 6c 65 76 65 6c 3b 0a Level).{.$systemLevel.=.$level;.
69000 7d 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6e 20 3d 20 30 3b 20 24 6e 20 3c 20 63 6f 75 }..for.($i.=.0,.$n.=.0;.$n.<.cou
69020 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 3b 20 24 69 2b 2b 2c 20 24 6e 2b 2b 29 20 7b 0a nt($this->rules);.$i++,.$n++).{.
69040 69 66 20 28 24 69 20 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 72 75 6c 65 73 29 29 20 7b if.($i.==.count($this->rules)).{
69060 0a 24 69 20 3d 20 30 3b 0a 7d 0a 0a 24 72 75 6c 65 20 3d 20 24 74 68 69 73 2d 3e 72 75 6c 65 73 .$i.=.0;.}..$rule.=.$this->rules
69080 2d 3e 72 75 6c 65 42 79 49 64 28 24 69 29 3b 0a 24 6c 69 74 65 72 61 6c 73 20 3d 20 24 72 75 6c ->ruleById($i);.$literals.=.$rul
690a0 65 2d 3e 67 65 74 4c 69 74 65 72 61 6c 73 28 29 3b 0a 0a 69 66 20 28 24 72 75 6c 65 2d 3e 69 73 e->getLiterals();..if.($rule->is
690c0 44 69 73 61 62 6c 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 64 65 63 69 Disabled()).{.continue;.}..$deci
690e0 73 69 6f 6e 51 75 65 75 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 sionQueue.=.array();............
69100 0a 20 66 6f 72 65 61 63 68 20 28 24 6c 69 74 65 72 61 6c 73 20 61 73 20 24 6c 69 74 65 72 61 6c ..foreach.($literals.as.$literal
69120 29 20 7b 0a 69 66 20 28 24 6c 69 74 65 72 61 6c 20 3c 3d 20 30 29 20 7b 0a 69 66 20 28 21 24 74 ).{.if.($literal.<=.0).{.if.(!$t
69140 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 6c 28 61 his->decisions->decidedInstall(a
69160 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 0a 20 7d bs($literal))).{.continue.2;...}
69180 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e .}.else.{.if.($this->decisions->
691a0 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 29 20 7b decidedInstall(abs($literal))).{
691c0 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 20 0a 20 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 63 69 .continue.2;...}.if.($this->deci
691e0 73 69 6f 6e 73 2d 3e 75 6e 64 65 63 69 64 65 64 28 61 62 73 28 24 6c 69 74 65 72 61 6c 29 29 29 sions->undecided(abs($literal)))
69200 20 7b 0a 24 64 65 63 69 73 69 6f 6e 51 75 65 75 65 5b 5d 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a .{.$decisionQueue[].=.$literal;.
69220 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 64 65 63 69 73 69 6f 6e 51 75 65 75 }.}.}....if.(count($decisionQueu
69240 65 29 20 3c 20 32 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6f 4c 65 76 65 6c 20 3d e).<.2).{.continue;.}..$oLevel.=
69260 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 65 63 74 41 .$level;.$level.=.$this->selectA
69280 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 75 65 75 65 ndInstall($level,.$decisionQueue
692a0 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 20 28 30 20 ,.$disableRules,.$rule);..if.(0.
692c0 3d 3d 3d 20 24 6c 65 76 65 6c 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 24 6e 20 3d 20 ===.$level).{.return;.}....$n.=.
692e0 2d 31 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 76 65 6c 20 3c 20 24 73 79 73 74 65 6d 4c 65 76 65 6c -1;.}..if.($level.<.$systemLevel
69300 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 63 6f 75 6e 74 28 24 74 68 ).{.continue;.}....if.(count($th
69320 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 29 20 7b 0a 0a 24 6c 61 73 74 4c 69 74 65 72 61 6c 20 3d is->branches)).{..$lastLiteral.=
69340 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 61 73 74 42 .null;.$lastLevel.=.null;.$lastB
69360 72 61 6e 63 68 49 6e 64 65 78 20 3d 20 30 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 ranchIndex.=.0;.$lastBranchOffse
69380 74 20 3d 20 30 3b 0a 24 6c 20 3d 20 30 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 63 6f 75 6e 74 28 t.=.0;.$l.=.0;..for.($i.=.count(
693a0 24 74 68 69 73 2d 3e 62 72 61 6e 63 68 65 73 29 20 2d 20 31 3b 20 24 69 20 3e 3d 20 30 3b 20 24 $this->branches).-.1;.$i.>=.0;.$
693c0 69 2d 2d 29 20 7b 0a 6c 69 73 74 28 24 6c 69 74 65 72 61 6c 73 2c 20 24 6c 29 20 3d 20 24 74 68 i--).{.list($literals,.$l).=.$th
693e0 69 73 2d 3e 62 72 61 6e 63 68 65 73 5b 24 69 5d 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 74 is->branches[$i];..foreach.($lit
69400 65 72 61 6c 73 20 61 73 20 24 6f 66 66 73 65 74 20 3d 3e 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a erals.as.$offset.=>.$literal).{.
69420 69 66 20 28 24 6c 69 74 65 72 61 6c 20 26 26 20 24 6c 69 74 65 72 61 6c 20 3e 20 30 20 26 26 20 if.($literal.&&.$literal.>.0.&&.
69440 24 74 68 69 73 2d 3e 64 65 63 69 73 69 6f 6e 73 2d 3e 64 65 63 69 73 69 6f 6e 4c 65 76 65 6c 28 $this->decisions->decisionLevel(
69460 24 6c 69 74 65 72 61 6c 29 20 3e 20 24 6c 20 2b 20 31 29 20 7b 0a 24 6c 61 73 74 4c 69 74 65 72 $literal).>.$l.+.1).{.$lastLiter
69480 61 6c 20 3d 20 24 6c 69 74 65 72 61 6c 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 20 al.=.$literal;.$lastBranchIndex.
694a0 3d 20 24 69 3b 0a 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 20 3d 20 24 6f 66 66 73 65 =.$i;.$lastBranchOffset.=.$offse
694c0 74 3b 0a 24 6c 61 73 74 4c 65 76 65 6c 20 3d 20 24 6c 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 t;.$lastLevel.=.$l;.}.}.}..if.($
694e0 6c 61 73 74 4c 69 74 65 72 61 6c 29 20 7b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 62 72 61 6e lastLiteral).{.unset($this->bran
69500 63 68 65 73 5b 24 6c 61 73 74 42 72 61 6e 63 68 49 6e 64 65 78 5d 5b 73 65 6c 66 3a 3a 42 52 41 ches[$lastBranchIndex][self::BRA
69520 4e 43 48 5f 4c 49 54 45 52 41 4c 53 5d 5b 24 6c 61 73 74 42 72 61 6e 63 68 4f 66 66 73 65 74 5d NCH_LITERALS][$lastBranchOffset]
69540 29 3b 0a 0a 24 6c 65 76 65 6c 20 3d 20 24 6c 61 73 74 4c 65 76 65 6c 3b 0a 24 74 68 69 73 2d 3e );..$level.=.$lastLevel;.$this->
69560 72 65 76 65 72 74 28 24 6c 65 76 65 6c 29 3b 0a 0a 24 77 68 79 20 3d 20 24 74 68 69 73 2d 3e 64 revert($level);..$why.=.$this->d
69580 65 63 69 73 69 6f 6e 73 2d 3e 6c 61 73 74 52 65 61 73 6f 6e 28 29 3b 0a 0a 24 6f 4c 65 76 65 6c ecisions->lastReason();..$oLevel
695a0 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 74 50 72 .=.$level;.$level.=.$this->setPr
695c0 6f 70 61 67 61 74 65 4c 65 61 72 6e 28 24 6c 65 76 65 6c 2c 20 24 6c 61 73 74 4c 69 74 65 72 61 opagateLearn($level,.$lastLitera
695e0 6c 2c 20 24 64 69 73 61 62 6c 65 52 75 6c 65 73 2c 20 24 77 68 79 29 3b 0a 0a 69 66 20 28 24 6c l,.$disableRules,.$why);..if.($l
69600 65 76 65 6c 20 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 evel.==.0).{.return;.}..continue
69620 3b 0a 7d 0a 7d 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a ;.}.}..break;.}.}.}.<?php.......
69640 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e .....namespace.Composer\Dependen
69660 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 67 cyResolver;..use.Composer\Packag
69680 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 61 69 6e 74 49 e\LinkConstraint\LinkConstraintI
696a0 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 71 75 65 73 74 0a 7b 0a 70 72 nterface;.....class.Request.{.pr
696c0 6f 74 65 63 74 65 64 20 24 6a 6f 62 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a otected.$jobs;.protected.$pool;.
696e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 6f 6f .public.function.__construct(Poo
69700 6c 20 24 70 6f 6f 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a l.$pool).{.$this->pool.=.$pool;.
69720 24 74 68 69 73 2d 3e 6a 6f 62 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 $this->jobs.=.array();.}..public
69740 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 .function.install($packageName,.
69760 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 24 63 6f 6e 73 74 72 61 LinkConstraintInterface.$constra
69780 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 62 28 24 70 61 63 int.=.null).{.$this->addJob($pac
697a0 6b 61 67 65 4e 61 6d 65 2c 20 27 69 6e 73 74 61 6c 6c 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 kageName,.'install',.$constraint
697c0 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 24 70 61 );.}..public.function.update($pa
697e0 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 74 65 72 66 61 ckageName,.LinkConstraintInterfa
69800 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 68 69 73 2d 3e ce.$constraint.=.null).{.$this->
69820 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 27 75 70 64 61 74 65 27 2c 20 24 addJob($packageName,.'update',.$
69840 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 constraint);.}..public.function.
69860 72 65 6d 6f 76 65 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 remove($packageName,.LinkConstra
69880 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 29 intInterface.$constraint.=.null)
698a0 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 61 6d 65 2c 20 27 .{.$this->addJob($packageName,.'
698c0 72 65 6d 6f 76 65 27 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 remove',.$constraint);.}..protec
698e0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4a 6f 62 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 ted.function.addJob($packageName
69900 2c 20 24 63 6d 64 2c 20 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 49 6e 74 65 72 66 61 63 65 20 ,.$cmd,.LinkConstraintInterface.
69920 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 61 63 6b 61 67 65 4e 61 $constraint.=.null).{.$packageNa
69940 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 3b 0a 24 me.=.strtolower($packageName);.$
69960 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 packages.=.$this->pool->whatProv
69980 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 63 6f 6e 73 74 72 61 69 6e 74 29 3b ides($packageName,.$constraint);
699a0 0a 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 72 61 79 28 0a 27 70 61 63 6b 61 67 ..$this->jobs[].=.array(.'packag
699c0 65 73 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 73 2c 0a 27 63 6d 64 27 20 3d 3e 20 24 63 6d 64 2c es'.=>.$packages,.'cmd'.=>.$cmd,
699e0 0a 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 0a .'packageName'.=>.$packageName,.
69a00 27 63 6f 6e 73 74 72 61 69 6e 74 27 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e 74 2c 0a 29 3b 0a 'constraint'.=>.$constraint,.);.
69a20 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 41 6c 6c 28 29 0a 7b }..public.function.updateAll().{
69a40 0a 24 74 68 69 73 2d 3e 6a 6f 62 73 5b 5d 20 3d 20 61 72 72 61 79 28 27 63 6d 64 27 20 3d 3e 20 .$this->jobs[].=.array('cmd'.=>.
69a60 27 75 70 64 61 74 65 2d 61 6c 6c 27 2c 20 27 70 61 63 6b 61 67 65 73 27 20 3d 3e 20 61 72 72 61 'update-all',.'packages'.=>.arra
69a80 79 28 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4a 6f 62 73 y());.}..public.function.getJobs
69aa0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6a 6f 62 73 3b 0a 7d 0a 7d 0a 3c 3f 70 ().{.return.$this->jobs;.}.}.<?p
69ac0 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
69ae0 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 0a 63 6c 61 73 73 \DependencyResolver;.......class
69b00 20 50 72 6f 62 6c 65 6d 0a 7b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e .Problem.{.....protected.$reason
69b20 53 65 65 6e 3b 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 61 73 6f 6e 73 20 3d 20 Seen;......protected.$reasons.=.
69b40 61 72 72 61 79 28 29 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 65 63 74 69 6f 6e 20 3d 20 30 array();..protected.$section.=.0
69b60 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6f 6f 6c 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ;..protected.$pool;..public.func
69b80 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 6f 6c 29 0a 7b 0a 24 tion.__construct(Pool.$pool).{.$
69ba0 74 68 69 73 2d 3e 70 6f 6f 6c 20 3d 20 24 70 6f 6f 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c this->pool.=.$pool;.}.......publ
69bc0 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 24 72 75 6c 65 29 0a ic.function.addRule(Rule.$rule).
69be0 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 3e 67 65 74 49 64 28 {.$this->addReason($rule->getId(
69c00 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 2c 0a 27 6a 6f 62 27 ),.array(.'rule'.=>.$rule,.'job'
69c20 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 7d 0a 0a 0a 0a 0a 0a .=>.$rule->getJob(),.));.}......
69c40 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 73 28 29 0a 7b 0a .public.function.getReasons().{.
69c60 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 0a 0a 0a 0a 0a 0a 0a return.$this->reasons;.}........
69c80 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 6e 67 28 public.function.getPrettyString(
69ca0 61 72 72 61 79 20 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 20 3d 20 61 72 72 61 79 28 29 29 0a 7b array.$installedMap.=.array()).{
69cc0 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 5f 61 72 72 61 79 .$reasons.=.call_user_func_array
69ce0 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 72 73 65 28 24 74 ('array_merge',.array_reverse($t
69d00 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 28 24 72 65 61 73 his->reasons));..if.(count($reas
69d20 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 6e 73 29 3b 0a 24 ons).===.1).{.reset($reasons);.$
69d40 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 3b 0a 0a 24 72 75 reason.=.current($reasons);..$ru
69d60 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 20 3d 20 24 72 65 le.=.$reason['rule'];.$job.=.$re
69d80 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 24 6a 6f 62 5b 27 ason['job'];..if.($job.&&.$job['
69da0 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 74 79 28 24 6a 6f cmd'].===.'install'.&&.empty($jo
69dc0 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 3d 3d 3d 20 73 74 b['packages'])).{...if.(0.===.st
69de0 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 20 27 65 78 74 2d ripos($job['packageName'],.'ext-
69e00 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 70 61 63 6b 61 67 ')).{.$ext.=.substr($job['packag
69e20 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 6e 73 69 6f 6e 5f eName'],.4);.$error.=.extension_
69e40 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 6f 6e 67 20 76 65 loaded($ext).?.'has.the.wrong.ve
69e60 72 73 69 6f 6e 20 28 27 2e 28 70 68 70 76 65 72 73 69 6f 6e 28 24 65 78 74 29 20 3f 3a 20 27 30 rsion.('.(phpversion($ext).?:.'0
69e80 27 29 2e 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 ').').installed'.:.'is.missing.f
69ea0 72 6f 6d 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 rom.your.system';..return."\n...
69ec0 20 2d 20 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 .-.The.requested.PHP.extension."
69ee0 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 .$job['packageName'].$this->cons
69f00 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 traintToText($job['constraint'])
69f20 2e 27 20 27 2e 24 65 72 72 6f 72 2e 27 2e 27 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 .'.'.$error.'.';.}....if.(0.===.
69f40 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 20 27 6c 69 stripos($job['packageName'],.'li
69f60 62 2d 27 29 29 20 7b 0a 69 66 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6a 6f 62 5b 27 70 61 63 b-')).{.if.(strtolower($job['pac
69f80 6b 61 67 65 4e 61 6d 65 27 5d 29 20 3d 3d 3d 20 27 6c 69 62 2d 69 63 75 27 29 20 7b 0a 24 65 72 kageName']).===.'lib-icu').{.$er
69fa0 72 6f 72 20 3d 20 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 69 6e 74 6c 27 29 20 3f ror.=.extension_loaded('intl').?
69fc0 20 27 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 .'has.the.wrong.version.installe
69fe0 64 2c 20 74 72 79 20 75 70 67 72 61 64 69 6e 67 20 74 68 65 20 69 6e 74 6c 20 65 78 74 65 6e 73 d,.try.upgrading.the.intl.extens
6a000 69 6f 6e 2e 27 20 3a 20 27 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 ion.'.:.'is.missing.from.your.sy
6a020 73 74 65 6d 2c 20 6d 61 6b 65 20 73 75 72 65 20 74 68 65 20 69 6e 74 6c 20 65 78 74 65 6e 73 69 stem,.make.sure.the.intl.extensi
6a040 6f 6e 20 69 73 20 6c 6f 61 64 65 64 2e 27 3b 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d on.is.loaded.';..return."\n....-
6a060 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 22 2e .The.requested.linked.library.".
6a080 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 $job['packageName'].$this->const
6a0a0 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e raintToText($job['constraint']).
6a0c0 27 20 27 2e 24 65 72 72 6f 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 '.'.$error;.}..return."\n....-.T
6a0e0 68 65 20 72 65 71 75 65 73 74 65 64 20 6c 69 6e 6b 65 64 20 6c 69 62 72 61 72 79 20 22 2e 24 6a he.requested.linked.library.".$j
6a100 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
6a120 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']).'.
6a140 68 61 73 20 74 68 65 20 77 72 6f 6e 67 20 76 65 72 73 69 6f 6e 20 69 6e 73 74 61 6c 6c 65 64 20 has.the.wrong.version.installed.
6a160 6f 72 20 69 73 20 6d 69 73 73 69 6e 67 20 66 72 6f 6d 20 79 6f 75 72 20 73 79 73 74 65 6d 2c 20 or.is.missing.from.your.system,.
6a180 6d 61 6b 65 20 73 75 72 65 20 74 6f 20 6c 6f 61 64 20 74 68 65 20 65 78 74 65 6e 73 69 6f 6e 20 make.sure.to.load.the.extension.
6a1a0 70 72 6f 76 69 64 69 6e 67 20 69 74 2e 27 3b 0a 7d 0a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 providing.it.';.}..if.(!preg_mat
6a1c0 63 68 28 27 7b 5e 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d 5d 2b 24 7d 27 2c 20 24 6a 6f 62 5b ch('{^[A-Za-z0-9_./-]+$}',.$job[
6a1e0 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 29 20 7b 0a 24 69 6c 6c 65 67 61 6c 43 68 61 72 73 'packageName'])).{.$illegalChars
6a200 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5b 41 2d 5a 61 2d 7a 30 2d 39 5f 2e 2f 2d .=.preg_replace('{[A-Za-z0-9_./-
6a220 5d 2b 7d 27 2c 20 27 27 2c 20 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 29 3b 0a ]+}',.'',.$job['packageName']);.
6a240 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 70 .return."\n....-.The.requested.p
6a260 61 63 6b 61 67 65 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 27 20 63 ackage.".$job['packageName'].'.c
6a280 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 2c 20 69 74 20 6c 6f 6f 6b 73 20 6c 69 6b 65 ould.not.be.found,.it.looks.like
6a2a0 20 69 74 73 20 6e 61 6d 65 20 69 73 20 69 6e 76 61 6c 69 64 2c 20 22 27 2e 24 69 6c 6c 65 67 61 .its.name.is.invalid,."'.$illega
6a2c0 6c 43 68 61 72 73 2e 27 22 20 69 73 20 6e 6f 74 20 61 6c 6c 6f 77 65 64 20 69 6e 20 70 61 63 6b lChars.'".is.not.allowed.in.pack
6a2e0 61 67 65 20 6e 61 6d 65 73 2e 27 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 6f 6f 6c age.names.';.}..if.(!$this->pool
6a300 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 ->whatProvides($job['packageName
6a320 27 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 '])).{.return."\n....-.The.reque
6a340 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 sted.package.".$job['packageName
6a360 27 5d 2e 27 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 20 69 6e 20 61 6e 79 20 76 '].'.could.not.be.found.in.any.v
6a380 65 72 73 69 6f 6e 2c 20 74 68 65 72 65 20 6d 61 79 20 62 65 20 61 20 74 79 70 6f 20 69 6e 20 74 ersion,.there.may.be.a.typo.in.t
6a3a0 68 65 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 2e 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 5c 6e he.package.name.';.}..return."\n
6a3c0 20 20 20 20 2d 20 54 68 65 20 72 65 71 75 65 73 74 65 64 20 70 61 63 6b 61 67 65 20 22 2e 24 6a ....-.The.requested.package.".$j
6a3e0 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
6a400 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']).'.
6a420 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 66 6f 75 6e 64 2e 27 3b 0a 7d 0a 7d 0a 0a 24 6d 65 73 73 could.not.be.found.';.}.}..$mess
6a440 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 61 73 6f ages.=.array();..foreach.($reaso
6a460 6e 73 20 61 73 20 24 72 65 61 73 6f 6e 29 20 7b 0a 24 72 75 6c 65 20 3d 20 24 72 65 61 73 6f 6e ns.as.$reason).{.$rule.=.$reason
6a480 5b 27 72 75 6c 65 27 5d 3b 0a 24 6a 6f 62 20 3d 20 24 72 65 61 73 6f 6e 5b 27 6a 6f 62 27 5d 3b ['rule'];.$job.=.$reason['job'];
6a4a0 0a 0a 69 66 20 28 24 6a 6f 62 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 74 68 69 ..if.($job).{.$messages[].=.$thi
6a4c0 73 2d 3e 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f 62 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 72 s->jobToText($job);.}.elseif.($r
6a4e0 75 6c 65 29 20 7b 0a 69 66 20 28 24 72 75 6c 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 75 6c 65 ule).{.if.($rule.instanceof.Rule
6a500 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 72 75 6c 65 2d 3e 67 65 74 50 72 65 74 ).{.$messages[].=.$rule->getPret
6a520 74 79 53 74 72 69 6e 67 28 24 69 6e 73 74 61 6c 6c 65 64 4d 61 70 29 3b 0a 7d 0a 7d 0a 7d 0a 0a tyString($installedMap);.}.}.}..
6a540 72 65 74 75 72 6e 20 22 5c 6e 20 20 20 20 2d 20 22 2e 69 6d 70 6c 6f 64 65 28 22 5c 6e 20 20 20 return."\n....-.".implode("\n...
6a560 20 2d 20 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 .-.",.$messages);.}........prote
6a580 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 61 73 6f 6e 28 24 69 64 2c 20 24 72 65 cted.function.addReason($id,.$re
6a5a0 61 73 6f 6e 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e ason).{.if.(!isset($this->reason
6a5c0 53 65 65 6e 5b 24 69 64 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 53 65 65 6e 5b Seen[$id])).{.$this->reasonSeen[
6a5e0 24 69 64 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 72 65 61 73 6f 6e 73 5b 24 74 68 69 $id].=.true;.$this->reasons[$thi
6a600 73 2d 3e 73 65 63 74 69 6f 6e 5d 5b 5d 20 3d 20 24 72 65 61 73 6f 6e 3b 0a 7d 0a 7d 0a 0a 70 75 s->section][].=.$reason;.}.}..pu
6a620 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 65 78 74 53 65 63 74 69 6f 6e 28 29 0a 7b 0a 24 74 blic.function.nextSection().{.$t
6a640 68 69 73 2d 3e 73 65 63 74 69 6f 6e 2b 2b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 his->section++;.}........protect
6a660 65 64 20 66 75 6e 63 74 69 6f 6e 20 6a 6f 62 54 6f 54 65 78 74 28 24 6a 6f 62 29 0a 7b 0a 73 77 ed.function.jobToText($job).{.sw
6a680 69 74 63 68 20 28 24 6a 6f 62 5b 27 63 6d 64 27 5d 29 20 7b 0a 63 61 73 65 20 27 69 6e 73 74 61 itch.($job['cmd']).{.case.'insta
6a6a0 6c 6c 27 3a 0a 69 66 20 28 21 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 20 7b 0a 72 65 ll':.if.(!$job['packages']).{.re
6a6c0 74 75 72 6e 20 27 4e 6f 20 70 61 63 6b 61 67 65 20 66 6f 75 6e 64 20 74 6f 20 73 61 74 69 73 66 turn.'No.package.found.to.satisf
6a6e0 79 20 69 6e 73 74 61 6c 6c 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 y.install.request.for.'.$job['pa
6a700 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 54 ckageName'].$this->constraintToT
6a720 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 ext($job['constraint']);.}..retu
6a740 72 6e 20 27 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 rn.'Installation.request.for.'.$
6a760 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 job['packageName'].$this->constr
6a780 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 aintToText($job['constraint']).'
6a7a0 20 2d 3e 20 73 61 74 69 73 66 69 61 62 6c 65 20 62 79 20 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 .->.satisfiable.by.'.$this->getP
6a7c0 61 63 6b 61 67 65 4c 69 73 74 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 2e 27 2e 27 ackageList($job['packages']).'.'
6a7e0 3b 0a 63 61 73 65 20 27 75 70 64 61 74 65 27 3a 0a 72 65 74 75 72 6e 20 27 55 70 64 61 74 65 20 ;.case.'update':.return.'Update.
6a800 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 request.for.'.$job['packageName'
6a820 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 ].$this->constraintToText($job['
6a840 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e 27 2e 27 3b 0a 63 61 73 65 20 27 72 65 6d 6f 76 65 27 constraint']).'.';.case.'remove'
6a860 3a 0a 72 65 74 75 72 6e 20 27 52 65 6d 6f 76 61 6c 20 72 65 71 75 65 73 74 20 66 6f 72 20 27 2e :.return.'Removal.request.for.'.
6a880 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 6d 65 27 5d 2e 24 74 68 69 73 2d 3e 63 6f 6e 73 74 $job['packageName'].$this->const
6a8a0 72 61 69 6e 74 54 6f 54 65 78 74 28 24 6a 6f 62 5b 27 63 6f 6e 73 74 72 61 69 6e 74 27 5d 29 2e raintToText($job['constraint']).
6a8c0 27 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 4a 6f 62 28 63 6d 64 3d 27 2e 24 6a 6f 62 5b 27 63 '';.}..return.'Job(cmd='.$job['c
6a8e0 6d 64 27 5d 2e 27 2c 20 74 61 72 67 65 74 3d 27 2e 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 4e 61 md'].',.target='.$job['packageNa
6a900 6d 65 27 5d 2e 27 2c 20 70 61 63 6b 61 67 65 73 3d 5b 27 2e 24 74 68 69 73 2d 3e 67 65 74 50 61 me'].',.packages=['.$this->getPa
6a920 63 6b 61 67 65 4c 69 73 74 28 24 6a 6f 62 5b 27 70 61 63 6b 61 67 65 73 27 5d 29 2e 27 5d 29 27 ckageList($job['packages']).'])'
6a940 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 ;.}..protected.function.getPacka
6a960 67 65 4c 69 73 74 28 24 70 61 63 6b 61 67 65 73 29 0a 7b 0a 24 70 72 65 70 61 72 65 64 20 3d 20 geList($packages).{.$prepared.=.
6a980 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 array();.foreach.($packages.as.$
6a9a0 70 61 63 6b 61 67 65 29 20 7b 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 package).{.$prepared[$package->g
6a9c0 65 74 4e 61 6d 65 28 29 5d 5b 27 6e 61 6d 65 27 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 etName()]['name'].=.$package->ge
6a9e0 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 24 70 72 65 70 61 72 65 64 5b 24 70 61 63 6b 61 67 tPrettyName();.$prepared[$packag
6aa00 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 27 76 65 72 73 69 6f 6e 73 27 5d 5b 24 70 61 63 6b 61 e->getName()]['versions'][$packa
6aa20 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 ge->getVersion()].=.$package->ge
6aa40 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 72 tPrettyVersion();.}.foreach.($pr
6aa60 65 70 61 72 65 64 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 epared.as.$name.=>.$package).{.$
6aa80 70 72 65 70 61 72 65 64 5b 24 6e 61 6d 65 5d 20 3d 20 24 70 61 63 6b 61 67 65 5b 27 6e 61 6d 65 prepared[$name].=.$package['name
6aaa0 27 5d 2e 27 5b 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 70 61 63 6b 61 67 65 5b 27 76 '].'['.implode(',.',.$package['v
6aac0 65 72 73 69 6f 6e 73 27 5d 29 2e 27 5d 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 ersions']).']';.}..return.implod
6aae0 65 28 27 2c 20 27 2c 20 24 70 72 65 70 61 72 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f e(',.',.$prepared);.}........pro
6ab00 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 54 6f 54 65 78 74 tected.function.constraintToText
6ab20 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 0a 7b 0a 72 65 74 75 72 6e 20 28 24 63 6f 6e 73 74 72 61 ($constraint).{.return.($constra
6ab40 69 6e 74 29 20 3f 20 27 20 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 67 65 74 50 72 65 74 74 int).?.'.'.$constraint->getPrett
6ab60 79 53 74 72 69 6e 67 28 29 20 3a 20 27 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a yString().:.'';.}.}.<?php.......
6ab80 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e .....namespace.Composer\Dependen
6aba0 63 79 52 65 73 6f 6c 76 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6c cyResolver;............class.Rul
6abc0 65 57 61 74 63 68 47 72 61 70 68 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 61 74 63 68 43 68 eWatchGraph.{.protected.$watchCh
6abe0 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ains.=.array();..............pub
6ac00 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 65 72 74 28 52 75 6c 65 57 61 74 63 68 4e 6f 64 lic.function.insert(RuleWatchNod
6ac20 65 20 24 6e 6f 64 65 29 0a 7b 0a 69 66 20 28 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d e.$node).{.if.($node->getRule()-
6ac40 3e 69 73 41 73 73 65 72 74 69 6f 6e 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 66 6f 72 >isAssertion()).{.return;.}..for
6ac60 65 61 63 68 20 28 61 72 72 61 79 28 24 6e 6f 64 65 2d 3e 77 61 74 63 68 31 2c 20 24 6e 6f 64 65 each.(array($node->watch1,.$node
6ac80 2d 3e 77 61 74 63 68 32 29 20 61 73 20 24 6c 69 74 65 72 61 6c 29 20 7b 0a 69 66 20 28 21 69 73 ->watch2).as.$literal).{.if.(!is
6aca0 73 65 74 28 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d set($this->watchChains[$literal]
6acc0 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 6c 69 74 65 72 61 6c )).{.$this->watchChains[$literal
6ace0 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 74 68 69 73 ].=.new.RuleWatchChain;.}..$this
6ad00 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 2d 3e 75 6e 73 68 69 66 74 ->watchChains[$literal]->unshift
6ad20 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ($node);.}.}....................
6ad40 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 70 61 67 61 74 65 4c 69 .....public.function.propagateLi
6ad60 74 65 72 61 6c 28 24 64 65 63 69 64 65 64 4c 69 74 65 72 61 6c 2c 20 24 6c 65 76 65 6c 2c 20 24 teral($decidedLiteral,.$level,.$
6ad80 64 65 63 69 73 69 6f 6e 73 29 0a 7b 0a 0a 20 0a 20 0a 20 24 6c 69 74 65 72 61 6c 20 3d 20 2d 24 decisions).{.......$literal.=.-$
6ada0 64 65 63 69 64 65 64 4c 69 74 65 72 61 6c 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 decidedLiteral;..if.(!isset($thi
6adc0 73 2d 3e 77 61 74 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 72 65 74 s->watchChains[$literal])).{.ret
6ade0 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 24 63 68 61 69 6e 20 3d 20 24 74 68 69 73 2d 3e 77 61 74 urn.null;.}..$chain.=.$this->wat
6ae00 63 68 43 68 61 69 6e 73 5b 24 6c 69 74 65 72 61 6c 5d 3b 0a 0a 24 63 68 61 69 6e 2d 3e 72 65 77 chChains[$literal];..$chain->rew
6ae20 69 6e 64 28 29 3b 0a 77 68 69 6c 65 20 28 24 63 68 61 69 6e 2d 3e 76 61 6c 69 64 28 29 29 20 7b ind();.while.($chain->valid()).{
6ae40 0a 24 6e 6f 64 65 20 3d 20 24 63 68 61 69 6e 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 24 6f 74 68 .$node.=.$chain->current();.$oth
6ae60 65 72 57 61 74 63 68 20 3d 20 24 6e 6f 64 65 2d 3e 67 65 74 4f 74 68 65 72 57 61 74 63 68 28 24 erWatch.=.$node->getOtherWatch($
6ae80 6c 69 74 65 72 61 6c 29 3b 0a 0a 69 66 20 28 21 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 literal);..if.(!$node->getRule()
6aea0 2d 3e 69 73 44 69 73 61 62 6c 65 64 28 29 20 26 26 20 21 24 64 65 63 69 73 69 6f 6e 73 2d 3e 73 ->isDisabled().&&.!$decisions->s
6aec0 61 74 69 73 66 79 28 24 6f 74 68 65 72 57 61 74 63 68 29 29 20 7b 0a 24 72 75 6c 65 4c 69 74 65 atisfy($otherWatch)).{.$ruleLite
6aee0 72 61 6c 73 20 3d 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 2d 3e 67 65 74 4c 69 74 65 rals.=.$node->getRule()->getLite
6af00 72 61 6c 73 28 29 3b 0a 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 20 3d 20 rals();..$alternativeLiterals.=.
6af20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 73 2c 20 66 75 6e 63 array_filter($ruleLiterals,.func
6af40 74 69 6f 6e 20 28 24 72 75 6c 65 4c 69 74 65 72 61 6c 29 20 75 73 65 20 28 24 6c 69 74 65 72 61 tion.($ruleLiteral).use.($litera
6af60 6c 2c 20 24 6f 74 68 65 72 57 61 74 63 68 2c 20 24 64 65 63 69 73 69 6f 6e 73 29 20 7b 0a 72 65 l,.$otherWatch,.$decisions).{.re
6af80 74 75 72 6e 20 24 6c 69 74 65 72 61 6c 20 21 3d 3d 20 24 72 75 6c 65 4c 69 74 65 72 61 6c 20 26 turn.$literal.!==.$ruleLiteral.&
6afa0 26 0a 24 6f 74 68 65 72 57 61 74 63 68 20 21 3d 3d 20 24 72 75 6c 65 4c 69 74 65 72 61 6c 20 26 &.$otherWatch.!==.$ruleLiteral.&
6afc0 26 0a 21 24 64 65 63 69 73 69 6f 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 28 24 72 75 6c 65 4c 69 74 &.!$decisions->conflict($ruleLit
6afe0 65 72 61 6c 29 3b 0a 7d 29 3b 0a 0a 69 66 20 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 eral);.});..if.($alternativeLite
6b000 72 61 6c 73 29 20 7b 0a 72 65 73 65 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 rals).{.reset($alternativeLitera
6b020 6c 73 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 57 61 74 63 68 28 24 6c 69 74 65 72 61 6c 2c 20 ls);.$this->moveWatch($literal,.
6b040 63 75 72 72 65 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 4c 69 74 65 72 61 6c 73 29 2c 20 24 current($alternativeLiterals),.$
6b060 6e 6f 64 65 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 63 69 73 69 6f node);.continue;.}..if.($decisio
6b080 6e 73 2d 3e 63 6f 6e 66 6c 69 63 74 28 24 6f 74 68 65 72 57 61 74 63 68 29 29 20 7b 0a 72 65 74 ns->conflict($otherWatch)).{.ret
6b0a0 75 72 6e 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 3b 0a 7d 0a 0a 24 64 65 63 69 73 69 urn.$node->getRule();.}..$decisi
6b0c0 6f 6e 73 2d 3e 64 65 63 69 64 65 28 24 6f 74 68 65 72 57 61 74 63 68 2c 20 24 6c 65 76 65 6c 2c ons->decide($otherWatch,.$level,
6b0e0 20 24 6e 6f 64 65 2d 3e 67 65 74 52 75 6c 65 28 29 29 3b 0a 7d 0a 0a 24 63 68 61 69 6e 2d 3e 6e .$node->getRule());.}..$chain->n
6b100 65 78 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ext();.}..return.null;.}........
6b120 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 57 61 74 63 68 28 ...protected.function.moveWatch(
6b140 24 66 72 6f 6d 4c 69 74 65 72 61 6c 2c 20 24 74 6f 4c 69 74 65 72 61 6c 2c 20 24 6e 6f 64 65 29 $fromLiteral,.$toLiteral,.$node)
6b160 0a 7b 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 6e 73 .{.if.(!isset($this->watchChains
6b180 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 61 74 63 68 43 68 61 [$toLiteral])).{.$this->watchCha
6b1a0 69 6e 73 5b 24 74 6f 4c 69 74 65 72 61 6c 5d 20 3d 20 6e 65 77 20 52 75 6c 65 57 61 74 63 68 43 ins[$toLiteral].=.new.RuleWatchC
6b1c0 68 61 69 6e 3b 0a 7d 0a 0a 24 6e 6f 64 65 2d 3e 6d 6f 76 65 57 61 74 63 68 28 24 66 72 6f 6d 4c hain;.}..$node->moveWatch($fromL
6b1e0 69 74 65 72 61 6c 2c 20 24 74 6f 4c 69 74 65 72 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 77 61 74 63 iteral,.$toLiteral);.$this->watc
6b200 68 43 68 61 69 6e 73 5b 24 66 72 6f 6d 4c 69 74 65 72 61 6c 5d 2d 3e 72 65 6d 6f 76 65 28 29 3b hChains[$fromLiteral]->remove();
6b220 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 61 6c 5d 2d .$this->watchChains[$toLiteral]-
6b240 3e 75 6e 73 68 69 66 74 28 24 6e 6f 64 65 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a >unshift($node);.}.}.<?php......
6b260 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 6e 66 69 67 3b ......namespace.Composer\Config;
6b280 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e ........interface.ConfigSourceIn
6b2a0 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 terface.{.......public.function.
6b2c0 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 0a addRepository($name,.$config);..
6b2e0 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 52 65 70 6f 73 .....public.function.removeRepos
6b300 69 74 6f 72 79 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 itory($name);........public.func
6b320 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 2c 20 24 76 61 tion.addConfigSetting($name,.$va
6b340 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f lue);.......public.function.remo
6b360 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a veConfigSetting($name);.........
6b380 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 65 2c 20 24 public.function.addLink($type,.$
6b3a0 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e name,.$value);........public.fun
6b3c0 63 74 69 6f 6e 20 72 65 6d 6f 76 65 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 29 3b 0a ction.removeLink($type,.$name);.
6b3e0 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
6b400 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e poser\Config;..use.Composer\Json
6b420 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f \JsonFile;.use.Composer\Json\Jso
6b440 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 43 nManipulator;........class.JsonC
6b460 6f 6e 66 69 67 53 6f 75 72 63 65 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 66 69 67 53 6f 75 onfigSource.implements.ConfigSou
6b480 72 63 65 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 70 72 rceInterface.{.private.$file;.pr
6b4a0 69 76 61 74 65 20 24 6d 61 6e 69 70 75 6c 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ivate.$manipulator;.......public
6b4c0 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 4a 73 6f 6e 46 69 6c 65 20 24 .function.__construct(JsonFile.$
6b4e0 66 69 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 20 3d 20 24 66 69 6c 65 3b 0a 7d 0a 0a file).{.$this->file.=.$file;.}..
6b500 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 ...public.function.addRepository
6b520 28 24 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 ($name,.$config).{.$this->manipu
6b540 6c 61 74 65 4a 73 6f 6e 28 27 61 64 64 52 65 70 6f 73 69 74 6f 72 79 27 2c 20 24 6e 61 6d 65 2c lateJson('addRepository',.$name,
6b560 20 24 63 6f 6e 66 69 67 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 72 .$config,.function.(&$config,.$r
6b580 65 70 6f 2c 20 24 72 65 70 6f 43 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 27 72 65 70 epo,.$repoConfig).{.$config['rep
6b5a0 6f 73 69 74 6f 72 69 65 73 27 5d 5b 24 72 65 70 6f 5d 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 ositories'][$repo].=.$repoConfig
6b5c0 3b 0a 7d 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 ;.});.}.....public.function.remo
6b5e0 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e veRepository($name).{.$this->man
6b600 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 27 2c 20 ipulateJson('removeRepository',.
6b620 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 72 65 70 6f $name,.function.(&$config,.$repo
6b640 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 ).{.unset($config['repositories'
6b660 5d 5b 24 72 65 70 6f 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ][$repo]);.});.}.....public.func
6b680 74 69 6f 6e 20 61 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 2c 20 24 76 61 tion.addConfigSetting($name,.$va
6b6a0 6c 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 61 64 lue).{.$this->manipulateJson('ad
6b6c0 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 27 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 2c 20 dConfigSetting',.$name,.$value,.
6b6e0 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 6b 65 79 2c 20 24 76 61 6c 29 20 function.(&$config,.$key,.$val).
6b700 7b 0a 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 20 3d 20 24 76 61 6c {.$config['config'][$key].=.$val
6b720 3b 0a 7d 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 ;.});.}.....public.function.remo
6b740 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e veConfigSetting($name).{.$this->
6b760 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 manipulateJson('removeConfigSett
6b780 69 6e 67 27 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c ing',.$name,.function.(&$config,
6b7a0 20 24 6b 65 79 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 67 5b 27 63 6f 6e 66 69 67 27 5d .$key).{.unset($config['config']
6b7c0 5b 24 6b 65 79 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 [$key]);.});.}.....public.functi
6b7e0 6f 6e 20 61 64 64 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 on.addLink($type,.$name,.$value)
6b800 0a 7b 0a 24 74 68 69 73 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 61 64 64 4c 69 6e .{.$this->manipulateJson('addLin
6b820 6b 27 2c 20 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 2c 20 66 75 6e 63 74 69 k',.$type,.$name,.$value,.functi
6b840 6f 6e 20 28 26 24 63 6f 6e 66 69 67 2c 20 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c on.(&$config,.$type,.$name,.$val
6b860 75 65 29 20 7b 0a 24 63 6f 6e 66 69 67 5b 24 74 79 70 65 5d 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 ue).{.$config[$type][$name].=.$v
6b880 61 6c 75 65 3b 0a 7d 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 alue;.});.}.....public.function.
6b8a0 72 65 6d 6f 76 65 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 removeLink($type,.$name).{.$this
6b8c0 2d 3e 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 27 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 27 ->manipulateJson('removeSubNode'
6b8e0 2c 20 24 74 79 70 65 2c 20 24 6e 61 6d 65 2c 20 66 75 6e 63 74 69 6f 6e 20 28 26 24 63 6f 6e 66 ,.$type,.$name,.function.(&$conf
6b900 69 67 2c 20 24 74 79 70 65 2c 20 24 6e 61 6d 65 29 20 7b 0a 75 6e 73 65 74 28 24 63 6f 6e 66 69 ig,.$type,.$name).{.unset($confi
6b920 67 5b 24 74 79 70 65 5d 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 g[$type][$name]);.});.}..protect
6b940 65 64 20 66 75 6e 63 74 69 6f 6e 20 6d 61 6e 69 70 75 6c 61 74 65 4a 73 6f 6e 28 24 6d 65 74 68 ed.function.manipulateJson($meth
6b960 6f 64 2c 20 24 61 72 67 73 2c 20 24 66 61 6c 6c 62 61 63 6b 29 0a 7b 0a 24 61 72 67 73 20 3d 20 od,.$args,.$fallback).{.$args.=.
6b980 66 75 6e 63 5f 67 65 74 5f 61 72 67 73 28 29 3b 0a 0a 20 61 72 72 61 79 5f 73 68 69 66 74 28 24 func_get_args();...array_shift($
6b9a0 61 72 67 73 29 3b 0a 24 66 61 6c 6c 62 61 63 6b 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 61 72 args);.$fallback.=.array_pop($ar
6b9c0 67 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 gs);..if.($this->file->exists())
6b9e0 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
6ba00 28 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 29 3b 0a 7d 20 65 6c 73 65 ($this->file->getPath());.}.else
6ba20 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 22 7b 5c 6e 20 20 20 20 5c 22 63 6f 6e 66 69 67 5c .{.$contents.=."{\n....\"config\
6ba40 22 3a 20 7b 5c 6e 20 20 20 20 7d 5c 6e 7d 5c 6e 22 3b 0a 7d 0a 24 6d 61 6e 69 70 75 6c 61 74 6f ":.{\n....}\n}\n";.}.$manipulato
6ba60 72 20 3d 20 6e 65 77 20 4a 73 6f 6e 4d 61 6e 69 70 75 6c 61 74 6f 72 28 24 63 6f 6e 74 65 6e 74 r.=.new.JsonManipulator($content
6ba80 73 29 3b 0a 0a 24 6e 65 77 46 69 6c 65 20 3d 20 21 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 65 78 s);..$newFile.=.!$this->file->ex
6baa0 69 73 74 73 28 29 3b 0a 0a 0a 20 69 66 20 28 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 ists();....if.(call_user_func_ar
6bac0 72 61 79 28 61 72 72 61 79 28 24 6d 61 6e 69 70 75 6c 61 74 6f 72 2c 20 24 6d 65 74 68 6f 64 29 ray(array($manipulator,.$method)
6bae0 2c 20 24 61 72 67 73 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 ,.$args)).{.file_put_contents($t
6bb00 68 69 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 24 6d 61 6e 69 70 75 6c 61 74 his->file->getPath(),.$manipulat
6bb20 6f 72 2d 3e 67 65 74 43 6f 6e 74 65 6e 74 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 or->getContents());.}.else.{...$
6bb40 63 6f 6e 66 69 67 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 61 72 config.=.$this->file->read();.ar
6bb60 72 61 79 5f 75 6e 73 68 69 66 74 28 24 61 72 67 73 2c 20 24 63 6f 6e 66 69 67 29 3b 0a 63 61 6c ray_unshift($args,.$config);.cal
6bb80 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 28 24 66 61 6c 6c 62 61 63 6b 2c 20 24 61 72 l_user_func_array($fallback,.$ar
6bba0 67 73 29 3b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 2d 3e 77 72 69 74 65 28 24 63 6f 6e 66 69 67 29 gs);.$this->file->write($config)
6bbc0 3b 0a 7d 0a 0a 69 66 20 28 24 6e 65 77 46 69 6c 65 29 20 7b 0a 40 63 68 6d 6f 64 28 24 74 68 69 ;.}..if.($newFile).{.@chmod($thi
6bbe0 73 2d 3e 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 28 29 2c 20 30 36 30 30 29 3b 0a 7d 0a 7d 0a 7d s->file->getPath(),.0600);.}.}.}
6bc00 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
6bc20 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 75 67 69 6e 45 oser\Plugin;.......class.PluginE
6bc40 76 65 6e 74 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 43 4f 4d 4d 41 4e 44 20 3d 20 vents.{.........const.COMMAND.=.
6bc60 27 63 6f 6d 6d 61 6e 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 46 49 'command';..........const.PRE_FI
6bc80 4c 45 5f 44 4f 57 4e 4c 4f 41 44 20 3d 20 27 70 72 65 2d 66 69 6c 65 2d 64 6f 77 6e 6c 6f 61 64 LE_DOWNLOAD.=.'pre-file-download
6bca0 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 65 20 ';.}.<?php............namespace.
6bcc0 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 Composer\Plugin;..use.Composer\E
6bce0 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e ventDispatcher\Event;.use.Symfon
6bd00 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 49 y\Component\Console\Input\InputI
6bd20 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 5c nterface;.use.Symfony\Component\
6bd40 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 0a Console\Output\OutputInterface;.
6bd60 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 65 78 74 65 6e 64 73 ......class.CommandEvent.extends
6bd80 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 .Event.{....private.$commandName
6bda0 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 ;.....private.$input;.....privat
6bdc0 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 e.$output;..........public.funct
6bde0 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 63 6f 6d 6d 61 6e 64 4e ion.__construct($name,.$commandN
6be00 61 6d 65 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a ame,.$input,.$output).{.parent::
6be20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 __construct($name);.$this->comma
6be40 6e 64 4e 61 6d 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 69 6e ndName.=.$commandName;.$this->in
6be60 70 75 74 20 3d 20 24 69 6e 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f put.=.$input;.$this->output.=.$o
6be80 75 74 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 utput;.}.......public.function.g
6bea0 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;
6bec0 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
6bee0 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 0a ut().{.return.$this->output;.}..
6bf00 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 6d 6d 61 6e 64 4e .....public.function.getCommandN
6bf20 61 6d 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 4e 61 6d ame().{.return.$this->commandNam
6bf40 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 63 e;.}.}.<?php............namespac
6bf60 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 e.Composer\Plugin;..use.Composer
6bf80 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 \EventDispatcher\Event;.use.Comp
6bfa0 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a oser\Util\RemoteFilesystem;.....
6bfc0 0a 0a 63 6c 61 73 73 20 50 72 65 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 45 76 65 6e 74 20 65 78 74 ..class.PreFileDownloadEvent.ext
6bfe0 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 66 73 3b 0a 0a 0a ends.Event.{....private.$rfs;...
6c000 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a ..private.$processedUrl;........
6c020 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
6c040 6d 65 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 72 66 73 2c 20 24 70 72 6f 63 me,.RemoteFilesystem.$rfs,.$proc
6c060 65 73 73 65 64 55 72 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 essedUrl).{.parent::__construct(
6c080 24 6e 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 3b 0a 24 74 68 69 73 $name);.$this->rfs.=.$rfs;.$this
6c0a0 2d 3e 70 72 6f 63 65 73 73 65 64 55 72 6c 20 3d 20 24 70 72 6f 63 65 73 73 65 64 55 72 6c 3b 0a ->processedUrl.=.$processedUrl;.
6c0c0 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 6d 6f 74 }.......public.function.getRemot
6c0e0 65 46 69 6c 65 73 79 73 74 65 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 66 eFilesystem().{.return.$this->rf
6c100 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 52 65 s;.}.......public.function.setRe
6c120 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 moteFilesystem(RemoteFilesystem.
6c140 24 72 66 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a $rfs).{.$this->rfs.=.$rfs;.}....
6c160 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 73 65 64 55 ...public.function.getProcessedU
6c180 72 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 65 64 55 72 rl().{.return.$this->processedUr
6c1a0 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 61 63 l;.}.}.<?php............namespac
6c1c0 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 e.Composer\Plugin;..use.Composer
6c1e0 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 \Composer;.use.Composer\IO\IOInt
6c200 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 50 6c 75 67 69 6e 49 6e erface;.......interface.PluginIn
6c220 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4c 55 47 49 4e 5f 41 50 49 5f terface.{......const.PLUGIN_API_
6c240 56 45 52 53 49 4f 4e 20 3d 20 27 31 2e 30 2e 30 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 VERSION.=.'1.0.0';........public
6c260 20 66 75 6e 63 74 69 6f 6e 20 61 63 74 69 76 61 74 65 28 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d .function.activate(Composer.$com
6c280 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 29 3b 0a 7d 0a 3c 3f 70 68 70 poser,.IOInterface.$io);.}.<?php
6c2a0 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
6c2c0 6c 75 67 69 6e 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 lugin;..use.Composer\Composer;.u
6c2e0 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e se.Composer\EventDispatcher\Even
6c300 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 tSubscriberInterface;.use.Compos
6c320 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 5c er\IO\IOInterface;.use.Composer\
6c340 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 Package\Package;.use.Composer\Pa
6c360 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
6c380 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
6c3a0 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 nterface;.use.Composer\Package\A
6c3c0 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 liasPackage;.use.Composer\Packag
6c3e0 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 e\PackageInterface;.use.Composer
6c400 5c 50 61 63 6b 61 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b \Package\Link;.use.Composer\Pack
6c420 61 67 65 5c 4c 69 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 age\LinkConstraint\VersionConstr
6c440 61 69 6e 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 aint;.use.Composer\DependencyRes
6c460 6f 6c 76 65 72 5c 50 6f 6f 6c 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 75 67 69 6e 4d 61 olver\Pool;.......class.PluginMa
6c480 6e 61 67 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 nager.{.protected.$composer;.pro
6c4a0 74 65 63 74 65 64 20 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 67 6c 6f 62 61 6c 52 65 70 tected.$io;.protected.$globalRep
6c4c0 6f 73 69 74 6f 72 79 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 73 69 6f 6e 50 61 72 73 65 ository;.protected.$versionParse
6c4e0 72 3b 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 70 6c 75 67 69 6e 73 20 3d 20 61 72 72 61 79 28 29 r;..protected.$plugins.=.array()
6c500 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 20 ;..private.static.$classCounter.
6c520 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 =.0;.........public.function.__c
6c540 6f 6e 73 74 72 75 63 74 28 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 49 4f 49 onstruct(Composer.$composer,.IOI
6c560 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 nterface.$io,.RepositoryInterfac
6c580 65 20 24 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 e.$globalRepository.=.null).{.$t
6c5a0 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 his->composer.=.$composer;.$this
6c5c0 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 ->io.=.$io;.$this->globalReposit
6c5e0 6f 72 79 20 3d 20 24 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 3b 0a 24 74 68 69 73 2d 3e ory.=.$globalRepository;.$this->
6c600 76 65 72 73 69 6f 6e 50 61 72 73 65 72 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 versionParser.=.new.VersionParse
6c620 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 49 r();.}.....public.function.loadI
6c640 6e 73 74 61 6c 6c 65 64 50 6c 75 67 69 6e 73 28 29 0a 7b 0a 24 72 65 70 6f 20 3d 20 24 74 68 69 nstalledPlugins().{.$repo.=.$thi
6c660 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 4d 61 6e 61 67 65 s->composer->getRepositoryManage
6c680 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 3b 0a 0a 69 66 20 28 r()->getLocalRepository();..if.(
6c6a0 24 72 65 70 6f 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 24 $repo).{.$this->loadRepository($
6c6c0 72 65 70 6f 29 3b 0a 7d 0a 69 66 20 28 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 52 65 70 6f 73 69 repo);.}.if.($this->globalReposi
6c6e0 74 6f 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 24 74 tory).{.$this->loadRepository($t
6c700 68 69 73 2d 3e 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a his->globalRepository);.}.}.....
6c720 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 6c 75 67 69 6e 28 50 6c 75 67 ..public.function.addPlugin(Plug
6c740 69 6e 49 6e 74 65 72 66 61 63 65 20 24 70 6c 75 67 69 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 6c inInterface.$plugin).{.$this->pl
6c760 75 67 69 6e 73 5b 5d 20 3d 20 24 70 6c 75 67 69 6e 3b 0a 24 70 6c 75 67 69 6e 2d 3e 61 63 74 69 ugins[].=.$plugin;.$plugin->acti
6c780 76 61 74 65 28 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 29 vate($this->composer,.$this->io)
6c7a0 3b 0a 0a 69 66 20 28 24 70 6c 75 67 69 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 45 76 65 6e 74 53 ;..if.($plugin.instanceof.EventS
6c7c0 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d ubscriberInterface).{.$this->com
6c7e0 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2d 3e 61 64 64 poser->getEventDispatcher()->add
6c800 53 75 62 73 63 72 69 62 65 72 28 24 70 6c 75 67 69 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 Subscriber($plugin);.}.}.......p
6c820 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6c 75 67 69 6e 73 28 29 0a 7b 0a 72 65 ublic.function.getPlugins().{.re
6c840 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 6c 75 67 69 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a turn.$this->plugins;.}..........
6c860 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 52 65 70 6f 73 69 74 6f 72 79 28 .public.function.loadRepository(
6c880 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 29 0a 7b 0a 66 6f 72 RepositoryInterface.$repo).{.for
6c8a0 65 61 63 68 20 28 24 72 65 70 6f 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 each.($repo->getPackages().as.$p
6c8c0 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f ackage).{.if.($package.instanceo
6c8e0 66 20 41 6c 69 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 69 66 f.AliasPackage).{.continue;.}.if
6c900 20 28 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 27 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 .('composer-plugin'.===.$package
6c920 2d 3e 67 65 74 54 79 70 65 28 29 29 20 7b 0a 24 72 65 71 75 69 72 65 73 43 6f 6d 70 6f 73 65 72 ->getType()).{.$requiresComposer
6c940 20 3d 20 6e 75 6c 6c 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 .=.null;.foreach.($package->getR
6c960 65 71 75 69 72 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 equires().as.$link).{.if.($link-
6c980 3e 67 65 74 54 61 72 67 65 74 28 29 20 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e >getTarget().==.'composer-plugin
6c9a0 2d 61 70 69 27 29 20 7b 0a 24 72 65 71 75 69 72 65 73 43 6f 6d 70 6f 73 65 72 20 3d 20 24 6c 69 -api').{.$requiresComposer.=.$li
6c9c0 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 nk->getConstraint();.}.}..if.(!$
6c9e0 72 65 71 75 69 72 65 73 43 6f 6d 70 6f 73 65 72 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 requiresComposer).{.throw.new.\R
6ca00 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 22 50 6c 75 67 69 6e 20 22 2e 24 70 61 63 6b 61 untimeException("Plugin.".$packa
6ca20 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 20 69 73 20 6d 69 73 73 69 6e 67 20 61 20 72 65 71 ge->getName().".is.missing.a.req
6ca40 75 69 72 65 20 73 74 61 74 65 6d 65 6e 74 20 66 6f 72 20 61 20 76 65 72 73 69 6f 6e 20 6f 66 20 uire.statement.for.a.version.of.
6ca60 74 68 65 20 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 2d 61 70 69 20 70 61 63 6b 61 67 65 2e the.composer-plugin-api.package.
6ca80 22 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 72 65 71 75 69 72 65 73 43 6f 6d 70 6f 73 65 72 2d 3e 6d ");.}..if.(!$requiresComposer->m
6caa0 61 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 atches(new.VersionConstraint('==
6cac0 27 2c 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
6cae0 7a 65 28 50 6c 75 67 69 6e 49 6e 74 65 72 66 61 63 65 3a 3a 50 4c 55 47 49 4e 5f 41 50 49 5f 56 ze(PluginInterface::PLUGIN_API_V
6cb00 45 52 53 49 4f 4e 29 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 22 3c ERSION)))).{.$this->io->write("<
6cb20 77 61 72 6e 69 6e 67 3e 54 68 65 20 70 6c 75 67 69 6e 20 22 2e 24 70 61 63 6b 61 67 65 2d 3e 67 warning>The.plugin.".$package->g
6cb40 65 74 4e 61 6d 65 28 29 2e 22 20 72 65 71 75 69 72 65 73 20 61 20 76 65 72 73 69 6f 6e 20 6f 66 etName().".requires.a.version.of
6cb60 20 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 2d 61 70 69 20 74 68 61 74 20 64 6f 65 73 20 6e .composer-plugin-api.that.does.n
6cb80 6f 74 20 6d 61 74 63 68 20 79 6f 75 72 20 63 6f 6d 70 6f 73 65 72 20 69 6e 73 74 61 6c 6c 61 74 ot.match.your.composer.installat
6cba0 69 6f 6e 2e 20 59 6f 75 20 6d 61 79 20 6e 65 65 64 20 74 6f 20 72 75 6e 20 63 6f 6d 70 6f 73 65 ion..You.may.need.to.run.compose
6cbc0 72 20 75 70 64 61 74 65 20 77 69 74 68 20 74 68 65 20 27 2d 2d 6e 6f 2d 70 6c 75 67 69 6e 73 27 r.update.with.the.'--no-plugins'
6cbe0 20 6f 70 74 69 6f 6e 2e 3c 2f 77 61 72 6e 69 6e 67 3e 22 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e .option.</warning>");.}..$this->
6cc00 72 65 67 69 73 74 65 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 20 69 registerPackage($package);.}...i
6cc20 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 24 70 61 63 f.('composer-installer'.===.$pac
6cc40 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 67 69 73 74 kage->getType()).{.$this->regist
6cc60 65 72 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a erPackage($package);.}.}.}......
6cc80 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 6f 6c 6c 65 63 74 44 .....protected.function.collectD
6cca0 65 70 65 6e 64 65 6e 63 69 65 73 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 61 72 72 61 79 20 24 63 ependencies(Pool.$pool,.array.$c
6ccc0 6f 6c 6c 65 63 74 65 64 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b ollected,.PackageInterface.$pack
6cce0 61 67 65 29 0a 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a age).{.$requires.=.array_merge(.
6cd00 24 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 70 61 63 6b 61 67 $package->getRequires(),.$packag
6cd20 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 e->getDevRequires().);..foreach.
6cd40 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 4c 69 6e 6b 29 20 7b 0a 24 72 ($requires.as.$requireLink).{.$r
6cd60 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 6f 6b 75 70 49 6e equiredPackage.=.$this->lookupIn
6cd80 73 74 61 6c 6c 65 64 50 61 63 6b 61 67 65 28 24 70 6f 6f 6c 2c 20 24 72 65 71 75 69 72 65 4c 69 stalledPackage($pool,.$requireLi
6cda0 6e 6b 29 3b 0a 69 66 20 28 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 20 26 26 20 21 69 73 nk);.if.($requiredPackage.&&.!is
6cdc0 73 65 74 28 24 63 6f 6c 6c 65 63 74 65 64 5b 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 2d set($collected[$requiredPackage-
6cde0 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 63 6f 6c 6c 65 63 74 65 64 5b 24 72 65 71 75 >getName()])).{.$collected[$requ
6ce00 69 72 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 72 65 71 75 69 iredPackage->getName()].=.$requi
6ce20 72 65 64 50 61 63 6b 61 67 65 3b 0a 24 63 6f 6c 6c 65 63 74 65 64 20 3d 20 24 74 68 69 73 2d 3e redPackage;.$collected.=.$this->
6ce40 63 6f 6c 6c 65 63 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 70 6f 6f 6c 2c 20 24 63 6f 6c 6c collectDependencies($pool,.$coll
6ce60 65 63 74 65 64 2c 20 24 72 65 71 75 69 72 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 72 ected,.$requiredPackage);.}.}..r
6ce80 65 74 75 72 6e 20 24 63 6f 6c 6c 65 63 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 eturn.$collected;.}............p
6cea0 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 6f 6b 75 70 49 6e 73 74 61 6c 6c 65 rotected.function.lookupInstalle
6cec0 64 50 61 63 6b 61 67 65 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 4c 69 6e 6b 20 24 6c 69 6e 6b 29 dPackage(Pool.$pool,.Link.$link)
6cee0 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 .{.$packages.=.$pool->whatProvid
6cf00 65 73 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 es($link->getTarget(),.$link->ge
6cf20 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 28 21 65 6d 70 74 79 28 tConstraint());..return.(!empty(
6cf40 24 70 61 63 6b 61 67 65 73 29 29 20 3f 20 24 70 61 63 6b 61 67 65 73 5b 30 5d 20 3a 20 6e 75 6c $packages)).?.$packages[0].:.nul
6cf60 6c 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 72 65 l;.}..........public.function.re
6cf80 67 69 73 74 65 72 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 gisterPackage(PackageInterface.$
6cfa0 70 61 63 6b 61 67 65 29 0a 7b 0a 24 6f 6c 64 49 6e 73 74 61 6c 6c 65 72 50 6c 75 67 69 6e 20 3d package).{.$oldInstallerPlugin.=
6cfc0 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3d 3d 3d 20 27 63 6f 6d 70 6f .($package->getType().===.'compo
6cfe0 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 29 3b 0a 0a 24 65 78 74 72 61 20 3d 20 24 70 61 63 6b ser-installer');..$extra.=.$pack
6d000 61 67 65 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 74 72 age->getExtra();.if.(empty($extr
6d020 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 70 65 a['class'])).{.throw.new.\Unexpe
6d040 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 65 20 ctedValueException('Error.while.
6d060 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 installing.'.$package->getPretty
6d080 4e 61 6d 65 28 29 2e 27 2c 20 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 20 70 61 63 6b 61 67 Name().',.composer-plugin.packag
6d0a0 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 65 64 20 69 es.should.have.a.class.defined.i
6d0c0 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 6c 65 2e 27 n.their.extra.key.to.be.usable.'
6d0e0 29 3b 0a 7d 0a 24 63 6c 61 73 73 65 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 65 78 74 72 61 5b );.}.$classes.=.is_array($extra[
6d100 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 5d 20 3a 20 61 72 'class']).?.$extra['class'].:.ar
6d120 72 61 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 3b 0a 0a 24 70 6f 6f 6c 20 3d 20 6e ray($extra['class']);..$pool.=.n
6d140 65 77 20 50 6f 6f 6c 28 27 64 65 76 27 29 3b 0a 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 74 68 ew.Pool('dev');.$localRepo.=.$th
6d160 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 4d 61 6e 61 67 is->composer->getRepositoryManag
6d180 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 3b 0a 24 70 6f 6f er()->getLocalRepository();.$poo
6d1a0 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 3b 0a 69 66 l->addRepository($localRepo);.if
6d1c0 20 28 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 70 6f .($this->globalRepository).{.$po
6d1e0 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 52 ol->addRepository($this->globalR
6d200 65 70 6f 73 69 74 6f 72 79 29 3b 0a 7d 0a 0a 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 73 epository);.}..$autoloadPackages
6d220 20 3d 20 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 20 3d 3e 20 .=.array($package->getName().=>.
6d240 24 70 61 63 6b 61 67 65 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 73 20 3d 20 24 $package);.$autoloadPackages.=.$
6d260 74 68 69 73 2d 3e 63 6f 6c 6c 65 63 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 70 6f 6f 6c 2c this->collectDependencies($pool,
6d280 20 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 73 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a .$autoloadPackages,.$package);..
6d2a0 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 $generator.=.$this->composer->ge
6d2c0 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 tAutoloadGenerator();.$autoloads
6d2e0 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 50 61 .=.array();.foreach.($autoloadPa
6d300 63 6b 61 67 65 73 20 61 73 20 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 29 20 7b 0a 24 64 ckages.as.$autoloadPackage).{.$d
6d320 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 ownloadPath.=.$this->getInstallP
6d340 61 74 68 28 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 2c 20 28 24 74 68 69 73 2d 3e 67 6c ath($autoloadPackage,.($this->gl
6d360 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 26 26 20 24 74 68 69 73 2d 3e 67 6c 6f 62 61 6c 52 obalRepository.&&.$this->globalR
6d380 65 70 6f 73 69 74 6f 72 79 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 61 75 74 6f 6c 6f 61 64 50 epository->hasPackage($autoloadP
6d3a0 61 63 6b 61 67 65 29 29 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 5d 20 3d 20 61 72 72 61 79 28 ackage)));.$autoloads[].=.array(
6d3c0 24 61 75 74 6f 6c 6f 61 64 50 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 $autoloadPackage,.$downloadPath)
6d3e0 3b 0a 7d 0a 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 ;.}..$map.=.$generator->parseAut
6d400 6f 6c 6f 61 64 73 28 24 61 75 74 6f 6c 6f 61 64 73 2c 20 6e 65 77 20 50 61 63 6b 61 67 65 28 27 oloads($autoloads,.new.Package('
6d420 64 75 6d 6d 79 27 2c 20 27 31 2e 30 2e 30 2e 30 27 2c 20 27 31 2e 30 2e 30 27 29 29 3b 0a 24 63 dummy',.'1.0.0.0',.'1.0.0'));.$c
6d440 6c 61 73 73 4c 6f 61 64 65 72 20 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c lassLoader.=.$generator->createL
6d460 6f 61 64 65 72 28 24 6d 61 70 29 3b 0a 24 63 6c 61 73 73 4c 6f 61 64 65 72 2d 3e 72 65 67 69 73 oader($map);.$classLoader->regis
6d480 74 65 72 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6c 61 73 73 65 73 20 61 73 20 24 63 6c ter();..foreach.($classes.as.$cl
6d4a0 61 73 73 29 20 7b 0a 69 66 20 28 63 6c 61 73 73 5f 65 78 69 73 74 73 28 24 63 6c 61 73 73 2c 20 ass).{.if.(class_exists($class,.
6d4c0 66 61 6c 73 65 29 29 20 7b 0a 24 63 6f 64 65 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 false)).{.$code.=.file_get_conte
6d4e0 6e 74 73 28 24 63 6c 61 73 73 4c 6f 61 64 65 72 2d 3e 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 nts($classLoader->findFile($clas
6d500 73 29 29 3b 0a 24 63 6f 64 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 28 5c 73 s));.$code.=.preg_replace('{^(\s
6d520 2a 29 63 6c 61 73 73 5c 73 2b 28 5c 53 2b 29 7d 6d 69 27 2c 20 27 24 31 63 6c 61 73 73 20 24 32 *)class\s+(\S+)}mi',.'$1class.$2
6d540 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 73 43 6f 75 6e 74 _composer_tmp'.self::$classCount
6d560 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 65 29 3b 0a 24 63 er,.$code);.eval('?>'.$code);.$c
6d580 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 6c 66 3a 3a 24 63 lass..=.'_composer_tmp'.self::$c
6d5a0 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 6f 75 6e 74 65 72 lassCounter;.self::$classCounter
6d5c0 2b 2b 3b 0a 7d 0a 0a 69 66 20 28 24 6f 6c 64 49 6e 73 74 61 6c 6c 65 72 50 6c 75 67 69 6e 29 20 ++;.}..if.($oldInstallerPlugin).
6d5e0 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 24 74 68 69 73 2d {.$installer.=.new.$class($this-
6d600 3e 69 6f 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 3b 0a 24 74 68 69 73 2d 3e 63 6f >io,.$this->composer);.$this->co
6d620 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 72 28 29 mposer->getInstallationManager()
6d640 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 24 69 6e 73 74 61 6c 6c 65 72 29 3b 0a 7d 20 65 6c ->addInstaller($installer);.}.el
6d660 73 65 20 7b 0a 24 70 6c 75 67 69 6e 20 3d 20 6e 65 77 20 24 63 6c 61 73 73 28 29 3b 0a 24 74 68 se.{.$plugin.=.new.$class();.$th
6d680 69 73 2d 3e 61 64 64 50 6c 75 67 69 6e 28 24 70 6c 75 67 69 6e 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a is->addPlugin($plugin);.}.}.}...
6d6a0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c .......public.function.getInstal
6d6c0 6c 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 2c lPath(PackageInterface.$package,
6d6e0 20 24 67 6c 6f 62 61 6c 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 67 6c 6f 62 61 6c .$global.=.false).{.if.(!$global
6d700 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 ).{.return.$this->composer->getI
6d720 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 2d 3e 67 65 74 49 6e 73 74 61 6c 6c nstallationManager()->getInstall
6d740 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 Path($package);.}..$targetDir.=.
6d760 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 24 76 65 6e 64 6f $package->getTargetDir();.$vendo
6d780 72 44 69 72 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 rDir.=.$this->composer->getConfi
6d7a0 67 28 29 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 76 65 6e 64 6f 72 27 3b 0a 0a 72 65 74 g()->get('home').'/vendor';..ret
6d7c0 75 72 6e 20 28 24 76 65 6e 64 6f 72 44 69 72 20 3f 20 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 27 urn.($vendorDir.?.$vendorDir.'/'
6d7e0 20 3a 20 27 27 29 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 .:.'').$package->getPrettyName()
6d800 2e 28 24 74 61 72 67 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 20 3a 20 .($targetDir.?.'/'.$targetDir.:.
6d820 27 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 '');.}.}.<?php............namesp
6d840 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 43 6f 6e 66 ace.Composer;..use.Composer\Conf
6d860 69 67 5c 4a 73 6f 6e 43 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ig\JsonConfigSource;.use.Compose
6d880 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f r\Json\JsonFile;.use.Composer\IO
6d8a0 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 \IOInterface;.use.Composer\Packa
6d8c0 67 65 5c 41 72 63 68 69 76 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 ge\Archiver;.use.Composer\Reposi
6d8e0 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 tory\RepositoryManager;.use.Comp
6d900 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 oser\Repository\RepositoryInterf
6d920 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 73 45 78 ace;.use.Composer\Util\ProcessEx
6d940 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 52 65 6d 6f 74 65 ecutor;.use.Composer\Util\Remote
6d960 46 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e Filesystem;.use.Symfony\Componen
6d980 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
6d9a0 74 65 72 53 74 79 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 terStyle;.use.Composer\EventDisp
6d9c0 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 atcher\EventDispatcher;.use.Comp
6d9e0 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b oser\Autoload\AutoloadGenerator;
6da00 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
6da20 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 61 63 74 rsionParser;..........class.Fact
6da40 6f 72 79 0a 7b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e ory.{.....public.static.function
6da60 20 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 0a 7b 0a 0a 20 24 68 6f 6d 65 20 3d 20 67 65 74 65 .createConfig().{...$home.=.gete
6da80 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 27 29 3b 0a 24 63 61 63 68 65 44 69 72 20 3d nv('COMPOSER_HOME');.$cacheDir.=
6daa0 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 43 41 43 48 45 5f 44 49 52 27 29 3b 0a 69 .getenv('COMPOSER_CACHE_DIR');.i
6dac0 66 20 28 21 24 68 6f 6d 65 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 f.(!$home).{.if.(defined('PHP_WI
6dae0 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 69 66 20 28 21 67 65 NDOWS_VERSION_MAJOR')).{.if.(!ge
6db00 74 65 6e 76 28 27 41 50 50 44 41 54 41 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 tenv('APPDATA')).{.throw.new.\Ru
6db20 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 41 50 50 44 41 54 41 20 6f 72 20 43 ntimeException('The.APPDATA.or.C
6db40 4f 4d 50 4f 53 45 52 5f 48 4f 4d 45 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c OMPOSER_HOME.environment.variabl
6db60 65 20 6d 75 73 74 20 62 65 20 73 65 74 20 66 6f 72 20 63 6f 6d 70 6f 73 65 72 20 74 6f 20 72 75 e.must.be.set.for.composer.to.ru
6db80 6e 20 63 6f 72 72 65 63 74 6c 79 27 29 3b 0a 7d 0a 24 68 6f 6d 65 20 3d 20 73 74 72 74 72 28 67 n.correctly');.}.$home.=.strtr(g
6dba0 65 74 65 6e 76 28 27 41 50 50 44 41 54 41 27 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 20 2e 20 27 etenv('APPDATA'),.'\\',.'/')...'
6dbc0 2f 43 6f 6d 70 6f 73 65 72 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 67 65 74 65 6e 76 /Composer';.}.else.{.if.(!getenv
6dbe0 28 27 48 4f 4d 45 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 ('HOME')).{.throw.new.\RuntimeEx
6dc00 63 65 70 74 69 6f 6e 28 27 54 68 65 20 48 4f 4d 45 20 6f 72 20 43 4f 4d 50 4f 53 45 52 5f 48 4f ception('The.HOME.or.COMPOSER_HO
6dc20 4d 45 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 76 61 72 69 61 62 6c 65 20 6d 75 73 74 20 62 65 20 ME.environment.variable.must.be.
6dc40 73 65 74 20 66 6f 72 20 63 6f 6d 70 6f 73 65 72 20 74 6f 20 72 75 6e 20 63 6f 72 72 65 63 74 6c set.for.composer.to.run.correctl
6dc60 79 27 29 3b 0a 7d 0a 24 68 6f 6d 65 20 3d 20 72 74 72 69 6d 28 67 65 74 65 6e 76 28 27 48 4f 4d y');.}.$home.=.rtrim(getenv('HOM
6dc80 45 27 29 2c 20 27 2f 27 29 20 2e 20 27 2f 2e 63 6f 6d 70 6f 73 65 72 27 3b 0a 7d 0a 7d 0a 69 66 E'),.'/')...'/.composer';.}.}.if
6dca0 20 28 21 24 63 61 63 68 65 44 69 72 29 20 7b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 .(!$cacheDir).{.if.(defined('PHP
6dcc0 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 69 66 20 28 _WINDOWS_VERSION_MAJOR')).{.if.(
6dce0 24 63 61 63 68 65 44 69 72 20 3d 20 67 65 74 65 6e 76 28 27 4c 4f 43 41 4c 41 50 50 44 41 54 41 $cacheDir.=.getenv('LOCALAPPDATA
6dd00 27 29 29 20 7b 0a 24 63 61 63 68 65 44 69 72 20 2e 3d 20 27 2f 43 6f 6d 70 6f 73 65 72 27 3b 0a ')).{.$cacheDir..=.'/Composer';.
6dd20 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 68 65 44 69 72 20 3d 20 24 68 6f 6d 65 20 2e 20 27 2f 63 }.else.{.$cacheDir.=.$home...'/c
6dd40 61 63 68 65 27 3b 0a 7d 0a 24 63 61 63 68 65 44 69 72 20 3d 20 73 74 72 74 72 28 24 63 61 63 68 ache';.}.$cacheDir.=.strtr($cach
6dd60 65 44 69 72 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 63 68 eDir,.'\\',.'/');.}.else.{.$cach
6dd80 65 44 69 72 20 3d 20 24 68 6f 6d 65 2e 27 2f 63 61 63 68 65 27 3b 0a 7d 0a 7d 0a 0a 0a 20 0a 20 eDir.=.$home.'/cache';.}.}......
6dda0 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 24 68 6f 6d 65 2c 20 24 63 61 63 68 65 44 69 ..foreach.(array($home,.$cacheDi
6ddc0 72 29 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 r).as.$dir).{.if.(!file_exists($
6dde0 64 69 72 20 2e 20 27 2f 2e 68 74 61 63 63 65 73 73 27 29 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 dir...'/.htaccess')).{.if.(!is_d
6de00 69 72 28 24 64 69 72 29 29 20 7b 0a 40 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 37 37 37 2c 20 74 ir($dir)).{.@mkdir($dir,.0777,.t
6de20 72 75 65 29 3b 0a 7d 0a 40 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 64 69 72 20 rue);.}.@file_put_contents($dir.
6de40 2e 20 27 2f 2e 68 74 61 63 63 65 73 73 27 2c 20 27 44 65 6e 79 20 66 72 6f 6d 20 61 6c 6c 27 29 ..'/.htaccess',.'Deny.from.all')
6de60 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6e 66 69 67 20 3d 20 6e 65 77 20 43 6f 6e 66 69 67 28 29 3b 0a 0a ;.}.}..$config.=.new.Config();..
6de80 0a 20 24 63 6f 6e 66 69 67 2d 3e 6d 65 72 67 65 28 61 72 72 61 79 28 27 63 6f 6e 66 69 67 27 20 ..$config->merge(array('config'.
6dea0 3d 3e 20 61 72 72 61 79 28 27 68 6f 6d 65 27 20 3d 3e 20 24 68 6f 6d 65 2c 20 27 63 61 63 68 65 =>.array('home'.=>.$home,.'cache
6dec0 2d 64 69 72 27 20 3d 3e 20 24 63 61 63 68 65 44 69 72 29 29 29 3b 0a 0a 24 66 69 6c 65 20 3d 20 -dir'.=>.$cacheDir)));..$file.=.
6dee0 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 68 6f 6d 65 2e 27 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e new.JsonFile($home.'/config.json
6df00 27 29 3b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 65 78 69 73 74 73 28 29 29 20 7b 0a 24 63 6f 6e 66 ');.if.($file->exists()).{.$conf
6df20 69 67 2d 3e 6d 65 72 67 65 28 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 29 3b 0a 7d 0a 24 63 6f 6e ig->merge($file->read());.}.$con
6df40 66 69 67 2d 3e 73 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 6e 65 77 20 4a 73 6f 6e 43 6f 6e fig->setConfigSource(new.JsonCon
6df60 66 69 67 53 6f 75 72 63 65 28 24 66 69 6c 65 29 29 3b 0a 0a 0a 20 24 6c 65 67 61 63 79 50 61 74 figSource($file));....$legacyPat
6df80 68 73 20 3d 20 61 72 72 61 79 28 0a 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 20 3d 3e 20 hs.=.array(.'cache-repo-dir'.=>.
6dfa0 61 72 72 61 79 28 27 2f 63 61 63 68 65 27 20 3d 3e 20 27 2f 68 74 74 70 2a 27 2c 20 27 2f 63 61 array('/cache'.=>.'/http*',.'/ca
6dfc0 63 68 65 2e 73 76 6e 27 20 3d 3e 20 27 2f 2a 27 2c 20 27 2f 63 61 63 68 65 2e 67 69 74 68 75 62 che.svn'.=>.'/*',.'/cache.github
6dfe0 27 20 3d 3e 20 27 2f 2a 27 29 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 20 3d 3e 20 61 '.=>.'/*'),.'cache-vcs-dir'.=>.a
6e000 72 72 61 79 28 27 2f 63 61 63 68 65 2e 67 69 74 27 20 3d 3e 20 27 2f 2a 27 2c 20 27 2f 63 61 63 rray('/cache.git'.=>.'/*',.'/cac
6e020 68 65 2e 68 67 27 20 3d 3e 20 27 2f 2a 27 29 2c 0a 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 he.hg'.=>.'/*'),.'cache-files-di
6e040 72 27 20 3d 3e 20 61 72 72 61 79 28 27 2f 63 61 63 68 65 2e 66 69 6c 65 73 27 20 3d 3e 20 27 2f r'.=>.array('/cache.files'.=>.'/
6e060 2a 27 29 2c 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 65 67 61 63 79 50 61 74 68 73 20 61 73 *'),.);.foreach.($legacyPaths.as
6e080 20 24 6b 65 79 20 3d 3e 20 24 6f 6c 64 50 61 74 68 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 .$key.=>.$oldPaths).{.foreach.($
6e0a0 6f 6c 64 50 61 74 68 73 20 61 73 20 24 6f 6c 64 50 61 74 68 20 3d 3e 20 24 6d 61 74 63 68 29 20 oldPaths.as.$oldPath.=>.$match).
6e0c0 7b 0a 24 64 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 24 6b 65 79 29 3b 0a 69 66 20 {.$dir.=.$config->get($key);.if.
6e0e0 28 27 2f 63 61 63 68 65 2e 67 69 74 68 75 62 27 20 3d 3d 3d 20 24 6f 6c 64 50 61 74 68 29 20 7b ('/cache.github'.===.$oldPath).{
6e100 0a 24 64 69 72 20 2e 3d 20 27 2f 67 69 74 68 75 62 2e 63 6f 6d 27 3b 0a 7d 0a 24 6f 6c 64 50 61 .$dir..=.'/github.com';.}.$oldPa
6e120 74 68 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 24 6f 6c 64 50 61 th.=.$config->get('home').$oldPa
6e140 74 68 3b 0a 24 6f 6c 64 50 61 74 68 4d 61 74 63 68 20 3d 20 24 6f 6c 64 50 61 74 68 20 2e 20 24 th;.$oldPathMatch.=.$oldPath...$
6e160 6d 61 74 63 68 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 6f 6c 64 50 61 74 68 29 20 26 26 20 24 match;.if.(is_dir($oldPath).&&.$
6e180 64 69 72 20 21 3d 3d 20 24 6f 6c 64 50 61 74 68 29 20 7b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 dir.!==.$oldPath).{.if.(!is_dir(
6e1a0 24 64 69 72 29 29 20 7b 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 64 69 72 2c 20 30 37 37 37 2c $dir)).{.if.(!@mkdir($dir,.0777,
6e1c0 20 74 72 75 65 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 7d 0a 69 66 20 28 69 73 5f 61 .true)).{.continue;.}.}.if.(is_a
6e1e0 72 72 61 79 28 24 63 68 69 6c 64 72 65 6e 20 3d 20 67 6c 6f 62 28 24 6f 6c 64 50 61 74 68 4d 61 rray($children.=.glob($oldPathMa
6e200 74 63 68 29 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 68 69 6c 64 72 65 6e 20 61 73 20 24 tch))).{.foreach.($children.as.$
6e220 63 68 69 6c 64 29 20 7b 0a 40 72 65 6e 61 6d 65 28 24 63 68 69 6c 64 2c 20 24 64 69 72 2e 27 2f child).{.@rename($child,.$dir.'/
6e240 27 2e 62 61 73 65 6e 61 6d 65 28 24 63 68 69 6c 64 29 29 3b 0a 7d 0a 7d 0a 69 66 20 28 24 63 6f '.basename($child));.}.}.if.($co
6e260 6e 66 69 67 2d 3e 67 65 74 28 27 63 61 63 68 65 2d 64 69 72 27 29 20 21 3d 20 24 6f 6c 64 50 61 nfig->get('cache-dir').!=.$oldPa
6e280 74 68 29 20 7b 0a 40 72 6d 64 69 72 28 24 6f 6c 64 50 61 74 68 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a th).{.@rmdir($oldPath);.}.}.}.}.
6e2a0 0a 72 65 74 75 72 6e 20 24 63 6f 6e 66 69 67 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 .return.$config;.}..public.stati
6e2c0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 46 69 6c 65 28 29 0a 7b 0a 72 c.function.getComposerFile().{.r
6e2e0 65 74 75 72 6e 20 74 72 69 6d 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 27 29 29 20 3f eturn.trim(getenv('COMPOSER')).?
6e300 3a 20 27 2e 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 :.'./composer.json';.}..public.s
6e320 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 41 64 64 69 74 69 6f 6e 61 6c 53 tatic.function.createAdditionalS
6e340 74 79 6c 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 68 69 67 68 6c 69 67 tyles().{.return.array(.'highlig
6e360 68 74 27 20 3d 3e 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 28 ht'.=>.new.OutputFormatterStyle(
6e380 27 72 65 64 27 29 2c 0a 27 77 61 72 6e 69 6e 67 27 20 3d 3e 20 6e 65 77 20 4f 75 74 70 75 74 46 'red'),.'warning'.=>.new.OutputF
6e3a0 6f 72 6d 61 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 ormatterStyle('black',.'yellow')
6e3c0 2c 0a 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 ,.);.}..public.static.function.c
6e3e0 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 49 4f 49 6e 74 65 72 reateDefaultRepositories(IOInter
6e400 66 61 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 20 face.$io.=.null,.Config.$config.
6e420 3d 20 6e 75 6c 6c 2c 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 20 3d 20 =.null,.RepositoryManager.$rm.=.
6e440 6e 75 6c 6c 29 0a 7b 0a 24 72 65 70 6f 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 69 66 20 28 21 null).{.$repos.=.array();..if.(!
6e460 24 63 6f 6e 66 69 67 29 20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 63 72 65 $config).{.$config.=.static::cre
6e480 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 7d 0a 69 66 20 28 21 24 72 6d 29 20 7b 0a 69 66 20 28 21 ateConfig();.}.if.(!$rm).{.if.(!
6e4a0 24 69 6f 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 $io).{.throw.new.\InvalidArgumen
6e4c0 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 69 72 tException('This.function.requir
6e4e0 65 73 20 65 69 74 68 65 72 20 61 6e 20 49 4f 49 6e 74 65 72 66 61 63 65 20 6f 72 20 61 20 52 65 es.either.an.IOInterface.or.a.Re
6e500 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 27 29 3b 0a 7d 0a 24 66 61 63 74 6f 72 79 20 3d 20 positoryManager');.}.$factory.=.
6e520 6e 65 77 20 73 74 61 74 69 63 3b 0a 24 72 6d 20 3d 20 24 66 61 63 74 6f 72 79 2d 3e 63 72 65 61 new.static;.$rm.=.$factory->crea
6e540 74 65 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 teRepositoryManager($io,.$config
6e560 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 66 69 67 2d 3e 67 65 74 52 65 70 6f 73 );.}..foreach.($config->getRepos
6e580 69 74 6f 72 69 65 73 28 29 20 61 73 20 24 69 6e 64 65 78 20 3d 3e 20 24 72 65 70 6f 29 20 7b 0a itories().as.$index.=>.$repo).{.
6e5a0 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 72 65 70 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 if.(!is_array($repo)).{.throw.ne
6e5c0 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 52 65 70 w.\UnexpectedValueException('Rep
6e5e0 6f 73 69 74 6f 72 79 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 ository.'.$index.'.('.json_encod
6e600 65 28 24 72 65 70 6f 29 2e 27 29 20 73 68 6f 75 6c 64 20 62 65 20 61 6e 20 61 72 72 61 79 2c 20 e($repo).').should.be.an.array,.
6e620 27 2e 67 65 74 74 79 70 65 28 24 72 65 70 6f 29 2e 27 20 67 69 76 65 6e 27 29 3b 0a 7d 0a 69 66 '.gettype($repo).'.given');.}.if
6e640 20 28 21 69 73 73 65 74 28 24 72 65 70 6f 5b 27 74 79 70 65 27 5d 29 29 20 7b 0a 74 68 72 6f 77 .(!isset($repo['type'])).{.throw
6e660 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 27 .new.\UnexpectedValueException('
6e680 52 65 70 6f 73 69 74 6f 72 79 20 27 2e 24 69 6e 64 65 78 2e 27 20 28 27 2e 6a 73 6f 6e 5f 65 6e Repository.'.$index.'.('.json_en
6e6a0 63 6f 64 65 28 24 72 65 70 6f 29 2e 27 29 20 6d 75 73 74 20 68 61 76 65 20 61 20 74 79 70 65 20 code($repo).').must.have.a.type.
6e6c0 64 65 66 69 6e 65 64 27 29 3b 0a 7d 0a 24 6e 61 6d 65 20 3d 20 69 73 5f 69 6e 74 28 24 69 6e 64 defined');.}.$name.=.is_int($ind
6e6e0 65 78 29 20 26 26 20 69 73 73 65 74 28 24 72 65 70 6f 5b 27 75 72 6c 27 5d 29 20 3f 20 70 72 65 ex).&&.isset($repo['url']).?.pre
6e700 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 7d 69 27 2c 20 27 27 2c 20 24 g_replace('{^https?://}i',.'',.$
6e720 72 65 70 6f 5b 27 75 72 6c 27 5d 29 20 3a 20 24 69 6e 64 65 78 3b 0a 77 68 69 6c 65 20 28 69 73 repo['url']).:.$index;.while.(is
6e740 73 65 74 28 24 72 65 70 6f 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 24 6e 61 6d 65 20 2e 3d 20 27 set($repos[$name])).{.$name..=.'
6e760 32 27 3b 0a 7d 0a 24 72 65 70 6f 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 72 6d 2d 3e 63 72 65 61 74 2';.}.$repos[$name].=.$rm->creat
6e780 65 52 65 70 6f 73 69 74 6f 72 79 28 24 72 65 70 6f 5b 27 74 79 70 65 27 5d 2c 20 24 72 65 70 6f eRepository($repo['type'],.$repo
6e7a0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 70 6f 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a );.}..return.$repos;.}..........
6e7c0 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 43 6f 6d 70 6f 73 65 ...public.function.createCompose
6e7e0 72 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 r(IOInterface.$io,.$localConfig.
6e800 3d 20 6e 75 6c 6c 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 29 =.null,.$disablePlugins.=.false)
6e820 0a 7b 0a 0a 20 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 .{...if.(null.===.$localConfig).
6e840 7b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 20 73 74 61 74 69 63 3a 3a 67 65 74 43 6f 6d 70 {.$localConfig.=.static::getComp
6e860 6f 73 65 72 46 69 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 oserFile();.}..if.(is_string($lo
6e880 63 61 6c 43 6f 6e 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 calConfig)).{.$composerFile.=.$l
6e8a0 6f 63 61 6c 43 6f 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 ocalConfig;.$file.=.new.JsonFile
6e8c0 28 24 6c 6f 63 61 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 ($localConfig,.new.RemoteFilesys
6e8e0 74 65 6d 28 24 69 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 tem($io));..if.(!$file->exists()
6e900 29 20 7b 0a 69 66 20 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 3d 3d 20 27 2e 2f 63 6f 6d 70 ).{.if.($localConfig.===.'./comp
6e920 6f 73 65 72 2e 6a 73 6f 6e 27 20 7c 7c 20 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 20 3d 3d 3d 20 27 oser.json'.||.$localConfig.===.'
6e940 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 27 43 6f composer.json').{.$message.=.'Co
6e960 6d 70 6f 73 65 72 20 63 6f 75 6c 64 20 6e 6f 74 20 66 69 6e 64 20 61 20 63 6f 6d 70 6f 73 65 72 mposer.could.not.find.a.composer
6e980 2e 6a 73 6f 6e 20 66 69 6c 65 20 69 6e 20 27 2e 67 65 74 63 77 64 28 29 3b 0a 7d 20 65 6c 73 65 .json.file.in.'.getcwd();.}.else
6e9a0 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 20 6e 6f .{.$message.=.'Composer.could.no
6e9c0 74 20 66 69 6e 64 20 74 68 65 20 63 6f 6e 66 69 67 20 66 69 6c 65 3a 20 27 2e 24 6c 6f 63 61 6c t.find.the.config.file:.'.$local
6e9e0 43 6f 6e 66 69 67 3b 0a 7d 0a 24 69 6e 73 74 72 75 63 74 69 6f 6e 73 20 3d 20 27 54 6f 20 69 6e Config;.}.$instructions.=.'To.in
6ea00 69 74 69 61 6c 69 7a 65 20 61 20 70 72 6f 6a 65 63 74 2c 20 70 6c 65 61 73 65 20 63 72 65 61 74 itialize.a.project,.please.creat
6ea20 65 20 61 20 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 20 66 69 6c 65 20 61 73 20 64 65 73 63 72 69 e.a.composer.json.file.as.descri
6ea40 62 65 64 20 69 6e 20 74 68 65 20 68 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 bed.in.the.http://getcomposer.or
6ea60 67 2f 20 22 47 65 74 74 69 6e 67 20 53 74 61 72 74 65 64 22 20 73 65 63 74 69 6f 6e 27 3b 0a 74 g/."Getting.Started".section';.t
6ea80 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
6eaa0 6f 6e 28 24 6d 65 73 73 61 67 65 2e 50 48 50 5f 45 4f 4c 2e 24 69 6e 73 74 72 75 63 74 69 6f 6e on($message.PHP_EOL.$instruction
6eac0 73 29 3b 0a 7d 0a 0a 24 66 69 6c 65 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 65 6d 61 28 4a 73 6f s);.}..$file->validateSchema(Jso
6eae0 6e 46 69 6c 65 3a 3a 4c 41 58 5f 53 43 48 45 4d 41 29 3b 0a 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 nFile::LAX_SCHEMA);.$localConfig
6eb00 20 3d 20 24 66 69 6c 65 2d 3e 72 65 61 64 28 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 66 69 67 20 3d .=.$file->read();.}....$config.=
6eb20 20 73 74 61 74 69 63 3a 3a 63 72 65 61 74 65 43 6f 6e 66 69 67 28 29 3b 0a 24 63 6f 6e 66 69 67 .static::createConfig();.$config
6eb40 2d 3e 6d 65 72 67 65 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a 24 69 6f 2d 3e 6c 6f 61 64 ->merge($localConfig);.$io->load
6eb60 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 28 24 63 6f 6e 66 69 67 29 3b 0a 0a 24 76 65 6e 64 6f 72 Configuration($config);..$vendor
6eb80 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 Dir.=.$config->get('vendor-dir')
6eba0 3b 0a 24 62 69 6e 44 69 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 62 69 6e 2d 64 69 ;.$binDir.=.$config->get('bin-di
6ebc0 72 27 29 3b 0a 0a 0a 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3a 3a 73 65 74 54 69 6d 65 r');....ProcessExecutor::setTime
6ebe0 6f 75 74 28 28 69 6e 74 29 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 70 72 6f 63 65 73 73 2d out((int).$config->get('process-
6ec00 74 69 6d 65 6f 75 74 27 29 29 3b 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 20 3d 20 6e 65 77 20 43 timeout'));....$composer.=.new.C
6ec20 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 67 28 omposer();.$composer->setConfig(
6ec40 24 63 6f 6e 66 69 67 29 3b 0a 0a 0a 20 24 64 69 73 70 61 74 63 68 65 72 20 3d 20 6e 65 77 20 45 $config);....$dispatcher.=.new.E
6ec60 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 29 3b 0a ventDispatcher($composer,.$io);.
6ec80 0a 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 ...$rm.=.$this->createRepository
6eca0 4d 61 6e 61 67 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 64 69 73 70 61 74 63 68 65 Manager($io,.$config,.$dispatche
6ecc0 72 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 61 64 64 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 r);....$this->addLocalRepository
6ece0 28 24 72 6d 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 0a 20 24 70 61 72 73 65 72 20 3d 20 ($rm,.$vendorDir);....$parser.=.
6ed00 6e 65 77 20 56 65 72 73 69 6f 6e 50 61 72 73 65 72 3b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 new.VersionParser;.$loader.=.new
6ed20 20 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 52 6f 6f 74 50 61 63 6b 61 67 65 4c 6f 61 64 65 .Package\Loader\RootPackageLoade
6ed40 72 28 24 72 6d 2c 20 24 63 6f 6e 66 69 67 2c 20 24 70 61 72 73 65 72 2c 20 6e 65 77 20 50 72 6f r($rm,.$config,.$parser,.new.Pro
6ed60 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 29 3b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 cessExecutor($io));.$package.=.$
6ed80 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 6c 6f 63 61 6c 43 6f 6e 66 69 67 29 3b 0a 0a 0a 20 24 loader->load($localConfig);....$
6eda0 69 6d 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 im.=.$this->createInstallationMa
6edc0 6e 61 67 65 72 28 29 3b 0a 0a 0a 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 50 61 63 6b 61 67 nager();....$composer->setPackag
6ede0 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
6ee00 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
6ee20 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 0a 20 24 64 tInstallationManager($im);....$d
6ee40 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 m.=.$this->createDownloadManager
6ee60 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 64 69 73 70 61 74 63 68 65 72 29 3b 0a 0a 24 63 ($io,.$config,.$dispatcher);..$c
6ee80 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 24 64 6d 29 omposer->setDownloadManager($dm)
6eea0 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 ;.$composer->setEventDispatcher(
6eec0 24 64 69 73 70 61 74 63 68 65 72 29 3b 0a 0a 0a 20 24 67 65 6e 65 72 61 74 6f 72 20 3d 20 6e 65 $dispatcher);....$generator.=.ne
6eee0 77 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 24 64 69 73 70 61 74 63 68 65 72 29 w.AutoloadGenerator($dispatcher)
6ef00 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 73 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f ;.$composer->setAutoloadGenerato
6ef20 72 28 24 67 65 6e 65 72 61 74 6f 72 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 r($generator);....$this->createD
6ef40 65 66 61 75 6c 74 49 6e 73 74 61 6c 6c 65 72 73 28 24 69 6d 2c 20 24 63 6f 6d 70 6f 73 65 72 2c efaultInstallers($im,.$composer,
6ef60 20 24 69 6f 29 3b 0a 0a 24 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 24 74 68 69 .$io);..$globalRepository.=.$thi
6ef80 73 2d 3e 63 72 65 61 74 65 47 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 24 63 6f 6e 66 69 s->createGlobalRepository($confi
6efa0 67 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 24 70 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 g,.$vendorDir);.$pm.=.$this->cre
6efc0 61 74 65 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 2c atePluginManager($composer,.$io,
6efe0 20 24 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e .$globalRepository);.$composer->
6f000 73 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 24 70 6d 29 3b 0a 0a 69 66 20 28 21 24 64 69 setPluginManager($pm);..if.(!$di
6f020 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 20 7b 0a 24 70 6d 2d 3e 6c 6f 61 64 49 6e 73 74 61 6c 6c sablePlugins).{.$pm->loadInstall
6f040 65 64 50 6c 75 67 69 6e 73 28 29 3b 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 75 72 67 65 50 61 edPlugins();.}....$this->purgePa
6f060 63 6b 61 67 65 73 28 24 72 6d 2c 20 24 69 6d 29 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 ckages($rm,.$im);....if.(isset($
6f080 63 6f 6d 70 6f 73 65 72 46 69 6c 65 29 29 20 7b 0a 24 6c 6f 63 6b 46 69 6c 65 20 3d 20 22 6a 73 composerFile)).{.$lockFile.=."js
6f0a0 6f 6e 22 20 3d 3d 3d 20 70 61 74 68 69 6e 66 6f 28 24 63 6f 6d 70 6f 73 65 72 46 69 6c 65 2c 20 on".===.pathinfo($composerFile,.
6f0c0 50 41 54 48 49 4e 46 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 0a 3f 20 73 75 62 73 74 72 28 24 63 6f PATHINFO_EXTENSION).?.substr($co
6f0e0 6d 70 6f 73 65 72 46 69 6c 65 2c 20 30 2c 20 2d 34 29 2e 27 6c 6f 63 6b 27 0a 3a 20 24 63 6f 6d mposerFile,.0,.-4).'lock'.:.$com
6f100 70 6f 73 65 72 46 69 6c 65 20 2e 20 27 2e 6c 6f 63 6b 27 3b 0a 24 6c 6f 63 6b 65 72 20 3d 20 6e poserFile...'.lock';.$locker.=.n
6f120 65 77 20 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 28 24 69 6f 2c 20 6e 65 77 20 4a 73 6f 6e 46 ew.Package\Locker($io,.new.JsonF
6f140 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 73 79 73 ile($lockFile,.new.RemoteFilesys
6f160 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 28 24 63 tem($io)),.$rm,.$im,.md5_file($c
6f180 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 4c 6f 63 omposerFile));.$composer->setLoc
6f1a0 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 6f 73 65 ker($locker);.}..return.$compose
6f1c0 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 r;.}........protected.function.c
6f1e0 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 66 61 reateRepositoryManager(IOInterfa
6f200 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 ce.$io,.Config.$config,.EventDis
6f220 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 29 patcher.$eventDispatcher.=.null)
6f240 0a 7b 0a 24 72 6d 20 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 .{.$rm.=.new.RepositoryManager($
6f260 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 29 3b 0a io,.$config,.$eventDispatcher);.
6f280 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 63 6f 6d 70 6f 73 65 $rm->setRepositoryClass('compose
6f2a0 72 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 43 6f 6d 70 6f 73 65 r',.'Composer\Repository\Compose
6f2c0 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
6f2e0 79 43 6c 61 73 73 28 27 76 63 73 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f yClass('vcs',.'Composer\Reposito
6f300 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
6f320 73 69 74 6f 72 79 43 6c 61 73 73 28 27 70 61 63 6b 61 67 65 27 2c 20 27 43 6f 6d 70 6f 73 65 72 sitoryClass('package',.'Composer
6f340 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 61 63 6b 61 67 65 52 65 70 6f 73 69 74 6f 72 79 27 29 3b \Repository\PackageRepository');
6f360 0a 24 72 6d 2d 3e 73 65 74 52 65 70 6f 73 69 74 6f 72 79 43 6c 61 73 73 28 27 70 65 61 72 27 2c .$rm->setRepositoryClass('pear',
6f380 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 50 65 61 72 52 65 70 6f 73 69 .'Composer\Repository\PearReposi
6f3a0 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(
6f3c0 27 67 69 74 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 56 63 73 52 'git',.'Composer\Repository\VcsR
6f3e0 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 79 43 epository');.$rm->setRepositoryC
6f400 6c 61 73 73 28 27 73 76 6e 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 lass('svn',.'Composer\Repository
6f420 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 73 69 \VcsRepository');.$rm->setReposi
6f440 74 6f 72 79 43 6c 61 73 73 28 27 70 65 72 66 6f 72 63 65 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c toryClass('perforce',.'Composer\
6f460 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 24 72 6d 2d Repository\VcsRepository');.$rm-
6f480 3e 73 65 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 >setRepositoryClass('hg',.'Compo
6f4a0 73 65 72 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 ser\Repository\VcsRepository');.
6f4c0 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 61 72 74 69 66 61 63 $rm->setRepositoryClass('artifac
6f4e0 74 27 2c 20 27 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 41 72 74 69 66 61 63 t',.'Composer\Repository\Artifac
6f500 74 52 65 70 6f 73 69 74 6f 72 79 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 6d 3b 0a 7d 0a 0a 0a tRepository');..return.$rm;.}...
6f520 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 63 61 6c 52 65 ...protected.function.addLocalRe
6f540 70 6f 73 69 74 6f 72 79 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 6d 2c 20 pository(RepositoryManager.$rm,.
6f560 24 76 65 6e 64 6f 72 44 69 72 29 0a 7b 0a 24 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 $vendorDir).{.$rm->setLocalRepos
6f580 69 74 6f 72 79 28 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 itory(new.Repository\InstalledFi
6f5a0 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 6c 65 28 lesystemRepository(new.JsonFile(
6f5c0 24 76 65 6e 64 6f 72 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 2e $vendorDir.'/composer/installed.
6f5e0 6a 73 6f 6e 27 29 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 json')));.}......protected.funct
6f600 69 6f 6e 20 63 72 65 61 74 65 47 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 43 6f 6e 66 69 ion.createGlobalRepository(Confi
6f620 67 20 24 63 6f 6e 66 69 67 2c 20 24 76 65 6e 64 6f 72 44 69 72 29 0a 7b 0a 69 66 20 28 24 63 6f g.$config,.$vendorDir).{.if.($co
6f640 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 20 3d 3d 20 24 76 65 6e 64 6f 72 44 69 72 29 nfig->get('home').==.$vendorDir)
6f660 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 24 70 61 74 68 20 3d 20 24 63 6f 6e 66 .{.return.null;.}..$path.=.$conf
6f680 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 2e 27 2f 76 65 6e 64 6f 72 2f 63 6f 6d 70 6f 73 65 ig->get('home').'/vendor/compose
6f6a0 72 2f 69 6e 73 74 61 6c 6c 65 64 2e 6a 73 6f 6e 27 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 r/installed.json';.if.(!file_exi
6f6c0 73 74 73 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 sts($path)).{.return.null;.}..re
6f6e0 74 75 72 6e 20 6e 65 77 20 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c turn.new.Repository\InstalledFil
6f700 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 6c 65 28 24 esystemRepository(new.JsonFile($
6f720 70 61 74 68 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e path));.}........public.function
6f740 20 63 72 65 61 74 65 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 49 4f 49 6e 74 65 72 66 61 .createDownloadManager(IOInterfa
6f760 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 45 76 65 6e 74 44 69 73 ce.$io,.Config.$config,.EventDis
6f780 70 61 74 63 68 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 6e 75 6c 6c 29 patcher.$eventDispatcher.=.null)
6f7a0 0a 7b 0a 24 63 61 63 68 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 63 6f 6e 66 69 67 2d 3e 67 .{.$cache.=.null;.if.($config->g
6f7c0 65 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 27 29 20 3e 20 30 29 20 7b 0a 24 63 61 et('cache-files-ttl').>.0).{.$ca
6f7e0 63 68 65 20 3d 20 6e 65 77 20 43 61 63 68 65 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2d 3e 67 65 che.=.new.Cache($io,.$config->ge
6f800 74 28 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 27 29 2c 20 27 61 2d 7a 30 2d 39 5f 2e 2f t('cache-files-dir'),.'a-z0-9_./
6f820 27 29 3b 0a 7d 0a 0a 24 64 6d 20 3d 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 44 6f 77 6e ');.}..$dm.=.new.Downloader\Down
6f840 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 3b 0a 73 77 69 74 63 68 20 28 24 63 6f 6e 66 69 67 2d 3e loadManager();.switch.($config->
6f860 67 65 74 28 27 70 72 65 66 65 72 72 65 64 2d 69 6e 73 74 61 6c 6c 27 29 29 20 7b 0a 63 61 73 65 get('preferred-install')).{.case
6f880 20 27 64 69 73 74 27 3a 0a 24 64 6d 2d 3e 73 65 74 50 72 65 66 65 72 44 69 73 74 28 74 72 75 65 .'dist':.$dm->setPreferDist(true
6f8a0 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 73 6f 75 72 63 65 27 3a 0a 24 64 6d 2d 3e 73 65 );.break;.case.'source':.$dm->se
6f8c0 74 50 72 65 66 65 72 53 6f 75 72 63 65 28 74 72 75 65 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 tPreferSource(true);.break;.case
6f8e0 20 27 61 75 74 6f 27 3a 0a 64 65 66 61 75 6c 74 3a 0a 0a 20 62 72 65 61 6b 3b 0a 7d 0a 0a 24 64 .'auto':.default:...break;.}..$d
6f900 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 20 44 6f 77 6e m->setDownloader('git',.new.Down
6f920 6c 6f 61 64 65 72 5c 47 69 74 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 loader\GitDownloader($io,.$confi
6f940 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 73 76 6e 27 2c 20 6e g));.$dm->setDownloader('svn',.n
6f960 65 77 20 44 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 2c ew.Downloader\SvnDownloader($io,
6f980 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 .$config));.$dm->setDownloader('
6f9a0 68 67 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 48 67 44 6f 77 6e 6c 6f 61 64 65 72 hg',.new.Downloader\HgDownloader
6f9c0 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 ($io,.$config));.$dm->setDownloa
6f9e0 64 65 72 28 27 70 65 72 66 6f 72 63 65 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 der('perforce',.new.Downloader\P
6fa00 65 72 66 6f 72 63 65 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 29 29 erforceDownloader($io,.$config))
6fa20 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 7a 69 70 27 2c 20 6e 65 77 20 ;.$dm->setDownloader('zip',.new.
6fa40 44 6f 77 6e 6c 6f 61 64 65 72 5c 5a 69 70 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 63 Downloader\ZipDownloader($io,.$c
6fa60 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 29 onfig,.$eventDispatcher,.$cache)
6fa80 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 72 61 72 27 2c 20 6e 65 77 );.$dm->setDownloader('rar',.new
6faa0 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 52 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 24 .Downloader\RarDownloader($io,.$
6fac0 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 65 config,.$eventDispatcher,.$cache
6fae0 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 74 61 72 27 2c 20 6e 65 ));.$dm->setDownloader('tar',.ne
6fb00 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 6f 2c 20 w.Downloader\TarDownloader($io,.
6fb20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 61 63 68 $config,.$eventDispatcher,.$cach
6fb40 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 70 68 61 72 27 2c 20 e));.$dm->setDownloader('phar',.
6fb60 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 50 68 61 72 44 6f 77 6e 6c 6f 61 64 65 72 28 24 69 new.Downloader\PharDownloader($i
6fb80 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c 20 24 63 o,.$config,.$eventDispatcher,.$c
6fba0 61 63 68 65 29 29 3b 0a 24 64 6d 2d 3e 73 65 74 44 6f 77 6e 6c 6f 61 64 65 72 28 27 66 69 6c 65 ache));.$dm->setDownloader('file
6fbc0 27 2c 20 6e 65 77 20 44 6f 77 6e 6c 6f 61 64 65 72 5c 46 69 6c 65 44 6f 77 6e 6c 6f 61 64 65 72 ',.new.Downloader\FileDownloader
6fbe0 28 24 69 6f 2c 20 24 63 6f 6e 66 69 67 2c 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 2c ($io,.$config,.$eventDispatcher,
6fc00 20 24 63 61 63 68 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a .$cache));..return.$dm;.}.......
6fc20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 41 72 63 68 69 76 65 4d 61 .public.function.createArchiveMa
6fc40 6e 61 67 65 72 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 44 6f 77 6e 6c 6f 61 64 65 72 nager(Config.$config,.Downloader
6fc60 5c 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 \DownloadManager.$dm.=.null).{.i
6fc80 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 6d 29 20 7b 0a 24 69 6f 20 3d 20 6e 65 77 20 49 4f 5c f.(null.===.$dm).{.$io.=.new.IO\
6fca0 4e 75 6c 6c 49 4f 28 29 3b 0a 24 69 6f 2d 3e 6c 6f 61 64 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e NullIO();.$io->loadConfiguration
6fcc0 28 24 63 6f 6e 66 69 67 29 3b 0a 24 64 6d 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 6f ($config);.$dm.=.$this->createDo
6fce0 77 6e 6c 6f 61 64 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 wnloadManager($io,.$config);.}..
6fd00 24 61 6d 20 3d 20 6e 65 77 20 41 72 63 68 69 76 65 72 5c 41 72 63 68 69 76 65 4d 61 6e 61 67 65 $am.=.new.Archiver\ArchiveManage
6fd20 72 28 24 64 6d 29 3b 0a 24 61 6d 2d 3e 61 64 64 41 72 63 68 69 76 65 72 28 6e 65 77 20 41 72 63 r($dm);.$am->addArchiver(new.Arc
6fd40 68 69 76 65 72 5c 50 68 61 72 41 72 63 68 69 76 65 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 61 6d hiver\PharArchiver);..return.$am
6fd60 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 63 72 65 61 74 ;.}.....protected.function.creat
6fd80 65 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 ePluginManager(Composer.$compose
6fda0 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 52 65 70 6f 73 69 74 6f 72 79 49 6e r,.IOInterface.$io,.RepositoryIn
6fdc0 74 65 72 66 61 63 65 20 24 67 6c 6f 62 61 6c 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 6e 75 6c 6c terface.$globalRepository.=.null
6fde0 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 4d 61 6e 61 ).{.return.new.Plugin\PluginMana
6fe00 67 65 72 28 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f 2c 20 24 67 6c 6f 62 61 6c 52 65 70 6f 73 ger($composer,.$io,.$globalRepos
6fe20 69 74 6f 72 79 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 itory);.}.....protected.function
6fe40 20 63 72 65 61 74 65 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 .createInstallationManager().{.r
6fe60 65 74 75 72 6e 20 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e eturn.new.Installer\Installation
6fe80 4d 61 6e 61 67 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e Manager();.}.......protected.fun
6fea0 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 72 73 28 49 6e ction.createDefaultInstallers(In
6fec0 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 20 24 69 6d 2c staller\InstallationManager.$im,
6fee0 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
6ff00 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 65 77 20 49 6e .$io).{.$im->addInstaller(new.In
6ff20 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 6f 2c 20 24 63 staller\LibraryInstaller($io,.$c
6ff40 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 73 74 61 6c 6c omposer,.null));.$im->addInstall
6ff60 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 6c 65 72 28 24 er(new.Installer\PearInstaller($
6ff80 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 79 27 29 29 3b io,.$composer,.'pear-library'));
6ffa0 0a 24 69 6d 2d 3e 61 64 64 49 6e 73 74 61 6c 6c 65 72 28 6e 65 77 20 49 6e 73 74 61 6c 6c 65 72 .$im->addInstaller(new.Installer
6ffc0 5c 50 6c 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 29 \PluginInstaller($io,.$composer)
6ffe0 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 61 6c 6c );.$im->addInstaller(new.Install
70000 65 72 5c 4d 65 74 61 70 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 72 28 24 69 6f 29 29 3b 0a 7d er\MetapackageInstaller($io));.}
70020 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 70 75 72 67 65 50 61 ......protected.function.purgePa
70040 63 6b 61 67 65 73 28 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 ckages(Repository\RepositoryMana
70060 67 65 72 20 24 72 6d 2c 20 49 6e 73 74 61 6c 6c 65 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d ger.$rm,.Installer\InstallationM
70080 61 6e 61 67 65 72 20 24 69 6d 29 0a 7b 0a 24 72 65 70 6f 20 3d 20 24 72 6d 2d 3e 67 65 74 4c 6f anager.$im).{.$repo.=.$rm->getLo
700a0 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 2d calRepository();.foreach.($repo-
700c0 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 >getPackages().as.$package).{.if
700e0 20 28 21 24 69 6d 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 70 6f .(!$im->isPackageInstalled($repo
70100 2c 20 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b ,.$package)).{.$repo->removePack
70120 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 age($package);.}.}.}.........pub
70140 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 49 4f 49 6e 74 lic.static.function.create(IOInt
70160 65 72 66 61 63 65 20 24 69 6f 2c 20 24 63 6f 6e 66 69 67 20 3d 20 6e 75 6c 6c 2c 20 24 64 69 73 erface.$io,.$config.=.null,.$dis
70180 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 66 61 63 74 6f 72 79 20 ablePlugins.=.false).{.$factory.
701a0 3d 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 =.new.static();..return.$factory
701c0 2d 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 2c 20 24 ->createComposer($io,.$config,.$
701e0 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a disablePlugins);.}.}.<?php......
70200 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 0a ......namespace.Composer\Util;..
70220 75 73 65 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 3b 0a use.RecursiveDirectoryIterator;.
70240 75 73 65 20 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 3b 0a 0a use.RecursiveIteratorIterator;..
70260 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 73 79 73 74 65 6d 0a 7b 0a 70 72 69 76 61 74 65 20 24 ....class.Filesystem.{.private.$
70280 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f processExecutor;..public.functio
702a0 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 65 n.__construct(ProcessExecutor.$e
702c0 78 65 63 75 74 6f 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 xecutor.=.null).{.$this->process
702e0 45 78 65 63 75 74 6f 72 20 3d 20 24 65 78 65 63 75 74 6f 72 20 3f 3a 20 6e 65 77 20 50 72 6f 63 Executor.=.$executor.?:.new.Proc
70300 65 73 73 45 78 65 63 75 74 6f 72 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f essExecutor();.}..public.functio
70320 6e 20 72 65 6d 6f 76 65 28 24 66 69 6c 65 29 0a 7b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 66 69 n.remove($file).{.if.(is_dir($fi
70340 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 le)).{.return.$this->removeDirec
70360 74 6f 72 79 28 24 66 69 6c 65 29 3b 0a 7d 0a 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 tory($file);.}..if.(file_exists(
70380 24 66 69 6c 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 75 6e 6c 69 6e 6b 28 24 66 69 6c 65 29 3b 0a $file)).{.return.unlink($file);.
703a0 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 70 75 62 6c 69 63 }..return.false;.}........public
703c0 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 69 72 45 6d 70 74 79 28 24 64 69 72 29 0a 7b 0a 24 64 69 .function.isDirEmpty($dir).{.$di
703e0 72 20 3d 20 72 74 72 69 6d 28 24 64 69 72 2c 20 27 2f 5c 5c 27 29 3b 0a 0a 72 65 74 75 72 6e 20 r.=.rtrim($dir,.'/\\');..return.
70400 63 6f 75 6e 74 28 67 6c 6f 62 28 24 64 69 72 2e 27 2f 2a 27 29 20 3f 3a 20 61 72 72 61 79 28 29 count(glob($dir.'/*').?:.array()
70420 29 20 3d 3d 3d 20 30 20 26 26 20 63 6f 75 6e 74 28 67 6c 6f 62 28 24 64 69 72 2e 27 2f 2e 2a 27 ).===.0.&&.count(glob($dir.'/.*'
70440 29 20 3f 3a 20 61 72 72 61 79 28 29 29 20 3d 3d 3d 20 32 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ).?:.array()).===.2;.}..........
70460 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 6f 72 79 .public.function.removeDirectory
70480 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 69 72 65 ($directory).{.if.(!is_dir($dire
704a0 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 28 70 72 ctory)).{.return.true;.}..if.(pr
704c0 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 3f 3a 5b 61 2d 7a 5d 3a 29 3f 5b 2f 5c 5c 5c 5c 5d 2b 24 eg_match('{^(?:[a-z]:)?[/\\\\]+$
704e0 7d 69 27 2c 20 24 64 69 72 65 63 74 6f 72 79 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 }i',.$directory)).{.throw.new.\R
70500 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 62 6f 72 74 69 6e 67 20 61 6e 20 61 74 74 untimeException('Aborting.an.att
70520 65 6d 70 74 65 64 20 64 65 6c 65 74 69 6f 6e 20 6f 66 20 27 2e 24 64 69 72 65 63 74 6f 72 79 2e empted.deletion.of.'.$directory.
70540 27 2c 20 74 68 69 73 20 77 61 73 20 70 72 6f 62 61 62 6c 79 20 6e 6f 74 20 69 6e 74 65 6e 64 65 ',.this.was.probably.not.intende
70560 64 2c 20 69 66 20 69 74 20 69 73 20 61 20 72 65 61 6c 20 75 73 65 20 63 61 73 65 20 70 6c 65 61 d,.if.it.is.a.real.use.case.plea
70580 73 65 20 72 65 70 6f 72 74 20 69 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f se.report.it.');.}..if.(!functio
705a0 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 n_exists('proc_open')).{.return.
705c0 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 50 68 70 28 24 64 69 72 65 63 $this->removeDirectoryPhp($direc
705e0 74 6f 72 79 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f tory);.}..if.(defined('PHP_WINDO
70600 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 63 6d 64 20 3d 20 73 70 72 WS_VERSION_BUILD')).{.$cmd.=.spr
70620 69 6e 74 66 28 27 72 6d 64 69 72 20 2f 53 20 2f 51 20 25 73 27 2c 20 65 73 63 61 70 65 73 68 65 intf('rmdir./S./Q.%s',.escapeshe
70640 6c 6c 61 72 67 28 72 65 61 6c 70 61 74 68 28 24 64 69 72 65 63 74 6f 72 79 29 29 29 3b 0a 7d 20 llarg(realpath($directory)));.}.
70660 65 6c 73 65 20 7b 0a 24 63 6d 64 20 3d 20 73 70 72 69 6e 74 66 28 27 72 6d 20 2d 72 66 20 25 73 else.{.$cmd.=.sprintf('rm.-rf.%s
70680 27 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 64 69 72 65 63 74 6f 72 79 29 29 3b 0a ',.escapeshellarg($directory));.
706a0 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 63 65 73 73 28 29 }..$result.=.$this->getProcess()
706c0 2d 3e 65 78 65 63 75 74 65 28 24 63 6d 64 2c 20 24 6f 75 74 70 75 74 29 20 3d 3d 3d 20 30 3b 0a ->execute($cmd,.$output).===.0;.
706e0 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 ...clearstatcache();..return.$re
70700 73 75 6c 74 20 26 26 20 21 69 73 5f 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a sult.&&.!is_dir($directory);.}..
70720 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 ..........public.function.remove
70740 44 69 72 65 63 74 6f 72 79 50 68 70 28 24 64 69 72 65 63 74 6f 72 79 29 0a 7b 0a 24 69 74 20 3d DirectoryPhp($directory).{.$it.=
70760 20 6e 65 77 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 28 .new.RecursiveDirectoryIterator(
70780 24 64 69 72 65 63 74 6f 72 79 2c 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 $directory,.RecursiveDirectoryIt
707a0 65 72 61 74 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 29 3b 0a 24 72 69 20 3d 20 6e 65 77 20 52 65 erator::SKIP_DOTS);.$ri.=.new.Re
707c0 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 24 69 74 2c 20 52 65 63 cursiveIteratorIterator($it,.Rec
707e0 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 3a 3a 43 48 49 4c 44 5f 46 49 ursiveIteratorIterator::CHILD_FI
70800 52 53 54 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 69 20 61 73 20 24 66 69 6c 65 29 20 7b 0a RST);..foreach.($ri.as.$file).{.
70820 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 72 6d 64 69 72 28 24 66 69 6c if.($file->isDir()).{.rmdir($fil
70840 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 75 6e 6c 69 e->getPathname());.}.else.{.unli
70860 6e 6b 28 24 66 69 6c 65 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 0a 7d 0a 0a 72 nk($file->getPathname());.}.}..r
70880 65 74 75 72 6e 20 72 6d 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 29 3b 0a 7d 0a 0a 70 75 62 6c eturn.rmdir($directory);.}..publ
708a0 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 ic.function.ensureDirectoryExist
708c0 73 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 69 72 s($directory).{.if.(!is_dir($dir
708e0 65 63 74 6f 72 79 29 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 65 ectory)).{.if.(file_exists($dire
70900 63 74 6f 72 79 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 ctory)).{.throw.new.\RuntimeExce
70920 70 74 69 6f 6e 28 0a 24 64 69 72 65 63 74 6f 72 79 2e 27 20 65 78 69 73 74 73 20 61 6e 64 20 69 ption(.$directory.'.exists.and.i
70940 73 20 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 40 6d s.not.a.directory.'.);.}.if.(!@m
70960 6b 64 69 72 28 24 64 69 72 65 63 74 6f 72 79 2c 20 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a kdir($directory,.0777,.true)).{.
70980 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 throw.new.\RuntimeException(.$di
709a0 72 65 63 74 6f 72 79 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 rectory.'.does.not.exist.and.cou
709c0 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 65 64 2e 27 0a 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a ld.not.be.created.'.);.}.}.}....
709e0 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 54 68 65 6e 52 .......public.function.copyThenR
70a00 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 69 74 20 3d 20 emove($source,.$target).{.$it.=.
70a20 6e 65 77 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 28 24 new.RecursiveDirectoryIterator($
70a40 73 6f 75 72 63 65 2c 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 source,.RecursiveDirectoryIterat
70a60 6f 72 3a 3a 53 4b 49 50 5f 44 4f 54 53 29 3b 0a 24 72 69 20 3d 20 6e 65 77 20 52 65 63 75 72 73 or::SKIP_DOTS);.$ri.=.new.Recurs
70a80 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 24 69 74 2c 20 52 65 63 75 72 73 69 iveIteratorIterator($it,.Recursi
70aa0 76 65 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 29 3b veIteratorIterator::SELF_FIRST);
70ac0 0a 24 74 68 69 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 .$this->ensureDirectoryExists($t
70ae0 61 72 67 65 74 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 69 20 61 73 20 24 66 69 6c 65 29 20 arget);..foreach.($ri.as.$file).
70b00 7b 0a 24 74 61 72 67 65 74 50 61 74 68 20 3d 20 24 74 61 72 67 65 74 20 2e 20 44 49 52 45 43 54 {.$targetPath.=.$target...DIRECT
70b20 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 72 69 2d 3e 67 65 74 53 75 62 50 61 74 68 4e ORY_SEPARATOR...$ri->getSubPathN
70b40 61 6d 65 28 29 3b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 24 74 68 ame();.if.($file->isDir()).{.$th
70b60 69 73 2d 3e 65 6e 73 75 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 74 61 72 67 65 is->ensureDirectoryExists($targe
70b80 74 50 61 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 63 6f 70 79 28 24 66 69 6c 65 2d 3e 67 65 74 tPath);.}.else.{.copy($file->get
70ba0 50 61 74 68 6e 61 6d 65 28 29 2c 20 24 74 61 72 67 65 74 50 61 74 68 29 3b 0a 7d 0a 7d 0a 0a 24 Pathname(),.$targetPath);.}.}..$
70bc0 74 68 69 73 2d 3e 72 65 6d 6f 76 65 44 69 72 65 63 74 6f 72 79 50 68 70 28 24 73 6f 75 72 63 65 this->removeDirectoryPhp($source
70be0 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 61 6d 65 28 24 73 6f );.}..public.function.rename($so
70c00 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 0a 7b 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 40 72 urce,.$target).{.if.(true.===.@r
70c20 65 6e 61 6d 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 29 20 7b 0a 72 65 74 75 72 ename($source,.$target)).{.retur
70c40 6e 3b 0a 7d 0a 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 70 72 6f 63 n;.}..if.(!function_exists('proc
70c60 5f 6f 70 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 70 79 54 68 65 _open')).{.return.$this->copyThe
70c80 6e 52 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 69 66 nRemove($source,.$target);.}..if
70ca0 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
70cc0 55 49 4c 44 27 29 29 20 7b 0a 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 UILD')).{...$command.=.sprintf('
70ce0 78 63 6f 70 79 20 25 73 20 25 73 20 2f 45 20 2f 49 20 2f 51 27 2c 20 65 73 63 61 70 65 73 68 65 xcopy.%s.%s./E./I./Q',.escapeshe
70d00 6c 6c 61 72 67 28 24 73 6f 75 72 63 65 29 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 llarg($source),.escapeshellarg($
70d20 74 61 72 67 65 74 29 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 target));.$result.=.$this->proce
70d40 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f ssExecutor->execute($command,.$o
70d60 75 74 70 75 74 29 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 61 63 68 65 28 29 3b 0a 0a 69 66 utput);....clearstatcache();..if
70d80 20 28 30 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 .(0.===.$result).{.$this->remove
70da0 28 24 73 6f 75 72 63 65 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a ($source);..return;.}.}.else.{..
70dc0 20 0a 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 27 6d 76 20 25 73 20 25 73 27 ...$command.=.sprintf('mv.%s.%s'
70de0 2c 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 73 6f 75 72 63 65 29 2c 20 65 73 63 61 70 ,.escapeshellarg($source),.escap
70e00 65 73 68 65 6c 6c 61 72 67 28 24 74 61 72 67 65 74 29 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 eshellarg($target));.$result.=.$
70e20 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 63 75 74 65 28 24 this->processExecutor->execute($
70e40 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 0a 20 63 6c 65 61 72 73 74 61 74 63 command,.$output);....clearstatc
70e60 61 63 68 65 28 29 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 72 65 ache();..if.(0.===.$result).{.re
70e80 74 75 72 6e 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 70 79 54 68 65 turn;.}.}..return.$this->copyThe
70ea0 6e 52 65 6d 6f 76 65 28 24 73 6f 75 72 63 65 2c 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 0a 0a nRemove($source,.$target);.}....
70ec0 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 53 68 6f 72 74 .......public.function.findShort
70ee0 65 73 74 50 61 74 68 28 24 66 72 6f 6d 2c 20 24 74 6f 2c 20 24 64 69 72 65 63 74 6f 72 69 65 73 estPath($from,.$to,.$directories
70f00 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 .=.false).{.if.(!$this->isAbsolu
70f20 74 65 50 61 74 68 28 24 66 72 6f 6d 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c tePath($from).||.!$this->isAbsol
70f40 75 74 65 50 61 74 68 28 24 74 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c utePath($to)).{.throw.new.\Inval
70f60 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 24 66 72 idArgumentException(sprintf('$fr
70f80 6f 6d 20 28 25 73 29 20 61 6e 64 20 24 74 6f 20 28 25 73 29 20 6d 75 73 74 20 62 65 20 61 62 73 om.(%s).and.$to.(%s).must.be.abs
70fa0 6f 6c 75 74 65 20 70 61 74 68 73 2e 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 0a olute.paths.',.$from,.$to));.}..
70fc0 24 66 72 6f 6d 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 $from.=.lcfirst($this->normalize
70fe0 50 61 74 68 28 24 66 72 6f 6d 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 Path($from));.$to.=.lcfirst($thi
71000 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 24 64 69 s->normalizePath($to));..if.($di
71020 72 65 63 74 6f 72 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 rectories).{.$from..=.'/dummy_fi
71040 6c 65 27 3b 0a 7d 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 le';.}..if.(dirname($from).===.d
71060 69 72 6e 61 6d 65 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 irname($to)).{.return.'./'.basen
71080 61 6d 65 28 24 74 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 ame($to);.}..$commonPath.=.$to;.
710a0 77 68 69 6c 65 20 28 73 74 72 70 6f 73 28 24 66 72 6f 6d 2e 27 2f 27 2c 20 24 63 6f 6d 6d 6f 6e while.(strpos($from.'/',.$common
710c0 50 61 74 68 2e 27 2f 27 29 20 21 3d 3d 20 30 20 26 26 20 27 2f 27 20 21 3d 3d 20 24 63 6f 6d 6d Path.'/').!==.0.&&.'/'.!==.$comm
710e0 6f 6e 50 61 74 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f onPath.&&.!preg_match('{^[a-z]:/
71100 3f 24 7d 69 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 20 7b 0a 24 63 6f 6d 6d 6f 6e 50 61 ?$}i',.$commonPath)).{.$commonPa
71120 74 68 20 3d 20 73 74 72 74 72 28 64 69 72 6e 61 6d 65 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 2c th.=.strtr(dirname($commonPath),
71140 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 73 74 72 70 6f 73 .'\\',.'/');.}..if.(0.!==.strpos
71160 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7c 7c 20 27 2f 27 20 3d 3d 3d 20 ($from,.$commonPath).||.'/'.===.
71180 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
711a0 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,.'
711c0 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
711e0 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(
71200 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
71220 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
71240 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
71260 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
71280 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 0a 70 75 nPath))).?:.'./';.}...........pu
712a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f blic.function.findShortestPathCo
712c0 64 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 de($from,.$to,.$directories.=.fa
712e0 6c 73 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 lse).{.if.(!$this->isAbsolutePat
71300 68 28 24 66 72 6f 6d 29 20 7c 7c 20 21 24 74 68 69 73 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 h($from).||.!$this->isAbsolutePa
71320 74 68 28 24 74 6f 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 th($to)).{.throw.new.\InvalidArg
71340 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 24 66 72 6f 6d 20 28 25 umentException(sprintf('$from.(%
71360 73 29 20 61 6e 64 20 24 74 6f 20 28 25 73 29 20 6d 75 73 74 20 62 65 20 61 62 73 6f 6c 75 74 65 s).and.$to.(%s).must.be.absolute
71380 20 70 61 74 68 73 2e 27 2c 20 24 66 72 6f 6d 2c 20 24 74 6f 29 29 3b 0a 7d 0a 0a 24 66 72 6f 6d .paths.',.$from,.$to));.}..$from
713a0 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 .=.lcfirst($this->normalizePath(
713c0 24 66 72 6f 6d 29 29 3b 0a 24 74 6f 20 3d 20 6c 63 66 69 72 73 74 28 24 74 68 69 73 2d 3e 6e 6f $from));.$to.=.lcfirst($this->no
713e0 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 74 6f 29 29 3b 0a 0a 69 66 20 28 24 66 72 6f 6d 20 3d 3d rmalizePath($to));..if.($from.==
71400 3d 20 24 74 6f 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 69 72 65 63 74 6f 72 69 65 73 20 3f 20 27 =.$to).{.return.$directories.?.'
71420 5f 5f 44 49 52 5f 5f 27 20 3a 20 27 5f 5f 46 49 4c 45 5f 5f 27 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f __DIR__'.:.'__FILE__';.}..$commo
71440 6e 50 61 74 68 20 3d 20 24 74 6f 3b 0a 77 68 69 6c 65 20 28 73 74 72 70 6f 73 28 24 66 72 6f 6d nPath.=.$to;.while.(strpos($from
71460 2e 27 2f 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 2e 27 2f 27 29 20 21 3d 3d 20 30 20 26 26 20 .'/',.$commonPath.'/').!==.0.&&.
71480 27 2f 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 26 26 20 21 70 72 65 67 5f 6d 61 74 '/'.!==.$commonPath.&&.!preg_mat
714a0 63 68 28 27 7b 5e 5b 61 2d 7a 5d 3a 2f 3f 24 7d 69 27 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 ch('{^[a-z]:/?$}i',.$commonPath)
714c0 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7b 0a 24 63 6f 6d 6d .&&.'.'.!==.$commonPath).{.$comm
714e0 6f 6e 50 61 74 68 20 3d 20 73 74 72 74 72 28 64 69 72 6e 61 6d 65 28 24 63 6f 6d 6d 6f 6e 50 61 onPath.=.strtr(dirname($commonPa
71500 74 68 29 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 73 74 th),.'\\',.'/');.}..if.(0.!==.st
71520 72 70 6f 73 28 24 66 72 6f 6d 2c 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 20 7c 7c 20 27 2f 27 20 rpos($from,.$commonPath).||.'/'.
71540 3d 3d 3d 20 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 7c 7c 20 27 2e 27 20 3d 3d 3d 20 24 63 6f 6d 6d ===.$commonPath.||.'.'.===.$comm
71560 6f 6e 50 61 74 68 29 20 7b 0a 72 65 74 75 72 6e 20 76 61 72 5f 65 78 70 6f 72 74 28 24 74 6f 2c onPath).{.return.var_export($to,
71580 20 74 72 75 65 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 6f 6e 50 61 74 68 20 3d 20 72 74 72 69 6d 28 24 .true);.}..$commonPath.=.rtrim($
715a0 63 6f 6d 6d 6f 6e 50 61 74 68 2c 20 27 2f 27 29 20 2e 20 27 2f 27 3b 0a 69 66 20 28 73 74 72 70 commonPath,.'/')...'/';.if.(strp
715c0 6f 73 28 24 74 6f 2c 20 24 66 72 6f 6d 2e 27 2f 27 29 20 3d 3d 3d 20 30 29 20 7b 0a 72 65 74 75 os($to,.$from.'/').===.0).{.retu
715e0 72 6e 20 27 5f 5f 44 49 52 5f 5f 20 2e 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 73 75 62 73 74 rn.'__DIR__...'.var_export(subst
71600 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e 28 24 66 72 6f 6d 29 29 2c 20 74 72 75 65 29 3b 0a 7d 0a r($to,.strlen($from)),.true);.}.
71620 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 20 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 $sourcePathDepth.=.substr_count(
71640 73 75 62 73 74 72 28 24 66 72 6f 6d 2c 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 substr($from,.strlen($commonPath
71660 29 29 2c 20 27 2f 27 29 20 2b 20 24 64 69 72 65 63 74 6f 72 69 65 73 3b 0a 24 63 6f 6d 6d 6f 6e )),.'/').+.$directories;.$common
71680 50 61 74 68 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 64 69 72 6e 61 6d 65 28 27 PathCode.=.str_repeat('dirname('
716a0 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 2e 27 5f 5f 44 49 52 5f 5f 27 2e 73 74 ,.$sourcePathDepth).'__DIR__'.st
716c0 72 5f 72 65 70 65 61 74 28 27 29 27 2c 20 24 73 6f 75 72 63 65 50 61 74 68 44 65 70 74 68 29 3b r_repeat(')',.$sourcePathDepth);
716e0 0a 24 72 65 6c 54 61 72 67 65 74 20 3d 20 73 75 62 73 74 72 28 24 74 6f 2c 20 73 74 72 6c 65 6e .$relTarget.=.substr($to,.strlen
71700 28 24 63 6f 6d 6d 6f 6e 50 61 74 68 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 6f 6e 50 ($commonPath));..return.$commonP
71720 61 74 68 43 6f 64 65 20 2e 20 28 73 74 72 6c 65 6e 28 24 72 65 6c 54 61 72 67 65 74 29 20 3f 20 athCode...(strlen($relTarget).?.
71740 27 2e 27 20 2e 20 76 61 72 5f 65 78 70 6f 72 74 28 27 2f 27 20 2e 20 24 72 65 6c 54 61 72 67 65 '.'...var_export('/'...$relTarge
71760 74 2c 20 74 72 75 65 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 t,.true).:.'');.}........public.
71780 66 75 6e 63 74 69 6f 6e 20 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 0a 7b function.isAbsolutePath($path).{
717a0 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c 20 31 29 20 3d 3d 3d 20 .return.substr($path,.0,.1).===.
717c0 27 2f 27 20 7c 7c 20 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 31 2c 20 31 29 20 3d 3d 3d 20 27 '/'.||.substr($path,.1,.1).===.'
717e0 3a 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 :';.}..........public.function.s
71800 69 7a 65 28 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 69 73 74 73 28 24 70 ize($path).{.if.(!file_exists($p
71820 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
71840 69 6f 6e 28 22 24 70 61 74 68 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 22 29 3b 0a 7d 0a ion("$path.does.not.exist.");.}.
71860 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 if.(is_dir($path)).{.return.$thi
71880 73 2d 3e 64 69 72 65 63 74 6f 72 79 53 69 7a 65 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 72 65 74 75 s->directorySize($path);.}..retu
718a0 72 6e 20 66 69 6c 65 73 69 7a 65 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 rn.filesize($path);.}.........pu
718c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 blic.function.normalizePath($pat
718e0 68 29 0a 7b 0a 24 70 61 72 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 61 74 68 20 3d 20 73 h).{.$parts.=.array();.$path.=.s
71900 74 72 74 72 28 24 70 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 24 70 72 65 66 69 78 20 trtr($path,.'\\',.'/');.$prefix.
71920 3d 20 27 27 3b 0a 24 61 62 73 6f 6c 75 74 65 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 28 70 72 =.'';.$absolute.=.false;..if.(pr
71940 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 5b 30 2d 39 61 2d 7a 5d 2b 3a 28 3f 3a 2f 2f 28 3f 3a 5b eg_match('{^([0-9a-z]+:(?://(?:[
71960 61 2d 7a 5d 3a 29 3f 29 3f 29 7d 69 27 2c 20 24 70 61 74 68 2c 20 24 6d 61 74 63 68 29 29 20 7b a-z]:)?)?)}i',.$path,.$match)).{
71980 0a 24 70 72 65 66 69 78 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 70 61 74 68 20 3d 20 73 75 .$prefix.=.$match[1];.$path.=.su
719a0 62 73 74 72 28 24 70 61 74 68 2c 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 78 29 29 3b 0a 7d 0a bstr($path,.strlen($prefix));.}.
719c0 0a 69 66 20 28 73 75 62 73 74 72 28 24 70 61 74 68 2c 20 30 2c 20 31 29 20 3d 3d 3d 20 27 2f 27 .if.(substr($path,.0,.1).===.'/'
719e0 29 20 7b 0a 24 61 62 73 6f 6c 75 74 65 20 3d 20 74 72 75 65 3b 0a 24 70 61 74 68 20 3d 20 73 75 ).{.$absolute.=.true;.$path.=.su
71a00 62 73 74 72 28 24 70 61 74 68 2c 20 31 29 3b 0a 7d 0a 0a 24 75 70 20 3d 20 66 61 6c 73 65 3b 0a bstr($path,.1);.}..$up.=.false;.
71a20 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 70 61 74 68 29 20 61 73 20 foreach.(explode('/',.$path).as.
71a40 24 63 68 75 6e 6b 29 20 7b 0a 69 66 20 28 27 2e 2e 27 20 3d 3d 3d 20 24 63 68 75 6e 6b 20 26 26 $chunk).{.if.('..'.===.$chunk.&&
71a60 20 28 24 61 62 73 6f 6c 75 74 65 20 7c 7c 20 24 75 70 29 29 20 7b 0a 61 72 72 61 79 5f 70 6f 70 .($absolute.||.$up)).{.array_pop
71a80 28 24 70 61 72 74 73 29 3b 0a 24 75 70 20 3d 20 21 28 65 6d 70 74 79 28 24 70 61 72 74 73 29 20 ($parts);.$up.=.!(empty($parts).
71aa0 7c 7c 20 27 2e 2e 27 20 3d 3d 3d 20 65 6e 64 28 24 70 61 72 74 73 29 29 3b 0a 7d 20 65 6c 73 65 ||.'..'.===.end($parts));.}.else
71ac0 69 66 20 28 27 2e 27 20 21 3d 3d 20 24 63 68 75 6e 6b 20 26 26 20 27 27 20 21 3d 3d 20 24 63 68 if.('.'.!==.$chunk.&&.''.!==.$ch
71ae0 75 6e 6b 29 20 7b 0a 24 70 61 72 74 73 5b 5d 20 3d 20 24 63 68 75 6e 6b 3b 0a 24 75 70 20 3d 20 unk).{.$parts[].=.$chunk;.$up.=.
71b00 27 2e 2e 27 20 21 3d 3d 20 24 63 68 75 6e 6b 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 72 '..'.!==.$chunk;.}.}..return.$pr
71b20 65 66 69 78 2e 28 24 61 62 73 6f 6c 75 74 65 20 3f 20 27 2f 27 20 3a 20 27 27 29 2e 69 6d 70 6c efix.($absolute.?.'/'.:.'').impl
71b40 6f 64 65 28 27 2f 27 2c 20 24 70 61 72 74 73 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 ode('/',.$parts);.}..protected.f
71b60 75 6e 63 74 69 6f 6e 20 64 69 72 65 63 74 6f 72 79 53 69 7a 65 28 24 64 69 72 65 63 74 6f 72 79 unction.directorySize($directory
71b80 29 0a 7b 0a 24 69 74 20 3d 20 6e 65 77 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 ).{.$it.=.new.RecursiveDirectory
71ba0 49 74 65 72 61 74 6f 72 28 24 64 69 72 65 63 74 6f 72 79 2c 20 52 65 63 75 72 73 69 76 65 44 69 Iterator($directory,.RecursiveDi
71bc0 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 29 3b 0a 24 72 69 rectoryIterator::SKIP_DOTS);.$ri
71be0 20 3d 20 6e 65 77 20 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 .=.new.RecursiveIteratorIterator
71c00 28 24 69 74 2c 20 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 3a ($it,.RecursiveIteratorIterator:
71c20 3a 43 48 49 4c 44 5f 46 49 52 53 54 29 3b 0a 0a 24 73 69 7a 65 20 3d 20 30 3b 0a 66 6f 72 65 61 :CHILD_FIRST);..$size.=.0;.forea
71c40 63 68 20 28 24 72 69 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 2d 3e 69 ch.($ri.as.$file).{.if.($file->i
71c60 73 46 69 6c 65 28 29 29 20 7b 0a 24 73 69 7a 65 20 2b 3d 20 24 66 69 6c 65 2d 3e 67 65 74 53 69 sFile()).{.$size.+=.$file->getSi
71c80 7a 65 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 69 7a 65 3b 0a 7d 0a 0a 70 72 6f 74 ze();.}.}..return.$size;.}..prot
71ca0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 ected.function.getProcess().{.re
71cc0 74 75 72 6e 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 7d 0a 7d 0a 3c 3f turn.new.ProcessExecutor;.}.}.<?
71ce0 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
71d00 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 r\Util;..use.Composer\IO\IOInter
71d20 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 face;.use.Composer\Config;.use.C
71d40 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 omposer\Downloader\TransportExce
71d60 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 46 69 6c ption;.use.Composer\Json\JsonFil
71d80 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 69 74 48 75 62 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 e;.....class.GitHub.{.protected.
71da0 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6e 66 69 67 3b 0a 70 72 6f 74 65 63 74 65 $io;.protected.$config;.protecte
71dc0 64 20 24 70 72 6f 63 65 73 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 72 65 6d 6f 74 65 46 69 6c d.$process;.protected.$remoteFil
71de0 65 73 79 73 74 65 6d 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 esystem;..........public.functio
71e00 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 n.__construct(IOInterface.$io,.C
71e20 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 24 onfig.$config,.ProcessExecutor.$
71e40 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d process.=.null,.RemoteFilesystem
71e60 20 24 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 .$remoteFilesystem.=.null).{.$th
71e80 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 is->io.=.$io;.$this->config.=.$c
71ea0 6f 6e 66 69 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 onfig;.$this->process.=.$process
71ec0 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 3b 0a 24 74 68 69 73 2d 3e .?:.new.ProcessExecutor;.$this->
71ee0 72 65 6d 6f 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 remoteFilesystem.=.$remoteFilesy
71f00 73 74 65 6d 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 stem.?:.new.RemoteFilesystem($io
71f20 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 68 );.}........public.function.auth
71f40 6f 72 69 7a 65 4f 41 75 74 68 28 24 6f 72 69 67 69 6e 55 72 6c 29 0a 7b 0a 69 66 20 28 21 69 6e orizeOAuth($originUrl).{.if.(!in
71f60 5f 61 72 72 61 79 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 _array($originUrl,.$this->config
71f80 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 64 6f 6d 61 69 6e 73 27 29 29 29 20 7b 0a 72 65 74 75 ->get('github-domains'))).{.retu
71fa0 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e rn.false;.}....if.(0.===.$this->
71fc0 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 65 28 27 67 69 74 20 63 6f 6e 66 69 67 20 67 69 74 process->execute('git.config.git
71fe0 68 75 62 2e 61 63 63 65 73 73 74 6f 6b 65 6e 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 74 hub.accesstoken',.$output)).{.$t
72000 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 his->io->setAuthentication($orig
72020 69 6e 55 72 6c 2c 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 2c 20 27 78 2d 6f 61 75 74 68 2d 62 inUrl,.trim($output),.'x-oauth-b
72040 61 73 69 63 27 29 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 asic');..return.true;.}..return.
72060 66 61 6c 73 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 false;.}...........public.functi
72080 6f 6e 20 61 75 74 68 6f 72 69 7a 65 4f 41 75 74 68 49 6e 74 65 72 61 63 74 69 76 65 6c 79 28 24 on.authorizeOAuthInteractively($
720a0 6f 72 69 67 69 6e 55 72 6c 2c 20 24 6d 65 73 73 61 67 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 61 originUrl,.$message.=.null).{.$a
720c0 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 24 61 70 69 55 72 6c 20 3d 20 28 27 ttemptCounter.=.0;..$apiUrl.=.('
720e0 67 69 74 68 75 62 2e 63 6f 6d 27 20 3d 3d 3d 20 24 6f 72 69 67 69 6e 55 72 6c 29 20 3f 20 27 61 github.com'.===.$originUrl).?.'a
72100 70 69 2e 67 69 74 68 75 62 2e 63 6f 6d 27 20 3a 20 24 6f 72 69 67 69 6e 55 72 6c 20 2e 20 27 2f pi.github.com'.:.$originUrl...'/
72120 61 70 69 2f 76 33 27 3b 0a 0a 69 66 20 28 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 74 68 69 73 2d api/v3';..if.($message).{.$this-
72140 3e 69 6f 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 69 >io->write($message);.}.$this->i
72160 6f 2d 3e 77 72 69 74 65 28 27 54 68 65 20 63 72 65 64 65 6e 74 69 61 6c 73 20 77 69 6c 6c 20 62 o->write('The.credentials.will.b
72180 65 20 73 77 61 70 70 65 64 20 66 6f 72 20 61 6e 20 4f 41 75 74 68 20 74 6f 6b 65 6e 20 73 74 6f e.swapped.for.an.OAuth.token.sto
721a0 72 65 64 20 69 6e 20 27 2e 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d red.in.'.$this->config->get('hom
721c0 65 27 29 2e 27 2f 63 6f 6e 66 69 67 2e 6a 73 6f 6e 2c 20 79 6f 75 72 20 70 61 73 73 77 6f 72 64 e').'/config.json,.your.password
721e0 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 73 74 6f 72 65 64 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f .will.not.be.stored');.$this->io
72200 2d 3e 77 72 69 74 65 28 27 54 6f 20 72 65 76 6f 6b 65 20 61 63 63 65 73 73 20 74 6f 20 74 68 69 ->write('To.revoke.access.to.thi
72220 73 20 74 6f 6b 65 6e 20 79 6f 75 20 63 61 6e 20 76 69 73 69 74 20 68 74 74 70 73 3a 2f 2f 67 69 s.token.you.can.visit.https://gi
72240 74 68 75 62 2e 63 6f 6d 2f 73 65 74 74 69 6e 67 73 2f 61 70 70 6c 69 63 61 74 69 6f 6e 73 27 29 thub.com/settings/applications')
72260 3b 0a 77 68 69 6c 65 20 28 24 61 74 74 65 6d 70 74 43 6f 75 6e 74 65 72 2b 2b 20 3c 20 35 29 20 ;.while.($attemptCounter++.<.5).
72280 7b 0a 74 72 79 20 7b 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 {.try.{.$username.=.$this->io->a
722a0 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
722c0 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
722e0 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 65 6e 74 69 63 ord:.');.$this->io->setAuthentic
72300 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 75 73 65 72 6e 61 6d 65 2c 20 24 70 61 ation($originUrl,.$username,.$pa
72320 73 73 77 6f 72 64 29 3b 0a 0a 0a 20 24 61 70 70 4e 61 6d 65 20 3d 20 27 43 6f 6d 70 6f 73 65 72 ssword);....$appName.=.'Composer
72340 27 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 ';.if.(0.===.$this->process->exe
72360 63 75 74 65 28 27 68 6f 73 74 6e 61 6d 65 27 2c 20 24 6f 75 74 70 75 74 29 29 20 7b 0a 24 61 70 cute('hostname',.$output)).{.$ap
72380 70 4e 61 6d 65 20 2e 3d 20 27 20 6f 6e 20 27 20 2e 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b pName..=.'.on.'...trim($output);
723a0 0a 7d 0a 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 4a 73 6f 6e 46 69 6c 65 3a 3a 70 61 72 73 65 4a .}..$contents.=.JsonFile::parseJ
723c0 73 6f 6e 28 24 74 68 69 73 2d 3e 72 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 2d 3e 67 65 74 son($this->remoteFilesystem->get
723e0 43 6f 6e 74 65 6e 74 73 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 27 68 74 74 70 73 3a 2f 2f 27 2e Contents($originUrl,.'https://'.
72400 20 24 61 70 69 55 72 6c 20 2e 20 27 2f 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 73 27 2c 20 66 61 .$apiUrl...'/authorizations',.fa
72420 6c 73 65 2c 20 61 72 72 61 79 28 0a 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 0a 27 6d 65 lse,.array(.'http'.=>.array(.'me
72440 74 68 6f 64 27 20 3d 3e 20 27 50 4f 53 54 27 2c 0a 27 66 6f 6c 6c 6f 77 5f 6c 6f 63 61 74 69 6f thod'.=>.'POST',.'follow_locatio
72460 6e 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 22 43 6f 6e 74 65 6e n'.=>.false,.'header'.=>."Conten
72480 74 2d 54 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 5c 72 5c 6e 22 2c 0a 27 t-Type:.application/json\r\n",.'
724a0 63 6f 6e 74 65 6e 74 27 20 3d 3e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 61 72 72 61 79 28 0a 27 content'.=>.json_encode(array(.'
724c0 73 63 6f 70 65 73 27 20 3d 3e 20 61 72 72 61 79 28 27 72 65 70 6f 27 29 2c 0a 27 6e 6f 74 65 27 scopes'.=>.array('repo'),.'note'
724e0 20 3d 3e 20 24 61 70 70 4e 61 6d 65 2c 0a 27 6e 6f 74 65 5f 75 72 6c 27 20 3d 3e 20 27 68 74 74 .=>.$appName,.'note_url'.=>.'htt
72500 70 73 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 27 2c 0a 29 29 2c 0a 29 0a 29 29 ps://getcomposer.org/',.)),.).))
72520 29 3b 0a 7d 20 63 61 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 );.}.catch.(TransportException.$
72540 65 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c e).{.if.(in_array($e->getCode(),
72560 20 61 72 72 61 79 28 34 30 33 2c 20 34 30 31 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e .array(403,.401))).{.$this->io->
72580 77 72 69 74 65 28 27 49 6e 76 61 6c 69 64 20 63 72 65 64 65 6e 74 69 61 6c 73 2e 27 29 3b 0a 63 write('Invalid.credentials.');.c
725a0 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e ontinue;.}..throw.$e;.}..$this->
725c0 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c io->setAuthentication($originUrl
725e0 2c 20 24 63 6f 6e 74 65 6e 74 73 5b 27 74 6f 6b 65 6e 27 5d 2c 20 27 78 2d 6f 61 75 74 68 2d 62 ,.$contents['token'],.'x-oauth-b
72600 61 73 69 63 27 29 3b 0a 0a 0a 20 24 67 69 74 68 75 62 54 6f 6b 65 6e 73 20 3d 20 24 74 68 69 73 asic');....$githubTokens.=.$this
72620 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 29 20 3f 3a ->config->get('github-oauth').?:
72640 20 61 72 72 61 79 28 29 3b 0a 24 67 69 74 68 75 62 54 6f 6b 65 6e 73 5b 24 6f 72 69 67 69 6e 55 .array();.$githubTokens[$originU
72660 72 6c 5d 20 3d 20 24 63 6f 6e 74 65 6e 74 73 5b 27 74 6f 6b 65 6e 27 5d 3b 0a 24 74 68 69 73 2d rl].=.$contents['token'];.$this-
72680 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 2d 3e 61 64 64 43 >config->getConfigSource()->addC
726a0 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 2c 20 24 67 69 onfigSetting('github-oauth',.$gi
726c0 74 68 75 62 54 6f 6b 65 6e 73 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 74 68 thubTokens);..return.true;.}..th
726e0 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 49 6e 76 61 6c row.new.\RuntimeException("Inval
72700 69 64 20 47 69 74 48 75 62 20 63 72 65 64 65 6e 74 69 61 6c 73 20 35 20 74 69 6d 65 73 20 69 6e id.GitHub.credentials.5.times.in
72720 20 61 20 72 6f 77 2c 20 61 62 6f 72 74 69 6e 67 2e 22 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a .a.row,.aborting.");.}.}.<?php..
72740 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
72760 6c 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 61 63 65 3b l;..use.Composer\IO\IOInterface;
72780 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
727a0 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 65 72 66 6f 72 63 65 0a 7b 0a 70 72 6f rocess;.....class.Perforce.{.pro
727c0 74 65 63 74 65 64 20 24 70 61 74 68 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 44 65 70 6f 74 tected.$path;.protected.$p4Depot
727e0 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 43 6c 69 65 6e 74 3b 0a 70 72 6f 74 65 63 74 65 64 ;.protected.$p4Client;.protected
72800 20 24 70 34 55 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 50 61 73 73 77 6f 72 64 3b .$p4User;.protected.$p4Password;
72820 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 50 6f 72 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 .protected.$p4Port;.protected.$p
72840 34 53 74 72 65 61 6d 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 43 6c 69 65 6e 74 53 70 65 63 4Stream;.protected.$p4ClientSpec
72860 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 34 44 65 70 6f 74 54 79 70 65 3b 0a 70 72 6f 74 65 63 ;.protected.$p4DepotType;.protec
72880 74 65 64 20 24 70 34 42 72 61 6e 63 68 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 ted.$p4Branch;.protected.$proces
728a0 73 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 75 6e 69 71 75 65 50 65 72 66 6f 72 63 65 43 6c 69 65 s;.protected.$uniquePerforceClie
728c0 6e 74 4e 61 6d 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 77 69 6e 64 6f 77 73 46 6c 61 67 3b 0a ntName;.protected.$windowsFlag;.
728e0 70 72 6f 74 65 63 74 65 64 20 24 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 3b 0a 0a 70 75 62 6c 69 protected.$commandResult;..publi
72900 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 65 70 6f 43 6f 6e 66 c.function.__construct($repoConf
72920 69 67 2c 20 24 70 6f 72 74 2c 20 24 70 61 74 68 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f ig,.$port,.$path,.ProcessExecuto
72940 72 20 24 70 72 6f 63 65 73 73 2c 20 24 69 73 57 69 6e 64 6f 77 73 29 0a 7b 0a 24 74 68 69 73 2d r.$process,.$isWindows).{.$this-
72960 3e 77 69 6e 64 6f 77 73 46 6c 61 67 20 3d 20 24 69 73 57 69 6e 64 6f 77 73 3b 0a 24 74 68 69 73 >windowsFlag.=.$isWindows;.$this
72980 2d 3e 70 34 50 6f 72 74 20 3d 20 24 70 6f 72 74 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c ->p4Port.=.$port;.$this->initial
729a0 69 7a 65 50 61 74 68 28 24 70 61 74 68 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d izePath($path);.$this->process.=
729c0 20 24 70 72 6f 63 65 73 73 3b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 24 72 65 .$process;.$this->initialize($re
729e0 70 6f 43 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 poConfig);.}..public.static.func
72a00 74 69 6f 6e 20 63 72 65 61 74 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 70 6f 72 74 2c 20 tion.create($repoConfig,.$port,.
72a20 24 70 61 74 68 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 $path,.ProcessExecutor.$process.
72a40 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 70 72 6f 63 65 73 73 29 29 20 =.null).{.if.(!isset($process)).
72a60 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 75 74 6f 72 {.$process.=.new.ProcessExecutor
72a80 3b 0a 7d 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 ;.}.$isWindows.=.defined('PHP_WI
72aa0 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 3b 0a 0a 24 70 65 72 66 6f 72 63 NDOWS_VERSION_BUILD');..$perforc
72ac0 65 20 3d 20 6e 65 77 20 50 65 72 66 6f 72 63 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 2c 20 24 70 e.=.new.Perforce($repoConfig,.$p
72ae0 6f 72 74 2c 20 24 70 61 74 68 2c 20 24 70 72 6f 63 65 73 73 2c 20 24 69 73 57 69 6e 64 6f 77 73 ort,.$path,.$process,.$isWindows
72b00 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 65 72 66 6f 72 63 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 );..return.$perforce;.}..public.
72b20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 28 24 72 65 70 6f 43 6f 6e 66 69 67 29 function.initialize($repoConfig)
72b40 0a 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 71 75 65 50 65 72 66 6f 72 63 65 43 6c 69 65 6e 74 4e 61 .{.$this->uniquePerforceClientNa
72b60 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 71 75 65 50 65 72 66 6f 72 me.=.$this->generateUniquePerfor
72b80 63 65 43 6c 69 65 6e 74 4e 61 6d 65 28 29 3b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 20 24 72 65 70 ceClientName();.if.(null.==.$rep
72ba0 6f 43 6f 6e 66 69 67 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 oConfig).{.return;.}.if.(isset($
72bc0 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 6e 69 71 75 65 5f 70 65 72 66 6f 72 63 65 5f 63 6c 69 65 repoConfig['unique_perforce_clie
72be0 6e 74 5f 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 75 6e 69 71 75 65 50 65 72 66 6f nt_name'])).{.$this->uniquePerfo
72c00 72 63 65 43 6c 69 65 6e 74 4e 61 6d 65 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 75 6e 69 rceClientName.=.$repoConfig['uni
72c20 71 75 65 5f 70 65 72 66 6f 72 63 65 5f 63 6c 69 65 6e 74 5f 6e 61 6d 65 27 5d 3b 0a 7d 0a 0a 69 que_perforce_client_name'];.}..i
72c40 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 64 65 70 6f 74 27 5d 29 29 20 f.(isset($repoConfig['depot'])).
72c60 7b 0a 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 {.$this->p4Depot.=.$repoConfig['
72c80 64 65 70 6f 74 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 depot'];.}.if.(isset($repoConfig
72ca0 5b 27 62 72 61 6e 63 68 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 20 3d ['branch'])).{.$this->p4Branch.=
72cc0 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 62 72 61 6e 63 68 27 5d 3b 0a 7d 0a 69 66 20 28 69 73 .$repoConfig['branch'];.}.if.(is
72ce0 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 34 75 73 65 72 27 5d 29 29 20 7b 0a 24 74 set($repoConfig['p4user'])).{.$t
72d00 68 69 73 2d 3e 70 34 55 73 65 72 20 3d 20 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 34 75 73 65 his->p4User.=.$repoConfig['p4use
72d20 72 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 34 55 73 65 72 20 3d 20 24 74 r'];.}.else.{.$this->p4User.=.$t
72d40 68 69 73 2d 3e 67 65 74 50 34 76 61 72 69 61 62 6c 65 28 27 50 34 55 53 45 52 27 29 3b 0a 7d 0a his->getP4variable('P4USER');.}.
72d60 69 66 20 28 69 73 73 65 74 28 24 72 65 70 6f 43 6f 6e 66 69 67 5b 27 70 34 70 61 73 73 77 6f 72 if.(isset($repoConfig['p4passwor
72d80 64 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 50 61 73 73 77 6f 72 64 20 3d 20 24 72 65 70 d'])).{.$this->p4Password.=.$rep
72da0 6f 43 6f 6e 66 69 67 5b 27 70 34 70 61 73 73 77 6f 72 64 27 5d 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c oConfig['p4password'];.}.}..publ
72dc0 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 44 65 70 6f 74 41 6e 64 42 72 ic.function.initializeDepotAndBr
72de0 61 6e 63 68 28 24 64 65 70 6f 74 2c 20 24 62 72 61 6e 63 68 29 0a 7b 0a 69 66 20 28 69 73 73 65 anch($depot,.$branch).{.if.(isse
72e00 74 28 24 64 65 70 6f 74 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 20 3d 20 24 64 t($depot)).{.$this->p4Depot.=.$d
72e20 65 70 6f 74 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 62 72 61 6e 63 68 29 29 20 7b 0a 24 74 epot;.}.if.(isset($branch)).{.$t
72e40 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 20 3d 20 24 62 72 61 6e 63 68 3b 0a 7d 0a 7d 0a 0a 70 75 his->p4Branch.=.$branch;.}.}..pu
72e60 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 55 6e 69 71 75 65 50 65 72 66 blic.function.generateUniquePerf
72e80 6f 72 63 65 43 6c 69 65 6e 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 67 65 74 68 6f 73 orceClientName().{.return.gethos
72ea0 74 6e 61 6d 65 28 29 20 2e 20 22 5f 22 20 2e 20 74 69 6d 65 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 tname()..."_"...time();.}..publi
72ec0 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 43 6c 69 65 6e 74 53 70 65 63 28 29 0a 7b c.function.cleanupClientSpec().{
72ee0 0a 24 63 6c 69 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 29 3b 0a 24 .$client.=.$this->getClient();.$
72f00 63 6f 6d 6d 61 6e 64 20 3d 20 27 70 34 20 63 6c 69 65 6e 74 20 2d 64 20 24 63 6c 69 65 6e 74 27 command.=.'p4.client.-d.$client'
72f20 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 ;.$this->executeCommand($command
72f40 29 3b 0a 24 63 6c 69 65 6e 74 53 70 65 63 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 34 43 6c 69 );.$clientSpec.=.$this->getP4Cli
72f60 65 6e 74 53 70 65 63 28 29 3b 0a 24 66 69 6c 65 53 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c entSpec();.$fileSystem.=.new.Fil
72f80 65 53 79 73 74 65 6d 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 24 66 69 6c 65 53 79 eSystem($this->process);.$fileSy
72fa0 73 74 65 6d 2d 3e 72 65 6d 6f 76 65 28 24 63 6c 69 65 6e 74 53 70 65 63 29 3b 0a 7d 0a 0a 70 72 stem->remove($clientSpec);.}..pr
72fc0 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 otected.function.executeCommand(
72fe0 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 $command).{.$this->commandResult
73000 20 3d 20 22 22 3b 0a 24 65 78 69 74 5f 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 .=."";.$exit_code.=.$this->proce
73020 73 73 2d 3e 65 78 65 63 75 74 65 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 74 68 69 73 2d 3e 63 6f 6d ss->execute($command,.$this->com
73040 6d 61 6e 64 52 65 73 75 6c 74 29 3b 0a 72 65 74 75 72 6e 20 24 65 78 69 74 5f 63 6f 64 65 3b 0a mandResult);.return.$exit_code;.
73060 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6c 69 65 6e 74 28 29 0a 7b }..public.function.getClient().{
73080 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 34 43 6c 69 65 6e 74 29 29 20 7b 0a .if.(!isset($this->p4Client)).{.
730a0 24 63 6c 65 61 6e 53 74 72 65 61 6d 4e 61 6d 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 $cleanStreamName.=.str_replace('
730c0 40 27 2c 20 27 27 2c 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 5f 27 2c 20 73 74 @',.'',.str_replace('/',.'_',.st
730e0 72 5f 72 65 70 6c 61 63 65 28 27 2f 2f 27 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 74 r_replace('//',.'',.$this->getSt
73100 72 65 61 6d 28 29 29 29 29 3b 0a 24 74 68 69 73 2d 3e 70 34 43 6c 69 65 6e 74 20 3d 20 27 63 6f ream())));.$this->p4Client.=.'co
73120 6d 70 6f 73 65 72 5f 70 65 72 66 6f 72 63 65 5f 27 20 2e 20 24 74 68 69 73 2d 3e 75 6e 69 71 75 mposer_perforce_'...$this->uniqu
73140 65 50 65 72 66 6f 72 63 65 43 6c 69 65 6e 74 4e 61 6d 65 20 2e 20 27 5f 27 20 2e 20 24 63 6c 65 ePerforceClientName...'_'...$cle
73160 61 6e 53 74 72 65 61 6d 4e 61 6d 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 anStreamName;.}..return.$this->p
73180 34 43 6c 69 65 6e 74 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 4Client;.}..protected.function.g
731a0 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 74 68 3b 0a 7d etPath().{.return.$this->path;.}
731c0 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 50 61 74 68 ..public.function.initializePath
731e0 28 24 70 61 74 68 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 24 ($path).{.$this->path.=.$path;.$
73200 66 73 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d 28 29 3b 0a 24 66 73 2d 3e 65 6e 73 75 fs.=.new.Filesystem();.$fs->ensu
73220 72 65 44 69 72 65 63 74 6f 72 79 45 78 69 73 74 73 28 24 70 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f reDirectoryExists($path);.}..pro
73240 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 6f 72 74 28 29 0a 7b 0a 72 65 74 75 tected.function.getPort().{.retu
73260 72 6e 20 24 74 68 69 73 2d 3e 70 34 50 6f 72 74 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 rn.$this->p4Port;.}..public.func
73280 74 69 6f 6e 20 73 65 74 53 74 72 65 61 6d 28 24 73 74 72 65 61 6d 29 0a 7b 0a 24 74 68 69 73 2d tion.setStream($stream).{.$this-
732a0 3e 70 34 53 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 24 69 6e 64 65 78 20 3d 20 73 74 >p4Stream.=.$stream;.$index.=.st
732c0 72 72 70 6f 73 28 24 73 74 72 65 61 6d 2c 20 27 2f 27 29 3b 0a 0a 20 69 66 20 28 24 69 6e 64 65 rrpos($stream,.'/');...if.($inde
732e0 78 20 3e 20 32 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 54 79 70 65 20 3d 20 27 73 x.>.2).{.$this->p4DepotType.=.'s
73300 74 72 65 61 6d 27 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 tream';.}.}..public.function.isS
73320 74 72 65 61 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 73 74 72 63 6d 70 28 24 74 68 69 73 2d 3e tream().{.return.(strcmp($this->
73340 70 34 44 65 70 6f 74 54 79 70 65 2c 20 27 73 74 72 65 61 6d 27 29 20 3d 3d 3d 20 30 29 3b 0a 7d p4DepotType,.'stream').===.0);.}
73360 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 72 65 61 6d 28 29 0a 7b 0a ..public.function.getStream().{.
73380 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 34 53 74 72 65 61 6d 29 29 20 7b 0a 69 if.(!isset($this->p4Stream)).{.i
733a0 66 20 28 24 74 68 69 73 2d 3e 69 73 53 74 72 65 61 6d 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 f.($this->isStream()).{.$this->p
733c0 34 53 74 72 65 61 6d 20 3d 20 27 2f 2f 27 20 2e 20 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 20 4Stream.=.'//'...$this->p4Depot.
733e0 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 3b 0a 7d 20 65 6c 73 65 20 ..'/'...$this->p4Branch;.}.else.
73400 7b 0a 24 74 68 69 73 2d 3e 70 34 53 74 72 65 61 6d 20 3d 20 27 2f 2f 27 20 2e 20 24 74 68 69 73 {.$this->p4Stream.=.'//'...$this
73420 2d 3e 70 34 44 65 70 6f 74 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 34 ->p4Depot;.}.}..return.$this->p4
73440 53 74 72 65 61 6d 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 Stream;.}..public.function.getSt
73460 72 65 61 6d 57 69 74 68 6f 75 74 4c 61 62 65 6c 28 24 73 74 72 65 61 6d 29 0a 7b 0a 24 69 6e 64 reamWithoutLabel($stream).{.$ind
73480 65 78 20 3d 20 73 74 72 70 6f 73 28 24 73 74 72 65 61 6d 2c 20 27 40 27 29 3b 0a 69 66 20 28 24 ex.=.strpos($stream,.'@');.if.($
734a0 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 73 74 72 65 61 index.===.false).{.return.$strea
734c0 6d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 75 62 73 74 72 28 24 73 74 72 65 61 6d 2c 20 30 2c 20 m;.}..return.substr($stream,.0,.
734e0 24 69 6e 64 65 78 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 $index);.}..public.function.getP
73500 34 43 6c 69 65 6e 74 53 70 65 63 28 29 0a 7b 0a 24 70 34 63 6c 69 65 6e 74 53 70 65 63 20 3d 20 4ClientSpec().{.$p4clientSpec.=.
73520 24 74 68 69 73 2d 3e 70 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 43 6c $this->path...'/'...$this->getCl
73540 69 65 6e 74 28 29 20 2e 20 27 2e 70 34 2e 73 70 65 63 27 3b 0a 0a 72 65 74 75 72 6e 20 24 70 34 ient()...'.p4.spec';..return.$p4
73560 63 6c 69 65 6e 74 53 70 65 63 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 clientSpec;.}..public.function.g
73580 65 74 55 73 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 34 55 73 65 72 3b etUser().{.return.$this->p4User;
735a0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 71 75 65 72 79 50 34 55 73 65 72 28 .}..public.function.queryP4User(
735c0 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 67 65 74 55 73 65 IOInterface.$io).{.$this->getUse
735e0 72 28 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 70 34 55 73 65 72 29 20 3e r();.if.(strlen($this->p4User).>
73600 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 34 55 73 65 72 20 3d 20 .0).{.return;.}.$this->p4User.=.
73620 24 74 68 69 73 2d 3e 67 65 74 50 34 76 61 72 69 61 62 6c 65 28 27 50 34 55 53 45 52 27 29 3b 0a $this->getP4variable('P4USER');.
73640 69 66 20 28 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 70 34 55 73 65 72 29 20 3e 20 30 29 20 7b if.(strlen($this->p4User).>.0).{
73660 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 34 55 73 65 72 20 3d 20 24 69 6f 2d 3e .return;.}.$this->p4User.=.$io->
73680 61 73 6b 28 27 45 6e 74 65 72 20 50 34 20 55 73 65 72 3a 27 29 3b 0a 69 66 20 28 24 74 68 69 73 ask('Enter.P4.User:');.if.($this
736a0 2d 3e 77 69 6e 64 6f 77 73 46 6c 61 67 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 70 34 20 ->windowsFlag).{.$command.=.'p4.
736c0 73 65 74 20 50 34 55 53 45 52 3d 27 20 2e 20 24 74 68 69 73 2d 3e 70 34 55 73 65 72 3b 0a 7d 20 set.P4USER='...$this->p4User;.}.
736e0 65 6c 73 65 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 65 78 70 6f 72 74 20 50 34 55 53 45 52 else.{.$command.=.'export.P4USER
73700 3d 27 20 2e 20 24 74 68 69 73 2d 3e 70 34 55 73 65 72 3b 0a 7d 0a 24 74 68 69 73 2d 3e 65 78 65 ='...$this->p4User;.}.$this->exe
73720 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 cuteCommand($command);.}..protec
73740 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 34 76 61 72 69 61 62 6c 65 28 24 6e 61 6d 65 ted.function.getP4variable($name
73760 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 69 6e 64 6f 77 73 46 6c 61 67 29 20 7b 0a 24 63 ).{.if.($this->windowsFlag).{.$c
73780 6f 6d 6d 61 6e 64 20 3d 20 27 70 34 20 73 65 74 27 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 ommand.=.'p4.set';.$this->execut
737a0 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 74 72 eCommand($command);.$result.=.tr
737c0 69 6d 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 29 3b 0a 24 72 65 73 41 72 im($this->commandResult);.$resAr
737e0 72 61 79 20 3d 20 65 78 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c 20 24 72 65 73 75 6c 74 29 3b ray.=.explode(PHP_EOL,.$result);
73800 0a 66 6f 72 65 61 63 68 20 28 24 72 65 73 41 72 72 61 79 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a .foreach.($resArray.as.$line).{.
73820 24 66 69 65 6c 64 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3d 27 2c 20 24 6c 69 6e 65 29 3b 0a 69 $fields.=.explode('=',.$line);.i
73840 66 20 28 73 74 72 63 6d 70 28 24 6e 61 6d 65 2c 20 24 66 69 65 6c 64 73 5b 30 5d 29 20 3d 3d 20 f.(strcmp($name,.$fields[0]).==.
73860 30 29 20 7b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 66 69 65 6c 64 73 5b 31 5d 2c 0).{.$index.=.strpos($fields[1],
73880 20 27 20 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 .'.');.if.($index.===.false).{.$
738a0 76 61 6c 75 65 20 3d 20 24 66 69 65 6c 64 73 5b 31 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 61 value.=.$fields[1];.}.else.{.$va
738c0 6c 75 65 20 3d 20 73 75 62 73 74 72 28 24 66 69 65 6c 64 73 5b 31 5d 2c 20 30 2c 20 24 69 6e 64 lue.=.substr($fields[1],.0,.$ind
738e0 65 78 29 3b 0a 7d 0a 24 76 61 6c 75 65 20 3d 20 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a 0a 72 ex);.}.$value.=.trim($value);..r
73900 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 6d eturn.$value;.}.}.}.else.{.$comm
73920 61 6e 64 20 3d 20 27 65 63 68 6f 20 24 27 20 2e 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 65 and.=.'echo.$'...$name;.$this->e
73940 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 xecuteCommand($command);.$result
73960 20 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 29 3b 0a 72 .=.trim($this->commandResult);.r
73980 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 eturn.$result;.}.}..public.funct
739a0 69 6f 6e 20 71 75 65 72 79 50 34 50 61 73 73 77 6f 72 64 28 49 4f 49 6e 74 65 72 66 61 63 65 20 ion.queryP4Password(IOInterface.
739c0 24 69 6f 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 34 50 61 73 73 77 6f $io).{.if.(isset($this->p4Passwo
739e0 72 64 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 34 50 61 73 73 77 6f 72 64 3b rd)).{.return.$this->p4Password;
73a00 0a 7d 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 34 76 61 72 69 61 .}.$password.=.$this->getP4varia
73a20 62 6c 65 28 27 50 34 50 41 53 53 57 44 27 29 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 70 61 73 ble('P4PASSWD');.if.(strlen($pas
73a40 73 77 6f 72 64 29 20 3c 3d 20 30 29 20 7b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 69 6f 2d 3e sword).<=.0).{.$password.=.$io->
73a60 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 45 6e 74 65 72 20 70 61 73 73 77 6f 72 64 askAndHideAnswer('Enter.password
73a80 20 66 6f 72 20 50 65 72 66 6f 72 63 65 20 75 73 65 72 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 .for.Perforce.user.'...$this->ge
73aa0 74 55 73 65 72 28 29 20 2e 20 27 3a 20 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 34 50 61 73 73 tUser()...':.');.}.$this->p4Pass
73ac0 77 6f 72 64 20 3d 20 24 70 61 73 73 77 6f 72 64 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 73 73 77 word.=.$password;..return.$passw
73ae0 6f 72 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 ord;.}..public.function.generate
73b00 50 34 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 75 73 65 43 6c 69 65 6e 74 20 3d P4Command($command,.$useClient.=
73b20 20 74 72 75 65 29 0a 7b 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 27 70 34 20 27 3b 0a 24 70 34 .true).{.$p4Command.=.'p4.';.$p4
73b40 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 43 6f 6d 6d 61 6e 64 20 2e 20 27 2d 75 20 27 20 2e 20 24 Command.=.$p4Command...'-u.'...$
73b60 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 20 2e 20 27 20 27 3b 0a 69 66 20 28 24 75 73 65 43 this->getUser()...'.';.if.($useC
73b80 6c 69 65 6e 74 29 20 7b 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 43 6f 6d 6d 61 6e 64 lient).{.$p4Command.=.$p4Command
73ba0 20 2e 20 27 2d 63 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 29 20 2e 20 ...'-c.'...$this->getClient()...
73bc0 27 20 27 3b 0a 7d 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 43 6f 6d 6d 61 6e 64 20 2e '.';.}.$p4Command.=.$p4Command..
73be0 20 27 2d 70 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 50 6f 72 74 28 29 20 2e 20 27 20 27 3b .'-p.'...$this->getPort()...'.';
73c00 0a 24 70 34 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 43 6f 6d 6d 61 6e 64 20 2e 20 24 63 6f 6d 6d .$p4Command.=.$p4Command...$comm
73c20 61 6e 64 3b 0a 0a 72 65 74 75 72 6e 20 24 70 34 43 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 70 75 62 6c and;..return.$p4Command;.}..publ
73c40 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 4c 6f 67 67 65 64 49 6e 28 29 0a 7b 0a 24 63 6f 6d 6d ic.function.isLoggedIn().{.$comm
73c60 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 and.=.$this->generateP4Command('
73c80 6c 6f 67 69 6e 20 2d 73 27 2c 20 66 61 6c 73 65 29 3b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 24 login.-s',.false);.$exitCode.=.$
73ca0 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a this->executeCommand($command);.
73cc0 69 66 20 28 24 65 78 69 74 43 6f 64 65 29 7b 0a 24 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 24 if.($exitCode){.$errorOutput.=.$
73ce0 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();
73d00 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 65 72 72 6f 72 4f 75 74 70 75 74 2c 20 24 .$index.=.strpos($errorOutput,.$
73d20 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 3d 3d 3d this->getUser());.if.($index.===
73d40 20 66 61 6c 73 65 29 7b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 65 72 72 6f 72 4f .false){.$index.=.strpos($errorO
73d60 75 74 70 75 74 2c 20 27 70 34 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 3d 3d 3d 66 61 6c 73 65 utput,.'p4');.if.($index===false
73d80 29 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 ){.return.false;.}.throw.new.\Ex
73da0 63 65 70 74 69 6f 6e 28 27 70 34 20 63 6f 6d 6d 61 6e 64 20 6e 6f 74 20 66 6f 75 6e 64 20 69 6e ception('p4.command.not.found.in
73dc0 20 70 61 74 68 3a 20 27 20 2e 20 24 65 72 72 6f 72 4f 75 74 70 75 74 29 3b 0a 7d 0a 74 68 72 6f .path:.'...$errorOutput);.}.thro
73de0 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 75 73 65 72 20 6e w.new.\Exception('Invalid.user.n
73e00 61 6d 65 3a 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 20 29 3b 0a 7d 0a 72 ame:.'...$this->getUser().);.}.r
73e20 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 eturn.true;.}..public.function.c
73e40 6f 6e 6e 65 63 74 43 6c 69 65 6e 74 28 29 0a 7b 0a 24 70 34 43 72 65 61 74 65 43 6c 69 65 6e 74 onnectClient().{.$p4CreateClient
73e60 43 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 Command.=.$this->generateP4Comma
73e80 6e 64 28 27 63 6c 69 65 6e 74 20 2d 69 20 3c 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 50 34 nd('client.-i.<.'...$this->getP4
73ea0 43 6c 69 65 6e 74 53 70 65 63 28 29 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d ClientSpec());.$this->executeCom
73ec0 6d 61 6e 64 28 24 70 34 43 72 65 61 74 65 43 6c 69 65 6e 74 43 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a mand($p4CreateClientCommand);.}.
73ee0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 79 6e 63 43 6f 64 65 42 61 73 65 28 24 6c .public.function.syncCodeBase($l
73f00 61 62 65 6c 29 0a 7b 0a 24 70 72 65 76 44 69 72 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 63 68 64 abel).{.$prevDir.=.getcwd();.chd
73f20 69 72 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 0a 24 70 34 53 79 6e 63 43 6f 6d 6d 61 6e 64 ir($this->path);..$p4SyncCommand
73f40 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 73 79 6e .=.$this->generateP4Command('syn
73f60 63 20 2d 66 20 27 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6c 61 62 65 6c 29 29 20 7b 0a 69 66 c.-f.');.if.(isset($label)).{.if
73f80 20 28 73 74 72 63 6d 70 28 24 6c 61 62 65 6c 2c 20 27 64 65 76 2d 6d 61 73 74 65 72 27 29 20 21 .(strcmp($label,.'dev-master').!
73fa0 3d 20 30 29 20 7b 0a 24 70 34 53 79 6e 63 43 6f 6d 6d 61 6e 64 20 3d 20 24 70 34 53 79 6e 63 43 =.0).{.$p4SyncCommand.=.$p4SyncC
73fc0 6f 6d 6d 61 6e 64 20 2e 20 27 40 27 20 2e 20 24 6c 61 62 65 6c 3b 0a 7d 0a 7d 0a 24 74 68 69 73 ommand...'@'...$label;.}.}.$this
73fe0 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 70 34 53 79 6e 63 43 6f 6d 6d 61 6e 64 29 ->executeCommand($p4SyncCommand)
74000 3b 0a 0a 63 68 64 69 72 28 24 70 72 65 76 44 69 72 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 ;..chdir($prevDir);.}..public.fu
74020 6e 63 74 69 6f 6e 20 77 72 69 74 65 43 6c 69 65 6e 74 53 70 65 63 54 6f 46 69 6c 65 28 24 73 70 nction.writeClientSpecToFile($sp
74040 65 63 29 0a 7b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 43 6c 69 65 6e 74 3a 20 27 20 2e ec).{.fwrite($spec,.'Client:.'..
74060 20 24 74 68 69 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 29 20 2e 20 50 48 50 5f 45 4f 4c 20 2e 20 .$this->getClient()...PHP_EOL...
74080 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 55 70 64 61 74 65 3a PHP_EOL);.fwrite($spec,.'Update:
740a0 20 27 20 2e 20 64 61 74 65 28 27 59 2f 6d 2f 64 20 48 3a 69 3a 73 27 29 20 2e 20 50 48 50 5f 45 .'...date('Y/m/d.H:i:s')...PHP_E
740c0 4f 4c 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 41 63 OL...PHP_EOL);.fwrite($spec,.'Ac
740e0 63 65 73 73 3a 20 27 20 2e 20 64 61 74 65 28 27 59 2f 6d 2f 64 20 48 3a 69 3a 73 27 29 20 2e 20 cess:.'...date('Y/m/d.H:i:s')...
74100 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 4f 77 6e 65 72 3a 20 PHP_EOL);.fwrite($spec,.'Owner:.
74120 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 55 73 65 72 28 29 20 2e 20 50 48 50 5f 45 4f 4c 20 .'...$this->getUser()...PHP_EOL.
74140 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 44 65 73 63 72 ..PHP_EOL);.fwrite($spec,.'Descr
74160 69 70 74 69 6f 6e 3a 27 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 iption:'...PHP_EOL);.fwrite($spe
74180 63 2c 20 27 20 20 43 72 65 61 74 65 64 20 62 79 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 55 c,.'..Created.by.'...$this->getU
741a0 73 65 72 28 29 20 2e 20 27 20 66 72 6f 6d 20 63 6f 6d 70 6f 73 65 72 2e 27 20 2e 20 50 48 50 5f ser()...'.from.composer.'...PHP_
741c0 45 4f 4c 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 52 EOL...PHP_EOL);.fwrite($spec,.'R
741e0 6f 6f 74 3a 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 28 29 20 2e 20 50 48 50 5f oot:.'...$this->getPath()...PHP_
74200 45 4f 4c 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 4f EOL...PHP_EOL);.fwrite($spec,.'O
74220 70 74 69 6f 6e 73 3a 20 20 6e 6f 61 6c 6c 77 72 69 74 65 20 6e 6f 63 6c 6f 62 62 65 72 20 6e 6f ptions:..noallwrite.noclobber.no
74240 63 6f 6d 70 72 65 73 73 20 75 6e 6c 6f 63 6b 65 64 20 6d 6f 64 74 69 6d 65 20 72 6d 64 69 72 27 compress.unlocked.modtime.rmdir'
74260 20 2e 20 50 48 50 5f 45 4f 4c 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 ...PHP_EOL...PHP_EOL);.fwrite($s
74280 70 65 63 2c 20 27 53 75 62 6d 69 74 4f 70 74 69 6f 6e 73 3a 20 20 72 65 76 65 72 74 75 6e 63 68 pec,.'SubmitOptions:..revertunch
742a0 61 6e 67 65 64 27 20 2e 20 50 48 50 5f 45 4f 4c 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 anged'...PHP_EOL...PHP_EOL);.fwr
742c0 69 74 65 28 24 73 70 65 63 2c 20 27 4c 69 6e 65 45 6e 64 3a 20 20 6c 6f 63 61 6c 27 20 2e 20 50 ite($spec,.'LineEnd:..local'...P
742e0 48 50 5f 45 4f 4c 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 HP_EOL...PHP_EOL);.if.($this->is
74300 53 74 72 65 61 6d 28 29 29 20 7b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 53 74 72 65 61 Stream()).{.fwrite($spec,.'Strea
74320 6d 3a 27 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 66 77 72 69 74 65 28 24 73 70 65 63 2c 20 27 20 m:'...PHP_EOL);.fwrite($spec,.'.
74340 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 53 74 72 65 61 6d 57 69 74 68 6f 75 74 4c 61 62 65 .'...$this->getStreamWithoutLabe
74360 6c 28 24 74 68 69 73 2d 3e 70 34 53 74 72 65 61 6d 29 20 2e 20 50 48 50 5f 45 4f 4c 29 3b 0a 7d l($this->p4Stream)...PHP_EOL);.}
74380 20 65 6c 73 65 20 7b 0a 66 77 72 69 74 65 28 0a 24 73 70 65 63 2c 0a 27 56 69 65 77 3a 20 20 27 .else.{.fwrite(.$spec,.'View:..'
743a0 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 20 2e 20 27 2f 2e 2e 2e 20 20 2f ...$this->getStream()...'/...../
743c0 2f 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 43 6c 69 65 6e 74 28 29 20 2e 20 27 2f 2e 2e 2e 20 /'...$this->getClient()...'/....
743e0 27 20 2e 20 50 48 50 5f 45 4f 4c 0a 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 '...PHP_EOL.);.}.}..public.funct
74400 69 6f 6e 20 77 72 69 74 65 50 34 43 6c 69 65 6e 74 53 70 65 63 28 29 0a 7b 0a 24 63 6c 69 65 6e ion.writeP4ClientSpec().{.$clien
74420 74 53 70 65 63 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 34 43 6c 69 65 6e 74 53 70 65 63 28 29 tSpec.=.$this->getP4ClientSpec()
74440 3b 0a 24 73 70 65 63 20 3d 20 66 6f 70 65 6e 28 24 63 6c 69 65 6e 74 53 70 65 63 2c 20 27 77 27 ;.$spec.=.fopen($clientSpec,.'w'
74460 29 3b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 43 6c 69 65 6e 74 53 70 65 63 54 );.try.{.$this->writeClientSpecT
74480 6f 46 69 6c 65 28 24 73 70 65 63 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f oFile($spec);.}.catch.(\Exceptio
744a0 6e 20 24 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 73 70 65 63 29 3b 0a 74 68 72 6f 77 20 24 65 3b n.$e).{.fclose($spec);.throw.$e;
744c0 0a 7d 0a 66 63 6c 6f 73 65 28 24 73 70 65 63 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 .}.fclose($spec);.}..protected.f
744e0 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 70 69 70 65 2c 20 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 unction.read($pipe,.$name).{.if.
74500 28 66 65 6f 66 28 24 70 69 70 65 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6c 69 6e 65 20 (feof($pipe)).{.return;.}.$line.
74520 3d 20 66 67 65 74 73 28 24 70 69 70 65 29 3b 0a 77 68 69 6c 65 20 28 24 6c 69 6e 65 20 21 3d 20 =.fgets($pipe);.while.($line.!=.
74540 66 61 6c 73 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 24 70 69 70 65 29 3b 0a 7d false).{.$line.=.fgets($pipe);.}
74560 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 69 6e ..return;.}..public.function.win
74580 64 6f 77 73 4c 6f 67 69 6e 28 24 70 61 73 73 77 6f 72 64 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 dowsLogin($password).{.$command.
745a0 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 20 6c 6f 67 =.$this->generateP4Command('.log
745c0 69 6e 20 2d 61 27 29 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 in.-a');.$process.=.new.Process(
745e0 24 63 6f 6d 6d 61 6e 64 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 24 70 61 73 73 77 6f 72 64 29 $command,.null,.null,.$password)
74600 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 29 3b 0a 7d 0a 0a 70 75 ;..return.$process->run();.}..pu
74620 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 34 4c 6f 67 69 6e 28 49 4f 49 6e 74 65 72 66 61 63 blic.function.p4Login(IOInterfac
74640 65 20 24 69 6f 29 0a 7b 0a 24 74 68 69 73 2d 3e 71 75 65 72 79 50 34 55 73 65 72 28 24 69 6f 29 e.$io).{.$this->queryP4User($io)
74660 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 4c 6f 67 67 65 64 49 6e 28 29 29 20 7b 0a 24 70 ;.if.(!$this->isLoggedIn()).{.$p
74680 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 71 75 65 72 79 50 34 50 61 73 73 77 6f 72 64 assword.=.$this->queryP4Password
746a0 28 24 69 6f 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 77 69 6e 64 6f 77 73 46 6c 61 67 29 20 7b ($io);.if.($this->windowsFlag).{
746c0 0a 24 74 68 69 73 2d 3e 77 69 6e 64 6f 77 73 4c 6f 67 69 6e 28 24 70 61 73 73 77 6f 72 64 29 3b .$this->windowsLogin($password);
746e0 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 27 65 63 68 6f 20 27 20 2e 20 24 .}.else.{.$command.=.'echo.'...$
74700 70 61 73 73 77 6f 72 64 20 2e 20 27 20 7c 20 27 20 2e 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 password...'.|.'...$this->genera
74720 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 20 6c 6f 67 69 6e 20 2d 61 27 2c 20 66 61 6c 73 65 29 3b teP4Command('.login.-a',.false);
74740 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 .$exitCode.=.$this->executeComma
74760 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 74 72 69 6d 28 24 74 68 nd($command);.$result.=.trim($th
74780 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 29 3b 0a 69 66 20 28 24 65 78 69 74 43 6f 64 is->commandResult);.if.($exitCod
747a0 65 29 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f 6e 28 22 45 72 72 6f 72 20 e){.throw.new.\Exception("Error.
747c0 6c 6f 67 67 69 6e 67 20 69 6e 3a 22 20 2e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 67 logging.in:"...$this->process->g
747e0 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 etErrorOutput());.}.}.}.}..publi
74800 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 53 65 72 76 65 72 45 78 69 c.static.function.checkServerExi
74820 73 74 73 28 24 75 72 6c 2c 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 20 24 70 72 6f 63 65 sts($url,.ProcessExecutor.$proce
74840 73 73 45 78 65 63 75 74 6f 72 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 72 65 ssExecutor).{.$output.=.null;.re
74860 74 75 72 6e 20 30 20 3d 3d 3d 20 24 70 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 2d 3e 65 78 65 turn.0.===.$processExecutor->exe
74880 63 75 74 65 28 27 70 34 20 2d 70 20 27 20 2e 20 24 75 72 6c 20 2e 20 27 20 69 6e 66 6f 20 2d 73 cute('p4.-p.'...$url...'.info.-s
748a0 27 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ',.$output);.}..public.function.
748c0 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 28 24 69 64 65 6e 74 69 66 69 getComposerInformation($identifi
748e0 65 72 29 0a 7b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 69 64 65 6e 74 69 66 69 65 er).{.$index.=.strpos($identifie
74900 72 2c 20 27 40 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b r,.'@');.if.($index.===.false).{
74920 0a 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 20 3d 20 24 69 64 65 6e 74 69 66 69 65 72 2e 20 27 2f .$composerJson.=.$identifier..'/
74940 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 composer.json';..return.$this->g
74960 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 46 72 6f 6d 50 61 74 68 28 24 63 etComposerInformationFromPath($c
74980 6f 6d 70 6f 73 65 72 4a 73 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 omposerJson);.}..return.$this->g
749a0 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 46 72 6f 6d 4c 61 62 65 6c 28 24 etComposerInformationFromLabel($
749c0 69 64 65 6e 74 69 66 69 65 72 2c 20 24 69 6e 64 65 78 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 identifier,.$index);.}..public.f
749e0 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 46 72 unction.getComposerInformationFr
74a00 6f 6d 50 61 74 68 28 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 omPath($composerJson).{.$command
74a20 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 20 70 72 .=.$this->generateP4Command('.pr
74a40 69 6e 74 20 27 20 2e 20 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 65 int.'...$composerJson);.$this->e
74a60 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 xecuteCommand($command);.$result
74a80 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 3b 0a 24 69 6e 64 65 78 20 .=.$this->commandResult;.$index.
74aa0 3d 20 73 74 72 70 6f 73 28 24 72 65 73 75 6c 74 2c 20 27 7b 27 29 3b 0a 69 66 20 28 24 69 6e 64 =.strpos($result,.'{');.if.($ind
74ac0 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b 0a 7d 0a 69 66 20 ex.===.false).{.return.'';.}.if.
74ae0 28 24 69 6e 64 65 78 20 3e 3d 20 30 29 20 7b 0a 24 72 61 77 44 61 74 61 20 3d 20 73 75 62 73 74 ($index.>=.0).{.$rawData.=.subst
74b00 72 28 24 72 65 73 75 6c 74 2c 20 24 69 6e 64 65 78 29 3b 0a 24 63 6f 6d 70 6f 73 65 72 5f 69 6e r($result,.$index);.$composer_in
74b20 66 6f 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 72 61 77 44 61 74 61 2c 20 74 72 75 65 29 fo.=.json_decode($rawData,.true)
74b40 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 70 6f 73 65 72 5f 69 6e 66 6f 3b 0a 7d 0a 0a 72 65 74 ;..return.$composer_info;.}..ret
74b60 75 72 6e 20 27 27 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f urn.'';.}..public.function.getCo
74b80 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 46 72 6f 6d 4c 61 62 65 6c 28 24 69 64 65 6e mposerInformationFromLabel($iden
74ba0 74 69 66 69 65 72 2c 20 24 69 6e 64 65 78 29 0a 7b 0a 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 50 tifier,.$index).{.$composerJsonP
74bc0 61 74 68 20 3d 20 73 75 62 73 74 72 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 30 2c 20 24 69 6e ath.=.substr($identifier,.0,.$in
74be0 64 65 78 29 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 27 20 2e 20 73 75 62 73 74 72 dex)...'/composer.json'...substr
74c00 28 24 69 64 65 6e 74 69 66 69 65 72 2c 20 24 69 6e 64 65 78 29 3b 0a 24 63 6f 6d 6d 61 6e 64 20 ($identifier,.$index);.$command.
74c20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 20 66 69 6c =.$this->generateP4Command('.fil
74c40 65 73 20 27 20 2e 20 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 50 61 74 68 2c 20 66 61 6c 73 65 29 es.'...$composerJsonPath,.false)
74c60 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 ;.$this->executeCommand($command
74c80 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c );.$result.=.$this->commandResul
74ca0 74 3b 0a 24 69 6e 64 65 78 32 20 3d 20 73 74 72 70 6f 73 28 24 72 65 73 75 6c 74 2c 20 27 6e 6f t;.$index2.=.strpos($result,.'no
74cc0 20 73 75 63 68 20 66 69 6c 65 28 73 29 2e 27 29 3b 0a 69 66 20 28 24 69 6e 64 65 78 32 20 3d 3d .such.file(s).');.if.($index2.==
74ce0 3d 20 66 61 6c 73 65 29 20 7b 0a 24 69 6e 64 65 78 33 20 3d 20 73 74 72 70 6f 73 28 24 72 65 73 =.false).{.$index3.=.strpos($res
74d00 75 6c 74 2c 20 27 63 68 61 6e 67 65 27 29 3b 0a 69 66 20 28 21 28 24 69 6e 64 65 78 33 20 3d 3d ult,.'change');.if.(!($index3.==
74d20 3d 20 66 61 6c 73 65 29 29 20 7b 0a 24 70 68 72 61 73 65 20 3d 20 74 72 69 6d 28 73 75 62 73 74 =.false)).{.$phrase.=.trim(subst
74d40 72 28 24 72 65 73 75 6c 74 2c 20 24 69 6e 64 65 78 33 29 29 3b 0a 24 66 69 65 6c 64 73 20 3d 20 r($result,.$index3));.$fields.=.
74d60 65 78 70 6c 6f 64 65 28 27 20 27 2c 20 24 70 68 72 61 73 65 29 3b 0a 24 69 64 20 3d 20 24 66 69 explode('.',.$phrase);.$id.=.$fi
74d80 65 6c 64 73 5b 31 5d 3b 0a 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 20 3d 20 73 75 62 73 74 72 28 elds[1];.$composerJson.=.substr(
74da0 24 69 64 65 6e 74 69 66 69 65 72 2c 20 30 2c 20 24 69 6e 64 65 78 29 20 2e 20 27 2f 63 6f 6d 70 $identifier,.0,.$index)...'/comp
74dc0 6f 73 65 72 2e 6a 73 6f 6e 40 27 20 2e 20 24 69 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 oser.json@'...$id;..return.$this
74de0 2d 3e 67 65 74 43 6f 6d 70 6f 73 65 72 49 6e 66 6f 72 6d 61 74 69 6f 6e 46 72 6f 6d 50 61 74 68 ->getComposerInformationFromPath
74e00 28 24 63 6f 6d 70 6f 73 65 72 4a 73 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 22 22 3b ($composerJson);.}.}..return."";
74e20 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 72 61 6e 63 68 65 73 28 .}..public.function.getBranches(
74e40 29 0a 7b 0a 24 70 6f 73 73 69 62 6c 65 42 72 61 6e 63 68 65 73 20 3d 20 61 72 72 61 79 28 29 3b ).{.$possibleBranches.=.array();
74e60 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 73 53 74 72 65 61 6d 28 29 29 20 7b 0a 24 70 6f 73 73 .if.(!$this->isStream()).{.$poss
74e80 69 62 6c 65 42 72 61 6e 63 68 65 73 5b 24 74 68 69 73 2d 3e 70 34 42 72 61 6e 63 68 5d 20 3d 20 ibleBranches[$this->p4Branch].=.
74ea0 24 74 68 69 73 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6f $this->getStream();.}.else.{.$co
74ec0 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 mmand.=.$this->generateP4Command
74ee0 28 27 73 74 72 65 61 6d 73 20 2f 2f 27 20 2e 20 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 20 2e ('streams.//'...$this->p4Depot..
74f00 20 27 2f 2e 2e 2e 27 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 .'/...');.$this->executeCommand(
74f20 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d $command);.$result.=.$this->comm
74f40 61 6e 64 52 65 73 75 6c 74 3b 0a 24 72 65 73 41 72 72 61 79 20 3d 20 65 78 70 6c 6f 64 65 28 50 andResult;.$resArray.=.explode(P
74f60 48 50 5f 45 4f 4c 2c 20 24 72 65 73 75 6c 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 73 41 HP_EOL,.$result);.foreach.($resA
74f80 72 72 61 79 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 72 65 73 42 69 74 73 20 3d 20 65 78 70 6c rray.as.$line).{.$resBits.=.expl
74fa0 6f 64 65 28 27 20 27 2c 20 24 6c 69 6e 65 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 72 65 73 42 ode('.',.$line);.if.(count($resB
74fc0 69 74 73 29 20 3e 20 34 29 20 7b 0a 24 62 72 61 6e 63 68 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 its).>.4).{.$branch.=.preg_repla
74fe0 63 65 28 27 2f 5b 5e 41 2d 5a 61 2d 7a 30 2d 39 20 5d 2f 27 2c 20 27 27 2c 20 24 72 65 73 42 69 ce('/[^A-Za-z0-9.]/',.'',.$resBi
75000 74 73 5b 34 5d 29 3b 0a 24 70 6f 73 73 69 62 6c 65 42 72 61 6e 63 68 65 73 5b 24 62 72 61 6e 63 ts[4]);.$possibleBranches[$branc
75020 68 5d 20 3d 20 24 72 65 73 42 69 74 73 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 24 62 72 61 6e 63 68 65 h].=.$resBits[1];.}.}.}.$branche
75040 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 62 72 61 6e 63 68 65 73 5b 27 6d 61 73 74 65 72 27 5d s.=.array();.$branches['master']
75060 20 3d 20 24 70 6f 73 73 69 62 6c 65 42 72 61 6e 63 68 65 73 5b 24 74 68 69 73 2d 3e 70 34 42 72 .=.$possibleBranches[$this->p4Br
75080 61 6e 63 68 5d 3b 0a 0a 72 65 74 75 72 6e 20 24 62 72 61 6e 63 68 65 73 3b 0a 7d 0a 0a 70 75 62 anch];..return.$branches;.}..pub
750a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 61 67 73 28 29 0a 7b 0a 24 63 6f 6d 6d 61 6e lic.function.getTags().{.$comman
750c0 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 6c 61 d.=.$this->generateP4Command('la
750e0 62 65 6c 73 27 29 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 bels');.$this->executeCommand($c
75100 6f 6d 6d 61 6e 64 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e ommand);.$result.=.$this->comman
75120 64 52 65 73 75 6c 74 3b 0a 24 72 65 73 41 72 72 61 79 20 3d 20 65 78 70 6c 6f 64 65 28 50 48 50 dResult;.$resArray.=.explode(PHP
75140 5f 45 4f 4c 2c 20 24 72 65 73 75 6c 74 29 3b 0a 24 74 61 67 73 20 3d 20 61 72 72 61 79 28 29 3b _EOL,.$result);.$tags.=.array();
75160 0a 66 6f 72 65 61 63 68 20 28 24 72 65 73 41 72 72 61 79 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a .foreach.($resArray.as.$line).{.
75180 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 6c 69 6e 65 2c 20 27 4c 61 62 65 6c 27 29 3b $index.=.strpos($line,.'Label');
751a0 0a 69 66 20 28 21 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 29 20 7b 0a 24 66 69 65 .if.(!($index.===.false)).{.$fie
751c0 6c 64 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 20 27 2c 20 24 6c 69 6e 65 29 3b 0a 24 74 61 67 73 lds.=.explode('.',.$line);.$tags
751e0 5b 24 66 69 65 6c 64 73 5b 31 5d 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 74 72 65 61 6d 28 [$fields[1]].=.$this->getStream(
75200 29 20 2e 20 27 40 27 20 2e 20 24 66 69 65 6c 64 73 5b 31 5d 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 )...'@'...$fields[1];.}.}..retur
75220 6e 20 24 74 61 67 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 n.$tags;.}..public.function.chec
75240 6b 53 74 72 65 61 6d 28 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 kStream().{.$command.=.$this->ge
75260 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 64 65 70 6f 74 73 27 2c 20 66 61 6c 73 65 29 nerateP4Command('depots',.false)
75280 3b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 ;.$this->executeCommand($command
752a0 29 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c );.$result.=.$this->commandResul
752c0 74 3b 0a 24 72 65 73 41 72 72 61 79 20 3d 20 65 78 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c 20 t;.$resArray.=.explode(PHP_EOL,.
752e0 24 72 65 73 75 6c 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 73 41 72 72 61 79 20 61 73 20 $result);.foreach.($resArray.as.
75300 24 6c 69 6e 65 29 20 7b 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 6c 69 6e 65 2c 20 $line).{.$index.=.strpos($line,.
75320 27 44 65 70 6f 74 27 29 3b 0a 69 66 20 28 21 28 24 69 6e 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 'Depot');.if.(!($index.===.false
75340 29 29 20 7b 0a 24 66 69 65 6c 64 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 20 27 2c 20 24 6c 69 6e )).{.$fields.=.explode('.',.$lin
75360 65 29 3b 0a 69 66 20 28 73 74 72 63 6d 70 28 24 74 68 69 73 2d 3e 70 34 44 65 70 6f 74 2c 20 24 e);.if.(strcmp($this->p4Depot,.$
75380 66 69 65 6c 64 73 5b 31 5d 29 20 3d 3d 3d 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 70 34 44 65 70 fields[1]).===.0).{.$this->p4Dep
753a0 6f 74 54 79 70 65 20 3d 20 24 66 69 65 6c 64 73 5b 33 5d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 otType.=.$fields[3];..return.$th
753c0 69 73 2d 3e 69 73 53 74 72 65 61 6d 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 is->isStream();.}.}.}..return.fa
753e0 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 67 65 74 43 68 lse;.}..protected.function.getCh
75400 61 6e 67 65 4c 69 73 74 28 24 72 65 66 65 72 65 6e 63 65 29 0a 7b 0a 24 69 6e 64 65 78 20 3d 20 angeList($reference).{.$index.=.
75420 73 74 72 70 6f 73 28 24 72 65 66 65 72 65 6e 63 65 2c 20 27 40 27 29 3b 0a 69 66 20 28 24 69 6e strpos($reference,.'@');.if.($in
75440 64 65 78 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 6c 61 62 65 dex.===.false).{.return;.}.$labe
75460 6c 20 3d 20 73 75 62 73 74 72 28 24 72 65 66 65 72 65 6e 63 65 2c 20 24 69 6e 64 65 78 29 3b 0a l.=.substr($reference,.$index);.
75480 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d $command.=.$this->generateP4Comm
754a0 61 6e 64 28 27 20 63 68 61 6e 67 65 73 20 2d 6d 31 20 27 20 2e 20 24 6c 61 62 65 6c 29 3b 0a 24 and('.changes.-m1.'...$label);.$
754c0 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a this->executeCommand($command);.
754e0 24 63 68 61 6e 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 3b $changes.=.$this->commandResult;
75500 0a 69 66 20 28 73 74 72 70 6f 73 28 24 63 68 61 6e 67 65 73 2c 20 27 43 68 61 6e 67 65 27 29 20 .if.(strpos($changes,.'Change').
75520 21 3d 3d 20 30 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 24 66 69 65 6c 64 73 20 3d 20 65 78 70 !==.0).{.return;.}.$fields.=.exp
75540 6c 6f 64 65 28 27 20 27 2c 20 24 63 68 61 6e 67 65 73 29 3b 0a 24 63 68 61 6e 67 65 4c 69 73 74 lode('.',.$changes);.$changeList
75560 20 3d 20 24 66 69 65 6c 64 73 5b 31 5d 3b 0a 0a 72 65 74 75 72 6e 20 24 63 68 61 6e 67 65 4c 69 .=.$fields[1];..return.$changeLi
75580 73 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 6d 6d 69 74 st;.}..public.function.getCommit
755a0 4c 6f 67 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c 20 24 74 6f 52 65 66 65 72 65 6e 63 Logs($fromReference,.$toReferenc
755c0 65 29 0a 7b 0a 24 66 72 6f 6d 43 68 61 6e 67 65 4c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 e).{.$fromChangeList.=.$this->ge
755e0 74 43 68 61 6e 67 65 4c 69 73 74 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 29 3b 0a 69 66 20 tChangeList($fromReference);.if.
75600 28 24 66 72 6f 6d 43 68 61 6e 67 65 4c 69 73 74 20 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 72 65 74 75 ($fromChangeList.==.null).{.retu
75620 72 6e 3b 0a 7d 0a 24 74 6f 43 68 61 6e 67 65 4c 69 73 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 rn;.}.$toChangeList.=.$this->get
75640 43 68 61 6e 67 65 4c 69 73 74 28 24 74 6f 52 65 66 65 72 65 6e 63 65 29 3b 0a 69 66 20 28 24 74 ChangeList($toReference);.if.($t
75660 6f 43 68 61 6e 67 65 4c 69 73 74 20 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d oChangeList.==.null).{.return;.}
75680 0a 24 69 6e 64 65 78 20 3d 20 73 74 72 70 6f 73 28 24 66 72 6f 6d 52 65 66 65 72 65 6e 63 65 2c .$index.=.strpos($fromReference,
756a0 20 27 40 27 29 3b 0a 24 6d 61 69 6e 20 3d 20 73 75 62 73 74 72 28 24 66 72 6f 6d 52 65 66 65 72 .'@');.$main.=.substr($fromRefer
756c0 65 6e 63 65 2c 20 30 2c 20 24 69 6e 64 65 78 29 20 2e 20 27 2f 2e 2e 2e 27 3b 0a 24 63 6f 6d 6d ence,.0,.$index)...'/...';.$comm
756e0 61 6e 64 20 3d 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 50 34 43 6f 6d 6d 61 6e 64 28 27 and.=.$this->generateP4Command('
75700 66 69 6c 65 6c 6f 67 20 27 20 2e 20 24 6d 61 69 6e 20 2e 20 27 40 27 20 2e 20 24 66 72 6f 6d 43 filelog.'...$main...'@'...$fromC
75720 68 61 6e 67 65 4c 69 73 74 2e 20 27 2c 27 20 2e 20 24 74 6f 43 68 61 6e 67 65 4c 69 73 74 29 3b hangeList..','...$toChangeList);
75740 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 .$this->executeCommand($command)
75760 3b 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 52 65 73 75 6c 74 ;.$result.=.$this->commandResult
75780 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a ;..return.$result;.}.}.<?php....
757a0 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 6c 3b ........namespace.Composer\Util;
757c0 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c ..use.Symfony\Component\Process\
757e0 50 72 6f 63 65 73 73 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 Process;.use.Composer\IO\IOInter
75800 66 61 63 65 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 72 0a face;.....class.ProcessExecutor.
75820 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 33 30 {.protected.static.$timeout.=.30
75840 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 70 72 0;..protected.$captureOutput;.pr
75860 6f 74 65 63 74 65 64 20 24 65 72 72 6f 72 4f 75 74 70 75 74 3b 0a 70 72 6f 74 65 63 74 65 64 20 otected.$errorOutput;.protected.
75880 24 69 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 $io;..public.function.__construc
758a0 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 t(IOInterface.$io.=.null).{.$thi
758c0 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 s->io.=.$io;.}...........public.
758e0 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 26 24 6f 75 74 function.execute($command,.&$out
75900 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 24 63 77 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 put.=.null,.$cwd.=.null).{.if.($
75920 74 68 69 73 2d 3e 69 6f 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 this->io.&&.$this->io->isDebug()
75940 29 20 7b 0a 24 73 61 66 65 43 6f 6d 6d 61 6e 64 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 ).{.$safeCommand.=.preg_replace(
75960 27 7b 28 3a 2f 2f 5b 5e 3a 2f 5c 73 5d 2b 3a 29 5b 5e 40 5c 73 2f 5d 2b 7d 69 27 2c 20 27 24 31 '{(://[^:/\s]+:)[^@\s/]+}i',.'$1
75980 2a 2a 2a 2a 27 2c 20 24 63 6f 6d 6d 61 6e 64 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 ****',.$command);.$this->io->wri
759a0 74 65 28 27 45 78 65 63 75 74 69 6e 67 20 63 6f 6d 6d 61 6e 64 20 28 27 2e 28 24 63 77 64 20 3f te('Executing.command.('.($cwd.?
759c0 3a 20 27 43 57 44 27 29 2e 27 29 3a 20 27 2e 24 73 61 66 65 43 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a :.'CWD').'):.'.$safeCommand);.}.
759e0 0a 0a 20 0a 20 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 63 77 64 20 26 26 20 64 65 66 69 6e 65 .....if.(null.===.$cwd.&&.define
75a00 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 20 26 d('PHP_WINDOWS_VERSION_BUILD').&
75a20 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6f 6d 6d 61 6e 64 2c 20 27 67 69 &.false.!==.strpos($command,.'gi
75a40 74 27 29 20 26 26 20 67 65 74 63 77 64 28 29 29 20 7b 0a 24 63 77 64 20 3d 20 72 65 61 6c 70 61 t').&&.getcwd()).{.$cwd.=.realpa
75a60 74 68 28 67 65 74 63 77 64 28 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 4f th(getcwd());.}..$this->captureO
75a80 75 74 70 75 74 20 3d 20 63 6f 75 6e 74 28 66 75 6e 63 5f 67 65 74 5f 61 72 67 73 28 29 29 20 3e utput.=.count(func_get_args()).>
75aa0 20 31 3b 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 .1;.$this->errorOutput.=.null;.$
75ac0 70 72 6f 63 65 73 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 28 24 63 6f 6d 6d 61 6e 64 2c 20 process.=.new.Process($command,.
75ae0 24 63 77 64 2c 20 6e 75 6c 6c 2c 20 6e 75 6c 6c 2c 20 73 74 61 74 69 63 3a 3a 67 65 74 54 69 6d $cwd,.null,.null,.static::getTim
75b00 65 6f 75 74 28 29 29 3b 0a 0a 24 63 61 6c 6c 62 61 63 6b 20 3d 20 69 73 5f 63 61 6c 6c 61 62 6c eout());..$callback.=.is_callabl
75b20 65 28 24 6f 75 74 70 75 74 29 20 3f 20 24 6f 75 74 70 75 74 20 3a 20 61 72 72 61 79 28 24 74 68 e($output).?.$output.:.array($th
75b40 69 73 2c 20 27 6f 75 74 70 75 74 48 61 6e 64 6c 65 72 27 29 3b 0a 24 70 72 6f 63 65 73 73 2d 3e is,.'outputHandler');.$process->
75b60 72 75 6e 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 61 70 74 run($callback);..if.($this->capt
75b80 75 72 65 4f 75 74 70 75 74 20 26 26 20 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 6f 75 74 70 75 ureOutput.&&.!is_callable($outpu
75ba0 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 t)).{.$output.=.$process->getOut
75bc0 70 75 74 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 65 72 72 6f 72 4f 75 74 70 75 74 20 3d 20 24 put();.}..$this->errorOutput.=.$
75be0 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 0a 0a 72 65 74 75 process->getErrorOutput();..retu
75c00 72 6e 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 70 rn.$process->getExitCode();.}..p
75c20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 70 6c 69 74 4c 69 6e 65 73 28 24 6f 75 74 70 75 ublic.function.splitLines($outpu
75c40 74 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 74 72 69 6d 28 24 6f 75 74 70 75 74 29 3b 0a 0a 72 t).{.$output.=.trim($output);..r
75c60 65 74 75 72 6e 20 28 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 eturn.((string).$output.===.'').
75c80 3f 20 61 72 72 61 79 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 ?.array().:.preg_split('{\r?\n}'
75ca0 2c 20 24 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 ,.$output);.}.......public.funct
75cc0 69 6f 6e 20 67 65 74 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 ion.getErrorOutput().{.return.$t
75ce0 68 69 73 2d 3e 65 72 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 his->errorOutput;.}..public.func
75d00 74 69 6f 6e 20 6f 75 74 70 75 74 48 61 6e 64 6c 65 72 28 24 74 79 70 65 2c 20 24 62 75 66 66 65 tion.outputHandler($type,.$buffe
75d20 72 29 0a 7b 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 29 20 7b r).{.if.($this->captureOutput).{
75d40 0a 72 65 74 75 72 6e 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 .return;.}..echo.$buffer;.}..pub
75d60 6c 69 63 20 73 74 61 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 lic.static.function.getTimeout()
75d80 0a 7b 0a 72 65 74 75 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 .{.return.static::$timeout;.}..p
75da0 75 62 6c 69 63 20 73 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 ublic.static.function.setTimeout
75dc0 28 24 74 69 6d 65 6f 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 ($timeout).{.static::$timeout.=.
75de0 24 74 69 6d 65 6f 75 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 $timeout;.}.}.<?php............n
75e00 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 amespace.Composer\Util;.....clas
75e20 73 20 47 69 74 0a 7b 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 45 6e 76 s.Git.{.public.function.cleanEnv
75e40 28 29 0a 7b 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 73 61 66 65 5f 6d 6f 64 65 27 29 20 26 26 ().{.if.(ini_get('safe_mode').&&
75e60 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 69 6e 69 5f 67 65 74 28 27 73 61 66 65 5f .false.===.strpos(ini_get('safe_
75e80 6d 6f 64 65 5f 61 6c 6c 6f 77 65 64 5f 65 6e 76 5f 76 61 72 73 27 29 2c 20 27 47 49 54 5f 41 53 mode_allowed_env_vars'),.'GIT_AS
75ea0 4b 50 41 53 53 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 KPASS')).{.throw.new.\RuntimeExc
75ec0 65 70 74 69 6f 6e 28 27 73 61 66 65 5f 6d 6f 64 65 20 69 73 20 65 6e 61 62 6c 65 64 20 61 6e 64 eption('safe_mode.is.enabled.and
75ee0 20 73 61 66 65 5f 6d 6f 64 65 5f 61 6c 6c 6f 77 65 64 5f 65 6e 76 5f 76 61 72 73 20 64 6f 65 73 .safe_mode_allowed_env_vars.does
75f00 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 47 49 54 5f 41 53 4b 50 41 53 53 2c 20 63 61 6e 20 6e 6f .not.contain.GIT_ASKPASS,.can.no
75f20 74 20 73 65 74 20 65 6e 76 20 76 61 72 2e 20 59 6f 75 20 63 61 6e 20 64 69 73 61 62 6c 65 20 73 t.set.env.var..You.can.disable.s
75f40 61 66 65 5f 6d 6f 64 65 20 77 69 74 68 20 22 2d 64 73 61 66 65 5f 6d 6f 64 65 3d 30 22 20 77 68 afe_mode.with."-dsafe_mode=0".wh
75f60 65 6e 20 72 75 6e 6e 69 6e 67 20 63 6f 6d 70 6f 73 65 72 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 en.running.composer');.}....if.(
75f80 67 65 74 65 6e 76 28 27 47 49 54 5f 41 53 4b 50 41 53 53 27 29 20 21 3d 3d 20 27 65 63 68 6f 27 getenv('GIT_ASKPASS').!==.'echo'
75fa0 29 20 7b 0a 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 ).{.putenv('GIT_ASKPASS=echo');.
75fc0 7d 0a 0a 0a 20 69 66 20 28 67 65 74 65 6e 76 28 27 47 49 54 5f 44 49 52 27 29 29 20 7b 0a 70 75 }....if.(getenv('GIT_DIR')).{.pu
75fe0 74 65 6e 76 28 27 47 49 54 5f 44 49 52 27 29 3b 0a 7d 0a 69 66 20 28 67 65 74 65 6e 76 28 27 47 tenv('GIT_DIR');.}.if.(getenv('G
76000 49 54 5f 57 4f 52 4b 5f 54 52 45 45 27 29 29 20 7b 0a 70 75 74 65 6e 76 28 27 47 49 54 5f 57 4f IT_WORK_TREE')).{.putenv('GIT_WO
76020 52 4b 5f 54 52 45 45 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 RK_TREE');.}.}.}.<?php..........
76040 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 75 73 65 20 ..namespace.Composer\Util;..use.
76060 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 65 72 5c Composer\Composer;.use.Composer\
76080 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 44 6f 77 IO\IOInterface;.use.Composer\Dow
760a0 6e 6c 6f 61 64 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a nloader\TransportException;.....
760c0 0a 0a 63 6c 61 73 73 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 0a 7b 0a 70 72 69 76 61 ..class.RemoteFilesystem.{.priva
760e0 74 65 20 24 69 6f 3b 0a 70 72 69 76 61 74 65 20 24 66 69 72 73 74 43 61 6c 6c 3b 0a 70 72 69 76 te.$io;.private.$firstCall;.priv
76100 61 74 65 20 24 62 79 74 65 73 4d 61 78 3b 0a 70 72 69 76 61 74 65 20 24 6f 72 69 67 69 6e 55 72 ate.$bytesMax;.private.$originUr
76120 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 55 72 6c 3b 0a 70 72 69 76 61 74 65 20 24 66 69 l;.private.$fileUrl;.private.$fi
76140 6c 65 4e 61 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 72 65 74 72 79 3b 0a 70 72 69 76 61 74 65 20 leName;.private.$retry;.private.
76160 24 70 72 6f 67 72 65 73 73 3b 0a 70 72 69 76 61 74 65 20 24 6c 61 73 74 50 72 6f 67 72 65 73 73 $progress;.private.$lastProgress
76180 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ;.private.$options;........publi
761a0 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 61 c.function.__construct(IOInterfa
761c0 63 65 20 24 69 6f 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 ce.$io,.$options.=.array()).{.$t
761e0 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 his->io.=.$io;.$this->options.=.
76200 24 6f 70 74 69 6f 6e 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 $options;.}.............public.f
76220 75 6e 63 74 69 6f 6e 20 63 6f 70 79 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 unction.copy($originUrl,.$fileUr
76240 6c 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 70 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 2c 20 l,.$fileName,.$progress.=.true,.
76260 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 $options.=.array()).{.return.$th
76280 69 73 2d 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 6f is->get($originUrl,.$fileUrl,.$o
762a0 70 74 69 6f 6e 73 2c 20 24 66 69 6c 65 4e 61 6d 65 2c 20 24 70 72 6f 67 72 65 73 73 29 3b 0a 7d ptions,.$fileName,.$progress);.}
762c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 ............public.function.getC
762e0 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 20 24 70 ontents($originUrl,.$fileUrl,.$p
76300 72 6f 67 72 65 73 73 20 3d 20 74 72 75 65 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 rogress.=.true,.$options.=.array
76320 28 29 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 6f 72 69 67 69 6e 55 ()).{.return.$this->get($originU
76340 72 6c 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 6f 70 74 69 6f 6e 73 2c 20 6e 75 6c 6c 2c 20 24 70 rl,.$fileUrl,.$options,.null,.$p
76360 72 6f 67 72 65 73 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 rogress);.}.......public.functio
76380 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f n.getOptions().{.return.$this->o
763a0 70 74 69 6f 6e 73 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 ptions;.}................protect
763c0 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 66 69 6c ed.function.get($originUrl,.$fil
763e0 65 55 72 6c 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 eUrl,.$additionalOptions.=.array
76400 28 29 2c 20 24 66 69 6c 65 4e 61 6d 65 20 3d 20 6e 75 6c 6c 2c 20 24 70 72 6f 67 72 65 73 73 20 (),.$fileName.=.null,.$progress.
76420 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3d 20 30 3b 0a 24 =.true).{.$this->bytesMax.=.0;.$
76440 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 6c 20 3d 20 24 6f 72 69 67 69 6e 55 72 6c 3b 0a 24 74 this->originUrl.=.$originUrl;.$t
76460 68 69 73 2d 3e 66 69 6c 65 55 72 6c 20 3d 20 24 66 69 6c 65 55 72 6c 3b 0a 24 74 68 69 73 2d 3e his->fileUrl.=.$fileUrl;.$this->
76480 66 69 6c 65 4e 61 6d 65 20 3d 20 24 66 69 6c 65 4e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 70 72 6f fileName.=.$fileName;.$this->pro
764a0 67 72 65 73 73 20 3d 20 24 70 72 6f 67 72 65 73 73 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 gress.=.$progress;.$this->lastPr
764c0 6f 67 72 65 73 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 ogress.=.null;....if.(preg_match
764e0 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 28 2e 2b 29 3a 28 2e 2b 29 40 28 5b 5e 2f 5d 2b 29 7d 69 ('{^https?://(.+):(.+)@([^/]+)}i
76500 27 2c 20 24 66 69 6c 65 55 72 6c 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 ',.$fileUrl,.$match)).{.$this->i
76520 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 2c o->setAuthentication($originUrl,
76540 20 75 72 6c 64 65 63 6f 64 65 28 24 6d 61 74 63 68 5b 31 5d 29 2c 20 75 72 6c 64 65 63 6f 64 65 .urldecode($match[1]),.urldecode
76560 28 24 6d 61 74 63 68 5b 32 5d 29 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 24 74 68 69 ($match[2]));.}..$options.=.$thi
76580 73 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 s->getOptionsForUrl($originUrl,.
765a0 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d $additionalOptions);..if.($this-
765c0 3e 69 6f 2d 3e 69 73 44 65 62 75 67 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 >io->isDebug()).{.$this->io->wri
765e0 74 65 28 28 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 te((substr($fileUrl,.0,.4).===.'
76600 68 74 74 70 27 20 3f 20 27 44 6f 77 6e 6c 6f 61 64 69 6e 67 20 27 20 3a 20 27 52 65 61 64 69 6e http'.?.'Downloading.'.:.'Readin
76620 67 20 27 29 20 2e 20 24 66 69 6c 65 55 72 6c 29 3b 0a 7d 0a 69 66 20 28 69 73 73 65 74 28 24 6f g.')...$fileUrl);.}.if.(isset($o
76640 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 29 29 20 7b 0a 24 66 69 6c 65 ptions['github-token'])).{.$file
76660 55 72 6c 20 2e 3d 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 66 69 6c 65 55 72 Url..=.(false.===.strpos($fileUr
76680 6c 2c 20 27 3f 27 29 20 3f 20 27 3f 27 20 3a 20 27 26 27 29 20 2e 20 27 61 63 63 65 73 73 5f 74 l,.'?').?.'?'.:.'&')...'access_t
766a0 6f 6b 65 6e 3d 27 2e 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 3b oken='.$options['github-token'];
766c0 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 5d 29 .unset($options['github-token'])
766e0 3b 0a 7d 0a 24 63 74 78 20 3d 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3a ;.}.$ctx.=.StreamContextFactory:
76700 3a 67 65 74 43 6f 6e 74 65 78 74 28 24 66 69 6c 65 55 72 6c 2c 20 24 6f 70 74 69 6f 6e 73 2c 20 :getContext($fileUrl,.$options,.
76720 61 72 72 61 79 28 27 6e 6f 74 69 66 69 63 61 74 69 6f 6e 27 20 3d 3e 20 61 72 72 61 79 28 24 74 array('notification'.=>.array($t
76740 68 69 73 2c 20 27 63 61 6c 6c 62 61 63 6b 47 65 74 27 29 29 29 3b 0a 0a 69 66 20 28 24 74 68 69 his,.'callbackGet')));..if.($thi
76760 73 2d 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 s->progress).{.$this->io->write(
76780 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 63 6f 6e 6e 65 "....Downloading:.<comment>conne
767a0 63 74 69 6f 6e 2e 2e 2e 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 0a ction...</comment>",.false);.}..
767c0 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 24 65 72 72 6f 72 43 6f 64 65 20 3d $errorMessage.=.'';.$errorCode.=
767e0 20 30 3b 0a 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 73 65 74 5f 65 72 72 6f 72 5f 68 .0;.$result.=.false;.set_error_h
76800 61 6e 64 6c 65 72 28 66 75 6e 63 74 69 6f 6e 20 28 24 63 6f 64 65 2c 20 24 6d 73 67 29 20 75 73 andler(function.($code,.$msg).us
76820 65 20 28 26 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 69 66 20 28 24 65 72 72 6f 72 4d e.(&$errorMessage).{.if.($errorM
76840 65 73 73 61 67 65 29 20 7b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 22 3b essage).{.$errorMessage..=."\n";
76860 0a 7d 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 .}.$errorMessage..=.preg_replace
76880 28 27 7b 5e 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 5c 28 2e 2a 3f 5c 29 3a 20 7d 27 ('{^file_get_contents\(.*?\):.}'
768a0 2c 20 27 27 2c 20 24 6d 73 67 29 3b 0a 7d 29 3b 0a 74 72 79 20 7b 0a 24 72 65 73 75 6c 74 20 3d ,.'',.$msg);.});.try.{.$result.=
768c0 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 55 72 6c 2c 20 66 61 6c .file_get_contents($fileUrl,.fal
768e0 73 65 2c 20 24 63 74 78 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 se,.$ctx);.}.catch.(\Exception.$
76900 65 29 20 7b 0a 69 66 20 28 24 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 54 72 61 6e 73 70 6f 72 74 e).{.if.($e.instanceof.Transport
76920 45 78 63 65 70 74 69 6f 6e 20 26 26 20 21 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e Exception.&&.!empty($http_respon
76940 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 29 20 7b 0a 24 65 2d 3e 73 65 74 48 65 61 64 65 72 73 28 se_header[0])).{.$e->setHeaders(
76960 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 29 3b 0a 7d 0a 7d 0a 69 66 20 28 $http_response_header);.}.}.if.(
76980 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 26 26 20 21 69 6e 69 5f 67 65 74 28 27 61 6c 6c 6f 77 $errorMessage.&&.!ini_get('allow
769a0 5f 75 72 6c 5f 66 6f 70 65 6e 27 29 29 20 7b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 _url_fopen')).{.$errorMessage.=.
769c0 27 61 6c 6c 6f 77 5f 75 72 6c 5f 66 6f 70 65 6e 20 6d 75 73 74 20 62 65 20 65 6e 61 62 6c 65 64 'allow_url_fopen.must.be.enabled
769e0 20 69 6e 20 70 68 70 2e 69 6e 69 20 28 27 2e 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2e 27 29 27 .in.php.ini.('.$errorMessage.')'
76a00 3b 0a 7d 0a 72 65 73 74 6f 72 65 5f 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 29 3b 0a 69 66 20 ;.}.restore_error_handler();.if.
76a20 28 69 73 73 65 74 28 24 65 29 20 26 26 20 21 24 74 68 69 73 2d 3e 72 65 74 72 79 29 20 7b 0a 74 (isset($e).&&.!$this->retry).{.t
76a40 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 68 74 74 70 5f 72 hrow.$e;.}....if.(!empty($http_r
76a60 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 29 20 26 26 20 70 72 65 67 5f 6d 61 74 63 68 esponse_header[0]).&&.preg_match
76a80 28 27 7b 5e 48 54 54 50 2f 5c 53 2b 20 28 5b 34 35 5d 5c 64 5c 64 29 7d 69 27 2c 20 24 68 74 74 ('{^HTTP/\S+.([45]\d\d)}i',.$htt
76aa0 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 5b 30 5d 2c 20 24 6d 61 74 63 68 29 29 20 7b p_response_header[0],.$match)).{
76ac0 0a 24 72 65 73 75 6c 74 20 3d 20 66 61 6c 73 65 3b 0a 24 65 72 72 6f 72 43 6f 64 65 20 3d 20 24 .$result.=.false;.$errorCode.=.$
76ae0 6d 61 74 63 68 5b 31 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 72 65 73 75 6c 74 20 26 26 20 65 78 match[1];.}....if.($result.&&.ex
76b00 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a 6c 69 62 27 29 20 26 26 20 73 75 62 73 74 72 tension_loaded('zlib').&&.substr
76b20 28 24 66 69 6c 65 55 72 6c 2c 20 30 2c 20 34 29 20 3d 3d 3d 20 27 68 74 74 70 27 29 20 7b 0a 24 ($fileUrl,.0,.4).===.'http').{.$
76b40 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 68 74 74 70 5f 72 decode.=.false;.foreach.($http_r
76b60 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 20 61 73 20 24 68 65 61 64 65 72 29 20 7b 0a 69 66 20 esponse_header.as.$header).{.if.
76b80 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6e 74 65 6e 74 2d 65 6e 63 6f 64 69 6e 67 3a (preg_match('{^content-encoding:
76ba0 20 2a 67 7a 69 70 20 2a 24 7d 69 27 2c 20 24 68 65 61 64 65 72 29 29 20 7b 0a 24 64 65 63 6f 64 .*gzip.*$}i',.$header)).{.$decod
76bc0 65 20 3d 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 70 72 e.=.true;.continue;.}.elseif.(pr
76be0 65 67 5f 6d 61 74 63 68 28 27 7b 5e 48 54 54 50 2f 7d 69 27 2c 20 24 68 65 61 64 65 72 29 29 20 eg_match('{^HTTP/}i',.$header)).
76c00 7b 0a 24 64 65 63 6f 64 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 65 63 {.$decode.=.false;.}.}..if.($dec
76c20 6f 64 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 50 48 50 5f 56 ode).{.if.(version_compare(PHP_V
76c40 45 52 53 49 4f 4e 2c 20 27 35 2e 34 2e 30 27 2c 20 27 3e 3d 27 29 29 20 7b 0a 24 72 65 73 75 6c ERSION,.'5.4.0',.'>=')).{.$resul
76c60 74 20 3d 20 7a 6c 69 62 5f 64 65 63 6f 64 65 28 24 72 65 73 75 6c 74 29 3b 0a 7d 20 65 6c 73 65 t.=.zlib_decode($result);.}.else
76c80 20 7b 0a 0a 20 24 72 65 73 75 6c 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 .{...$result.=.file_get_contents
76ca0 28 27 63 6f 6d 70 72 65 73 73 2e 7a 6c 69 62 3a 2f 2f 64 61 74 61 3a 61 70 70 6c 69 63 61 74 69 ('compress.zlib://data:applicati
76cc0 6f 6e 2f 6f 63 74 65 74 2d 73 74 72 65 61 6d 3b 62 61 73 65 36 34 2c 27 2e 62 61 73 65 36 34 5f on/octet-stream;base64,'.base64_
76ce0 65 6e 63 6f 64 65 28 24 72 65 73 75 6c 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 encode($result));.}.}.}..if.($th
76d00 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 is->progress).{.$this->io->overw
76d20 72 69 74 65 28 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e rite("....Downloading:.<comment>
76d40 31 30 30 25 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 100%</comment>");.}....if.(false
76d60 20 21 3d 3d 20 24 72 65 73 75 6c 74 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 66 69 6c 65 4e 61 .!==.$result.&&.null.!==.$fileNa
76d80 6d 65 29 20 7b 0a 69 66 20 28 27 27 20 3d 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 74 68 72 6f me).{.if.(''.===.$result).{.thro
76da0 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 22 27 2e 24 74 68 w.new.TransportException('"'.$th
76dc0 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 61 70 70 65 61 72 73 20 62 72 6f 6b 65 6e 2c 20 61 is->fileUrl.'".appears.broken,.a
76de0 6e 64 20 72 65 74 75 72 6e 65 64 20 61 6e 20 65 6d 70 74 79 20 32 30 30 20 72 65 73 70 6f 6e 73 nd.returned.an.empty.200.respons
76e00 65 27 29 3b 0a 7d 0a 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 27 3b 0a 73 65 74 5f e');.}..$errorMessage.=.'';.set_
76e20 65 72 72 6f 72 5f 68 61 6e 64 6c 65 72 28 66 75 6e 63 74 69 6f 6e 20 28 24 63 6f 64 65 2c 20 24 error_handler(function.($code,.$
76e40 6d 73 67 29 20 75 73 65 20 28 26 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 69 66 20 28 msg).use.(&$errorMessage).{.if.(
76e60 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 20 7b 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 2e $errorMessage).{.$errorMessage..
76e80 3d 20 22 5c 6e 22 3b 0a 7d 0a 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 2e 3d 20 70 72 65 67 5f =."\n";.}.$errorMessage..=.preg_
76ea0 72 65 70 6c 61 63 65 28 27 7b 5e 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 5c 28 2e 2a replace('{^file_put_contents\(.*
76ec0 3f 5c 29 3a 20 7d 27 2c 20 27 27 2c 20 24 6d 73 67 29 3b 0a 7d 29 3b 0a 24 72 65 73 75 6c 74 20 ?\):.}',.'',.$msg);.});.$result.
76ee0 3d 20 28 62 6f 6f 6c 29 20 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 =.(bool).file_put_contents($file
76f00 4e 61 6d 65 2c 20 24 72 65 73 75 6c 74 29 3b 0a 72 65 73 74 6f 72 65 5f 65 72 72 6f 72 5f 68 61 Name,.$result);.restore_error_ha
76f20 6e 64 6c 65 72 28 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 ndler();.if.(false.===.$result).
76f40 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('
76f60 54 68 65 20 22 27 2e 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f The."'.$this->fileUrl.'".file.co
76f80 75 6c 64 20 6e 6f 74 20 62 65 20 77 72 69 74 74 65 6e 20 74 6f 20 27 2e 24 66 69 6c 65 4e 61 6d uld.not.be.written.to.'.$fileNam
76fa0 65 2e 27 3a 20 27 2e 24 65 72 72 6f 72 4d 65 73 73 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 e.':.'.$errorMessage);.}.}..if.(
76fc0 24 74 68 69 73 2d 3e 72 65 74 72 79 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 74 72 79 20 3d 20 66 $this->retry).{.$this->retry.=.f
76fe0 61 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 28 24 74 68 69 73 2d 3e alse;..return.$this->get($this->
77000 6f 72 69 67 69 6e 55 72 6c 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 24 61 64 64 69 originUrl,.$this->fileUrl,.$addi
77020 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 2c 20 24 74 68 69 73 2d 3e 66 69 6c 65 4e 61 6d 65 2c 20 tionalOptions,.$this->fileName,.
77040 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d $this->progress);.}..if.(false.=
77060 3d 3d 20 24 72 65 73 75 6c 74 29 20 7b 0a 24 65 20 3d 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 ==.$result).{.$e.=.new.Transport
77080 45 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 Exception('The."'.$this->fileUrl
770a0 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 .'".file.could.not.be.downloaded
770c0 3a 20 27 2e 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 65 72 72 6f 72 43 6f 64 65 29 3b 0a :.'.$errorMessage,.$errorCode);.
770e0 69 66 20 28 21 65 6d 70 74 79 28 24 68 74 74 70 5f 72 65 73 70 6f 6e 73 65 5f 68 65 61 64 65 72 if.(!empty($http_response_header
77100 5b 30 5d 29 29 20 7b 0a 24 65 2d 3e 73 65 74 48 65 61 64 65 72 73 28 24 68 74 74 70 5f 72 65 73 [0])).{.$e->setHeaders($http_res
77120 70 6f 6e 73 65 5f 68 65 61 64 65 72 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 0a 72 ponse_header);.}..throw.$e;.}..r
77140 65 74 75 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f eturn.$result;.}.............pro
77160 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 74 tected.function.callbackGet($not
77180 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 61 ificationCode,.$severity,.$messa
771a0 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 72 ge,.$messageCode,.$bytesTransfer
771c0 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 66 red,.$bytesMax).{.switch.($notif
771e0 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 46 icationCode).{.case.STREAM_NOTIF
77200 59 5f 46 41 49 4c 55 52 45 3a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 55 Y_FAILURE:.case.STREAM_NOTIFY_AU
77220 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 73 61 67 TH_REQUIRED:.if.(401.===.$messag
77240 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 74 65 72 eCode).{.if.(!$this->io->isInter
77260 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 22 20 2e active()).{.$message.=."The.'"..
77280 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 69 72 65 .$this->fileUrl..."'.URL.require
772a0 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 65 20 75 d.authentication.\nYou.must.be.u
772c0 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 3b 0a 0a sing.the.interactive.console";..
772e0 74 68 72 6f 77 20 6e 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 throw.new.TransportException($me
77300 73 73 61 67 65 2c 20 34 30 31 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 6d 70 74 41 75 74 ssage,.401);.}..$this->promptAut
77320 68 41 6e 64 52 65 74 72 79 28 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 6e 6f 74 69 hAndRetry();.break;.}..if.($noti
77340 66 69 63 61 74 69 6f 6e 43 6f 64 65 20 3d 3d 3d 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 41 ficationCode.===.STREAM_NOTIFY_A
77360 55 54 48 5f 52 45 51 55 49 52 45 44 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 74 68 72 6f 77 20 UTH_REQUIRED).{.break;.}..throw.
77380 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 22 27 2e 24 new.TransportException('The."'.$
773a0 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2e 27 22 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 this->fileUrl.'".file.could.not.
773c0 62 65 20 64 6f 77 6e 6c 6f 61 64 65 64 20 28 27 2e 74 72 69 6d 28 24 6d 65 73 73 61 67 65 29 2e be.downloaded.('.trim($message).
773e0 27 29 27 2c 20 24 6d 65 73 73 61 67 65 43 6f 64 65 29 3b 0a 0a 63 61 73 65 20 53 54 52 45 41 4d ')',.$messageCode);..case.STREAM
77400 5f 4e 4f 54 49 46 59 5f 41 55 54 48 5f 52 45 53 55 4c 54 3a 0a 69 66 20 28 34 30 33 20 3d 3d 3d _NOTIFY_AUTH_RESULT:.if.(403.===
77420 20 24 6d 65 73 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 .$messageCode).{.if.(!$this->io-
77440 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 20 7c 7c 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 68 >isInteractive().||.$this->io->h
77460 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 74 68 69 73 2d 3e 6f 72 69 67 69 6e 55 72 asAuthentication($this->originUr
77480 6c 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 22 54 68 65 20 27 22 20 2e 20 24 74 68 69 73 l)).{.$message.=."The.'"...$this
774a0 2d 3e 66 69 6c 65 55 72 6c 20 2e 20 22 27 20 55 52 4c 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 ->fileUrl..."'.URL.could.not.be.
774c0 61 63 63 65 73 73 65 64 3a 20 22 20 2e 20 24 6d 65 73 73 61 67 65 3b 0a 0a 74 68 72 6f 77 20 6e accessed:."...$message;..throw.n
774e0 65 77 20 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 2c 20 ew.TransportException($message,.
77500 34 30 33 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 6d 70 74 41 75 74 68 41 6e 64 52 65 74 403);.}..$this->promptAuthAndRet
77520 72 79 28 29 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 53 54 52 45 ry();.break;.}.break;..case.STRE
77540 41 4d 5f 4e 4f 54 49 46 59 5f 46 49 4c 45 5f 53 49 5a 45 5f 49 53 3a 0a 69 66 20 28 24 74 68 69 AM_NOTIFY_FILE_SIZE_IS:.if.($thi
77560 73 2d 3e 62 79 74 65 73 4d 61 78 20 3c 20 24 62 79 74 65 73 4d 61 78 29 20 7b 0a 24 74 68 69 73 s->bytesMax.<.$bytesMax).{.$this
77580 2d 3e 62 79 74 65 73 4d 61 78 20 3d 20 24 62 79 74 65 73 4d 61 78 3b 0a 7d 0a 62 72 65 61 6b 3b ->bytesMax.=.$bytesMax;.}.break;
775a0 0a 0a 63 61 73 65 20 53 54 52 45 41 4d 5f 4e 4f 54 49 46 59 5f 50 52 4f 47 52 45 53 53 3a 0a 69 ..case.STREAM_NOTIFY_PROGRESS:.i
775c0 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 20 26 26 20 24 74 68 69 73 2d f.($this->bytesMax.>.0.&&.$this-
775e0 3e 70 72 6f 67 72 65 73 73 29 20 7b 0a 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 3d 20 30 3b 0a 0a >progress).{.$progression.=.0;..
77600 69 66 20 28 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 3e 20 30 29 20 7b 0a 24 70 72 6f 67 if.($this->bytesMax.>.0).{.$prog
77620 72 65 73 73 69 6f 6e 20 3d 20 72 6f 75 6e 64 28 24 62 79 74 65 73 54 72 61 6e 73 66 65 72 72 65 ression.=.round($bytesTransferre
77640 64 20 2f 20 24 74 68 69 73 2d 3e 62 79 74 65 73 4d 61 78 20 2a 20 31 30 30 29 3b 0a 7d 0a 0a 69 d./.$this->bytesMax.*.100);.}..i
77660 66 20 28 28 30 20 3d 3d 3d 20 24 70 72 6f 67 72 65 73 73 69 6f 6e 20 25 20 35 29 20 26 26 20 24 f.((0.===.$progression.%.5).&&.$
77680 70 72 6f 67 72 65 73 73 69 6f 6e 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 progression.!==.$this->lastProgr
776a0 65 73 73 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 50 72 6f 67 72 65 73 73 20 3d 20 24 70 72 ess).{.$this->lastProgress.=.$pr
776c0 6f 67 72 65 73 73 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 ogression;.$this->io->overwrite(
776e0 22 20 20 20 20 44 6f 77 6e 6c 6f 61 64 69 6e 67 3a 20 3c 63 6f 6d 6d 65 6e 74 3e 24 70 72 6f 67 "....Downloading:.<comment>$prog
77700 72 65 73 73 69 6f 6e 25 3c 2f 63 6f 6d 6d 65 6e 74 3e 22 2c 20 66 61 6c 73 65 29 3b 0a 7d 0a 7d ression%</comment>",.false);.}.}
77720 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a 70 72 .break;..default:.break;.}.}..pr
77740 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 6d 70 74 41 75 74 68 41 6e 64 52 65 otected.function.promptAuthAndRe
77760 74 72 79 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 6f 76 65 72 77 72 69 74 65 28 27 20 20 try().{.$this->io->overwrite('..
77780 20 20 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 20 72 65 71 75 69 72 65 64 20 28 3c 69 6e 66 6f ..Authentication.required.(<info
777a0 3e 27 2e 70 61 72 73 65 5f 75 72 6c 28 24 74 68 69 73 2d 3e 66 69 6c 65 55 72 6c 2c 20 50 48 50 >'.parse_url($this->fileUrl,.PHP
777c0 5f 55 52 4c 5f 48 4f 53 54 29 2e 27 3c 2f 69 6e 66 6f 3e 29 3a 27 29 3b 0a 24 75 73 65 72 6e 61 _URL_HOST).'</info>):');.$userna
777e0 6d 65 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 61 73 6b 28 27 20 20 20 20 20 20 55 73 65 72 6e me.=.$this->io->ask('......Usern
77800 61 6d 65 3a 20 27 29 3b 0a 24 70 61 73 73 77 6f 72 64 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e ame:.');.$password.=.$this->io->
77820 61 73 6b 41 6e 64 48 69 64 65 41 6e 73 77 65 72 28 27 20 20 20 20 20 20 50 61 73 73 77 6f 72 64 askAndHideAnswer('......Password
77840 3a 20 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 73 65 74 41 75 74 68 65 6e 74 69 63 61 74 69 :.');.$this->io->setAuthenticati
77860 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 2c 20 on($this->originUrl,.$username,.
77880 24 70 61 73 73 77 6f 72 64 29 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 74 72 79 20 3d 20 74 72 75 65 $password);..$this->retry.=.true
778a0 3b 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('
778c0 52 45 54 52 59 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 RETRY');.}..protected.function.g
778e0 65 74 4f 70 74 69 6f 6e 73 46 6f 72 55 72 6c 28 24 6f 72 69 67 69 6e 55 72 6c 2c 20 24 61 64 64 etOptionsForUrl($originUrl,.$add
77900 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 0a 7b 0a 24 68 65 61 64 65 72 73 20 3d 20 61 72 72 itionalOptions).{.$headers.=.arr
77920 61 79 28 0a 73 70 72 69 6e 74 66 28 0a 27 55 73 65 72 2d 41 67 65 6e 74 3a 20 43 6f 6d 70 6f 73 ay(.sprintf(.'User-Agent:.Compos
77940 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 27 2c 0a 43 er/%s.(%s;.%s;.PHP.%s.%s.%s)',.C
77960 6f 6d 70 6f 73 65 72 3a 3a 56 45 52 53 49 4f 4e 20 3d 3d 3d 20 27 40 70 61 63 6b 61 67 65 5f 76 omposer::VERSION.===.'@package_v
77980 65 72 73 69 6f 6e 40 27 20 3f 20 27 73 6f 75 72 63 65 27 20 3a 20 43 6f 6d 70 6f 73 65 72 3a 3a ersion@'.?.'source'.:.Composer::
779a0 56 45 52 53 49 4f 4e 2c 0a 70 68 70 5f 75 6e 61 6d 65 28 27 73 27 29 2c 0a 70 68 70 5f 75 6e 61 VERSION,.php_uname('s'),.php_una
779c0 6d 65 28 27 72 27 29 2c 0a 50 48 50 5f 4d 41 4a 4f 52 5f 56 45 52 53 49 4f 4e 2c 0a 50 48 50 5f me('r'),.PHP_MAJOR_VERSION,.PHP_
779e0 4d 49 4e 4f 52 5f 56 45 52 53 49 4f 4e 2c 0a 50 48 50 5f 52 45 4c 45 41 53 45 5f 56 45 52 53 49 MINOR_VERSION,.PHP_RELEASE_VERSI
77a00 4f 4e 0a 29 0a 29 3b 0a 0a 69 66 20 28 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 7a ON.).);..if.(extension_loaded('z
77a20 6c 69 62 27 29 29 20 7b 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 41 63 63 65 70 74 2d 45 6e lib')).{.$headers[].=.'Accept-En
77a40 63 6f 64 69 6e 67 3a 20 67 7a 69 70 27 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 coding:.gzip';.}..$options.=.arr
77a60 61 79 5f 72 65 70 6c 61 63 65 5f 72 65 63 75 72 73 69 76 65 28 24 74 68 69 73 2d 3e 6f 70 74 69 ay_replace_recursive($this->opti
77a80 6f 6e 73 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c 4f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 24 ons,.$additionalOptions);..if.($
77aa0 74 68 69 73 2d 3e 69 6f 2d 3e 68 61 73 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 this->io->hasAuthentication($ori
77ac0 67 69 6e 55 72 6c 29 29 20 7b 0a 24 61 75 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 67 65 ginUrl)).{.$auth.=.$this->io->ge
77ae0 74 41 75 74 68 65 6e 74 69 63 61 74 69 6f 6e 28 24 6f 72 69 67 69 6e 55 72 6c 29 3b 0a 69 66 20 tAuthentication($originUrl);.if.
77b00 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 20 3d 3d 3d 20 24 6f 72 69 67 69 6e 55 72 6c 20 26 26 20 ('github.com'.===.$originUrl.&&.
77b20 27 78 2d 6f 61 75 74 68 2d 62 61 73 69 63 27 20 3d 3d 3d 20 24 61 75 74 68 5b 27 70 61 73 73 77 'x-oauth-basic'.===.$auth['passw
77b40 6f 72 64 27 5d 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 67 69 74 68 75 62 2d 74 6f 6b 65 6e 27 ord']).{.$options['github-token'
77b60 5d 20 3d 20 24 61 75 74 68 5b 27 75 73 65 72 6e 61 6d 65 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a ].=.$auth['username'];.}.else.{.
77b80 24 61 75 74 68 53 74 72 20 3d 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 65 28 24 61 75 74 68 5b 27 $authStr.=.base64_encode($auth['
77ba0 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
77bc0 72 64 27 5d 29 3b 0a 24 68 65 61 64 65 72 73 5b 5d 20 3d 20 27 41 75 74 68 6f 72 69 7a 61 74 69 rd']);.$headers[].=.'Authorizati
77be0 6f 6e 3a 20 42 61 73 69 63 20 27 2e 24 61 75 74 68 53 74 72 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 on:.Basic.'.$authStr;.}.}..if.(i
77c00 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 sset($options['http']['header'])
77c20 20 26 26 20 21 69 73 5f 61 72 72 61 79 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 .&&.!is_array($options['http']['
77c40 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 header'])).{.$options['http']['h
77c60 65 61 64 65 72 27 5d 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 72 5c 6e 22 2c 20 74 72 69 6d 28 24 eader'].=.explode("\r\n",.trim($
77c80 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 2c 20 22 5c 72 5c 6e options['http']['header'],."\r\n
77ca0 22 29 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 68 65 61 64 65 72 73 20 61 73 20 24 68 65 61 "));.}.foreach.($headers.as.$hea
77cc0 64 65 72 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 der).{.$options['http']['header'
77ce0 5d 5b 5d 20 3d 20 24 68 65 61 64 65 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 70 74 69 6f 6e ][].=.$header;.}..return.$option
77d00 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 s;.}.}.<?php............namespac
77d20 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 63 6c e.Composer\Util;........final.cl
77d40 61 73 73 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 0a 7b 0a 0a 0a 0a 0a 0a ass.StreamContextFactory.{......
77d60 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 67 65 74 43 6f ....public.static.function.getCo
77d80 6e 74 65 78 74 28 24 75 72 6c 2c 20 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e ntext($url,.array.$defaultOption
77da0 73 20 3d 20 61 72 72 61 79 28 29 2c 20 61 72 72 61 79 20 24 64 65 66 61 75 6c 74 50 61 72 61 6d s.=.array(),.array.$defaultParam
77dc0 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 s.=.array()).{.$options.=.array(
77de0 27 68 74 74 70 27 20 3d 3e 20 61 72 72 61 79 28 0a 0a 20 27 66 6f 6c 6c 6f 77 5f 6c 6f 63 61 74 'http'.=>.array(...'follow_locat
77e00 69 6f 6e 27 20 3d 3e 20 31 2c 0a 27 6d 61 78 5f 72 65 64 69 72 65 63 74 73 27 20 3d 3e 20 32 30 ion'.=>.1,.'max_redirects'.=>.20
77e20 2c 0a 29 29 3b 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 48 54 ,.));....if.(!empty($_SERVER['HT
77e40 54 50 5f 50 52 4f 58 59 27 5d 29 20 7c 7c 20 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 TP_PROXY']).||.!empty($_SERVER['
77e60 68 74 74 70 5f 70 72 6f 78 79 27 5d 29 29 20 7b 0a 0a 20 24 70 72 6f 78 79 20 3d 20 70 61 72 73 http_proxy'])).{...$proxy.=.pars
77e80 65 5f 75 72 6c 28 21 65 6d 70 74 79 28 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 e_url(!empty($_SERVER['http_prox
77ea0 79 27 5d 29 20 3f 20 24 5f 53 45 52 56 45 52 5b 27 68 74 74 70 5f 70 72 6f 78 79 27 5d 20 3a 20 y']).?.$_SERVER['http_proxy'].:.
77ec0 24 5f 53 45 52 56 45 52 5b 27 48 54 54 50 5f 50 52 4f 58 59 27 5d 29 3b 0a 7d 0a 0a 69 66 20 28 $_SERVER['HTTP_PROXY']);.}..if.(
77ee0 21 65 6d 70 74 79 28 24 70 72 6f 78 79 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 3d 20 69 73 !empty($proxy)).{.$proxyURL.=.is
77f00 73 65 74 28 24 70 72 6f 78 79 5b 27 73 63 68 65 6d 65 27 5d 29 20 3f 20 24 70 72 6f 78 79 5b 27 set($proxy['scheme']).?.$proxy['
77f20 73 63 68 65 6d 65 27 5d 20 2e 20 27 3a 2f 2f 27 20 3a 20 27 27 3b 0a 24 70 72 6f 78 79 55 52 4c scheme']...'://'.:.'';.$proxyURL
77f40 20 2e 3d 20 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 68 6f 73 74 27 5d 29 20 3f 20 24 70 72 6f ..=.isset($proxy['host']).?.$pro
77f60 78 79 5b 27 68 6f 73 74 27 5d 20 3a 20 27 27 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f xy['host'].:.'';..if.(isset($pro
77f80 78 79 5b 27 70 6f 72 74 27 5d 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 22 20 xy['port'])).{.$proxyURL..=.":".
77fa0 2e 20 24 70 72 6f 78 79 5b 27 70 6f 72 74 27 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 68 74 74 ..$proxy['port'];.}.elseif.('htt
77fc0 70 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 28 24 70 72 6f 78 79 55 52 4c 2c 20 30 2c 20 37 29 p://'.==.substr($proxyURL,.0,.7)
77fe0 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 38 30 22 3b 0a 7d 20 65 6c 73 65 69 66 ).{.$proxyURL..=.":80";.}.elseif
78000 20 28 27 68 74 74 70 73 3a 2f 2f 27 20 3d 3d 20 73 75 62 73 74 72 28 24 70 72 6f 78 79 55 52 4c .('https://'.==.substr($proxyURL
78020 2c 20 30 2c 20 38 29 29 20 7b 0a 24 70 72 6f 78 79 55 52 4c 20 2e 3d 20 22 3a 34 34 33 22 3b 0a ,.0,.8)).{.$proxyURL..=.":443";.
78040 7d 0a 0a 0a 20 24 70 72 6f 78 79 55 52 4c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 }....$proxyURL.=.str_replace(arr
78060 61 79 28 27 68 74 74 70 3a 2f 2f 27 2c 20 27 68 74 74 70 73 3a 2f 2f 27 29 2c 20 61 72 72 61 79 ay('http://',.'https://'),.array
78080 28 27 74 63 70 3a 2f 2f 27 2c 20 27 73 73 6c 3a 2f 2f 27 29 2c 20 24 70 72 6f 78 79 55 52 4c 29 ('tcp://',.'ssl://'),.$proxyURL)
780a0 3b 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 70 72 6f 78 79 55 52 4c 2c 20 27 ;..if.(0.===.strpos($proxyURL,.'
780c0 73 73 6c 3a 27 29 20 26 26 20 21 65 78 74 65 6e 73 69 6f 6e 5f 6c 6f 61 64 65 64 28 27 6f 70 65 ssl:').&&.!extension_loaded('ope
780e0 6e 73 73 6c 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 nssl')).{.throw.new.\RuntimeExce
78100 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 65 6e 61 62 6c 65 20 74 68 65 20 6f 70 65 6e 73 ption('You.must.enable.the.opens
78120 73 6c 20 65 78 74 65 6e 73 69 6f 6e 20 74 6f 20 75 73 65 20 61 20 70 72 6f 78 79 20 6f 76 65 72 sl.extension.to.use.a.proxy.over
78140 20 68 74 74 70 73 27 29 3b 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 70 .https');.}..$options['http']['p
78160 72 6f 78 79 27 5d 20 3d 20 24 70 72 6f 78 79 55 52 4c 3b 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 roxy'].=.$proxyURL;....if.(!empt
78180 79 28 24 5f 53 45 52 56 45 52 5b 27 6e 6f 5f 70 72 6f 78 79 27 5d 29 20 26 26 20 70 61 72 73 65 y($_SERVER['no_proxy']).&&.parse
781a0 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 29 20 7b 0a 24 70 61 74 _url($url,.PHP_URL_HOST)).{.$pat
781c0 74 65 72 6e 20 3d 20 6e 65 77 20 4e 6f 50 72 6f 78 79 50 61 74 74 65 72 6e 28 24 5f 53 45 52 56 tern.=.new.NoProxyPattern($_SERV
781e0 45 52 5b 27 6e 6f 5f 70 72 6f 78 79 27 5d 29 3b 0a 69 66 20 28 24 70 61 74 74 65 72 6e 2d 3e 74 ER['no_proxy']);.if.($pattern->t
78200 65 73 74 28 24 75 72 6c 29 29 20 7b 0a 75 6e 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 est($url)).{.unset($options['htt
78220 70 27 5d 5b 27 70 72 6f 78 79 27 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 21 65 6d 70 74 79 p']['proxy']);.}.}....if.(!empty
78240 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 70 72 6f 78 79 27 5d 29 29 20 7b 0a 0a ($options['http']['proxy'])).{..
78260 20 73 77 69 74 63 68 20 28 70 61 72 73 65 5f 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c .switch.(parse_url($url,.PHP_URL
78280 5f 53 43 48 45 4d 45 29 29 20 7b 0a 63 61 73 65 20 27 68 74 74 70 27 3a 20 0a 20 24 72 65 71 46 _SCHEME)).{.case.'http':...$reqF
782a0 75 6c 6c 55 72 69 45 6e 76 20 3d 20 67 65 74 65 6e 76 28 27 48 54 54 50 5f 50 52 4f 58 59 5f 52 ullUriEnv.=.getenv('HTTP_PROXY_R
782c0 45 51 55 45 53 54 5f 46 55 4c 4c 55 52 49 27 29 3b 0a 69 66 20 28 24 72 65 71 46 75 6c 6c 55 72 EQUEST_FULLURI');.if.($reqFullUr
782e0 69 45 6e 76 20 3d 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 iEnv.===.false.||.$reqFullUriEnv
78300 20 3d 3d 3d 20 27 27 20 7c 7c 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 46 75 6c 6c 55 .===.''.||.(strtolower($reqFullU
78320 72 69 45 6e 76 29 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 72 65 riEnv).!==.'false'.&&.(bool).$re
78340 71 46 75 6c 6c 55 72 69 45 6e 76 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d qFullUriEnv)).{.$options['http']
78360 5b 27 72 65 71 75 65 73 74 5f 66 75 6c 6c 75 72 69 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 ['request_fulluri'].=.true;.}.br
78380 65 61 6b 3b 0a 63 61 73 65 20 27 68 74 74 70 73 27 3a 20 0a 20 24 72 65 71 46 75 6c 6c 55 72 69 eak;.case.'https':...$reqFullUri
783a0 45 6e 76 20 3d 20 67 65 74 65 6e 76 28 27 48 54 54 50 53 5f 50 52 4f 58 59 5f 52 45 51 55 45 53 Env.=.getenv('HTTPS_PROXY_REQUES
783c0 54 5f 46 55 4c 4c 55 52 49 27 29 3b 0a 69 66 20 28 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 T_FULLURI');.if.($reqFullUriEnv.
783e0 3d 3d 3d 20 66 61 6c 73 65 20 7c 7c 20 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 20 3d 3d 3d 20 ===.false.||.$reqFullUriEnv.===.
78400 27 27 20 7c 7c 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 72 65 71 46 75 6c 6c 55 72 69 45 6e 76 ''.||.(strtolower($reqFullUriEnv
78420 29 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 24 72 65 71 46 75 6c 6c ).!==.'false'.&&.(bool).$reqFull
78440 55 72 69 45 6e 76 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 72 65 71 UriEnv)).{.$options['http']['req
78460 75 65 73 74 5f 66 75 6c 6c 75 72 69 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 62 72 65 61 6b 3b 0a uest_fulluri'].=.true;.}.break;.
78480 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d 29 29 20 7b 0a }..if.(isset($proxy['user'])).{.
784a0 24 61 75 74 68 20 3d 20 75 72 6c 64 65 63 6f 64 65 28 24 70 72 6f 78 79 5b 27 75 73 65 72 27 5d $auth.=.urldecode($proxy['user']
784c0 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 70 72 6f 78 79 5b 27 70 61 73 73 27 5d 29 29 20 7b 0a );.if.(isset($proxy['pass'])).{.
784e0 24 61 75 74 68 20 2e 3d 20 27 3a 27 20 2e 20 75 72 6c 64 65 63 6f 64 65 28 24 70 72 6f 78 79 5b $auth..=.':'...urldecode($proxy[
78500 27 70 61 73 73 27 5d 29 3b 0a 7d 0a 24 61 75 74 68 20 3d 20 62 61 73 65 36 34 5f 65 6e 63 6f 64 'pass']);.}.$auth.=.base64_encod
78520 65 28 24 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 e($auth);....if.(isset($defaultO
78540 70 74 69 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 69 66 20 ptions['http']['header'])).{.if.
78560 28 69 73 5f 73 74 72 69 6e 67 28 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 (is_string($defaultOptions['http
78580 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 ']['header'])).{.$defaultOptions
785a0 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 61 72 72 61 79 28 24 64 65 66 61 ['http']['header'].=.array($defa
785c0 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 3b 0a 7d ultOptions['http']['header']);.}
785e0 0a 24 64 65 66 61 75 6c 74 4f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 .$defaultOptions['http']['header
78600 27 5d 5b 5d 20 3d 20 22 50 72 6f 78 79 2d 41 75 74 68 6f 72 69 7a 61 74 69 6f 6e 3a 20 42 61 73 '][].=."Proxy-Authorization:.Bas
78620 69 63 20 7b 24 61 75 74 68 7d 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 ic.{$auth}";.}.else.{.$options['
78640 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 61 72 72 61 79 28 22 50 72 6f 78 79 2d http']['header'].=.array("Proxy-
78660 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 68 7d 22 29 3b 0a Authorization:.Basic.{$auth}");.
78680 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 }.}.}.}..$options.=.array_replac
786a0 65 5f 72 65 63 75 72 73 69 76 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 65 66 61 75 6c 74 4f 70 e_recursive($options,.$defaultOp
786c0 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 tions);..if.(isset($options['htt
786e0 70 27 5d 5b 27 68 65 61 64 65 72 27 5d 29 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 p']['header'])).{.$options['http
78700 27 5d 5b 27 68 65 61 64 65 72 27 5d 20 3d 20 73 65 6c 66 3a 3a 66 69 78 48 74 74 70 48 65 61 64 ']['header'].=.self::fixHttpHead
78720 65 72 46 69 65 6c 64 28 24 6f 70 74 69 6f 6e 73 5b 27 68 74 74 70 27 5d 5b 27 68 65 61 64 65 72 erField($options['http']['header
78740 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 65 61 6d 5f 63 6f 6e 74 65 78 74 5f 63 72 ']);.}..return.stream_context_cr
78760 65 61 74 65 28 24 6f 70 74 69 6f 6e 73 2c 20 24 64 65 66 61 75 6c 74 50 61 72 61 6d 73 29 3b 0a eate($options,.$defaultParams);.
78780 7d 0a 0a 0a 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 63 }............private.static.func
787a0 74 69 6f 6e 20 66 69 78 48 74 74 70 48 65 61 64 65 72 46 69 65 6c 64 28 24 68 65 61 64 65 72 29 tion.fixHttpHeaderField($header)
787c0 0a 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 68 65 61 64 65 72 29 29 20 7b 0a 24 68 65 .{.if.(!is_array($header)).{.$he
787e0 61 64 65 72 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 72 5c 6e 22 2c 20 24 68 65 61 64 65 72 29 3b ader.=.explode("\r\n",.$header);
78800 0a 7d 0a 75 61 73 6f 72 74 28 24 68 65 61 64 65 72 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 65 6c .}.uasort($header,.function.($el
78820 29 20 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 63 6f 6e 74 65 6e 74 ).{.return.preg_match('{^content
78840 2d 74 79 70 65 7d 69 27 2c 20 24 65 6c 29 20 3f 20 31 20 3a 20 2d 31 3b 0a 7d 29 3b 0a 0a 72 65 -type}i',.$el).?.1.:.-1;.});..re
78860 74 75 72 6e 20 24 68 65 61 64 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a turn.$header;.}.}.<?php.........
78880 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 0a 75 73 65 ...namespace.Composer\Util;..use
788a0 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 6f .Composer\Package\Loader\ArrayLo
788c0 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 ader;.use.Composer\Package\Loade
788e0 72 5c 56 61 6c 69 64 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 3b 0a 75 73 65 20 43 6f 6d r\ValidatingArrayLoader;.use.Com
78900 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 61 64 65 72 5c 49 6e 76 61 6c 69 64 50 61 63 6b poser\Package\Loader\InvalidPack
78920 61 67 65 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c ageException;.use.Composer\Json\
78940 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d JsonValidationException;.use.Com
78960 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
78980 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 61 73 73 20 43 er\Json\JsonFile;........class.C
789a0 6f 6e 66 69 67 56 61 6c 69 64 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 70 onfigValidator.{.private.$io;..p
789c0 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 74 ublic.function.__construct(IOInt
789e0 65 72 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 erface.$io).{.$this->io.=.$io;.}
78a00 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 .........public.function.validat
78a20 65 28 24 66 69 6c 65 29 0a 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 e($file).{.$errors.=.array();.$p
78a40 75 62 6c 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 ublishErrors.=.array();.$warning
78a60 73 20 3d 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 s.=.array();....$laxValid.=.fals
78a80 65 3b 0a 74 72 79 20 7b 0a 24 6a 73 6f 6e 20 3d 20 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 66 e;.try.{.$json.=.new.JsonFile($f
78aa0 69 6c 65 2c 20 6e 65 77 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 28 24 74 68 69 73 2d ile,.new.RemoteFilesystem($this-
78ac0 3e 69 6f 29 29 3b 0a 24 6d 61 6e 69 66 65 73 74 20 3d 20 24 6a 73 6f 6e 2d 3e 72 65 61 64 28 29 >io));.$manifest.=.$json->read()
78ae0 3b 0a 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 65 6d 61 28 4a 73 6f 6e 46 69 6c ;..$json->validateSchema(JsonFil
78b00 65 3a 3a 4c 41 58 5f 53 43 48 45 4d 41 29 3b 0a 24 6c 61 78 56 61 6c 69 64 20 3d 20 74 72 75 65 e::LAX_SCHEMA);.$laxValid.=.true
78b20 3b 0a 24 6a 73 6f 6e 2d 3e 76 61 6c 69 64 61 74 65 53 63 68 65 6d 61 28 29 3b 0a 7d 20 63 61 74 ;.$json->validateSchema();.}.cat
78b40 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 20 ch.(JsonValidationException.$e).
78b60 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 6d {.foreach.($e->getErrors().as.$m
78b80 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 6c essage).{.if.($laxValid).{.$publ
78ba0 69 73 68 45 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 20 65 6c 73 65 20 7b ishErrors[].=.$message;.}.else.{
78bc0 0a 24 65 72 72 6f 72 73 5b 5d 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 0a 7d 0a 7d 20 63 61 74 .$errors[].=.$message;.}.}.}.cat
78be0 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 72 72 6f 72 73 5b 5d 20 3d ch.(\Exception.$e).{.$errors[].=
78c00 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 .$e->getMessage();..return.array
78c20 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 ($errors,.$publishErrors,.$warni
78c40 6e 67 73 29 3b 0a 7d 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 ngs);.}....if.(!empty($manifest[
78c60 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 6d 'license'])).{...if.(is_array($m
78c80 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 anifest['license'])).{.foreach.(
78ca0 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 $manifest['license'].as.$key.=>.
78cc0 24 6c 69 63 65 6e 73 65 29 20 7b 0a 69 66 20 28 27 70 72 6f 70 72 69 65 74 61 72 79 27 20 3d 3d $license).{.if.('proprietary'.==
78ce0 3d 20 24 6c 69 63 65 6e 73 65 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 6c =.$license).{.unset($manifest['l
78d00 69 63 65 6e 73 65 27 5d 5b 24 6b 65 79 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 6c 69 63 65 6e 73 65 icense'][$key]);.}.}.}..$license
78d20 56 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 70 64 78 4c 69 63 65 6e 73 65 49 64 65 6e 74 Validator.=.new.SpdxLicenseIdent
78d40 69 66 69 65 72 28 29 3b 0a 69 66 20 28 27 70 72 6f 70 72 69 65 74 61 72 79 27 20 21 3d 3d 20 24 ifier();.if.('proprietary'.!==.$
78d60 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 20 26 26 20 61 72 72 61 79 28 29 20 21 manifest['license'].&&.array().!
78d80 3d 3d 20 24 6d 61 6e 69 66 65 73 74 5b 27 6c 69 63 65 6e 73 65 27 5d 20 26 26 20 21 24 6c 69 63 ==.$manifest['license'].&&.!$lic
78da0 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 65 73 enseValidator->validate($manifes
78dc0 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 20 73 t['license'])).{.$warnings[].=.s
78de0 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 61 6c printf(.'License.%s.is.not.a.val
78e00 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 65 20 id.SPDX.license.identifier,.see.
78e20 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 69 66 http://www.spdx.org/licenses/.if
78e40 20 79 6f 75 20 75 73 65 20 61 6e 20 6f 70 65 6e 20 6c 69 63 65 6e 73 65 2e 27 0a 2e 22 5c 6e 49 .you.use.an.open.license.'.."\nI
78e60 66 20 74 68 65 20 73 6f 66 74 77 61 72 65 20 69 73 20 63 6c 6f 73 65 64 2d 73 6f 75 72 63 65 2c f.the.software.is.closed-source,
78e80 20 79 6f 75 20 6d 61 79 20 75 73 65 20 5c 22 70 72 6f 70 72 69 65 74 61 72 79 5c 22 20 61 73 20 .you.may.use.\"proprietary\".as.
78ea0 6c 69 63 65 6e 73 65 2e 22 2c 0a 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 6d 61 6e 69 66 65 73 74 license.",.json_encode($manifest
78ec0 5b 27 6c 69 63 65 6e 73 65 27 5d 29 0a 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 77 61 72 6e ['license']).);.}.}.else.{.$warn
78ee0 69 6e 67 73 5b 5d 20 3d 20 27 4e 6f 20 6c 69 63 65 6e 73 65 20 73 70 65 63 69 66 69 65 64 2c 20 ings[].=.'No.license.specified,.
78f00 69 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 64 6f 20 73 6f 2e 20 46 6f 72 20 it.is.recommended.to.do.so..For.
78f20 63 6c 6f 73 65 64 2d 73 6f 75 72 63 65 20 73 6f 66 74 77 61 72 65 20 79 6f 75 20 6d 61 79 20 75 closed-source.software.you.may.u
78f40 73 65 20 22 70 72 6f 70 72 69 65 74 61 72 79 22 20 61 73 20 6c 69 63 65 6e 73 65 2e 27 3b 0a 7d se."proprietary".as.license.';.}
78f60 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 20 ..if.(!empty($manifest['name']).
78f80 26 26 20 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5b 41 2d 5a 5d 7d 27 2c 20 24 6d 61 6e 69 66 65 &&.preg_match('{[A-Z]}',.$manife
78fa0 73 74 5b 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 73 75 67 67 65 73 74 4e 61 6d 65 20 3d 20 70 72 st['name'])).{.$suggestName.=.pr
78fc0 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 28 3f 3a 28 5b 61 2d 7a 5d 29 28 5b 41 2d 5a 5d 29 7c 28 eg_replace('{(?:([a-z])([A-Z])|(
78fe0 5b 41 2d 5a 5d 29 28 5b 41 2d 5a 5d 5b 61 2d 7a 5d 29 29 7d 27 2c 20 27 5c 5c 31 5c 5c 33 2d 5c [A-Z])([A-Z][a-z]))}',.'\\1\\3-\
79000 5c 32 5c 5c 34 27 2c 20 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 29 3b 0a 24 73 75 67 \2\\4',.$manifest['name']);.$sug
79020 67 65 73 74 4e 61 6d 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 75 67 67 65 73 74 4e 61 gestName.=.strtolower($suggestNa
79040 6d 65 29 3b 0a 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 0a 27 4e 61 me);..$warnings[].=.sprintf(.'Na
79060 6d 65 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 6d 61 74 63 68 20 74 68 65 20 62 65 73 74 20 me."%s".does.not.match.the.best.
79080 70 72 61 63 74 69 63 65 20 28 65 2e 67 2e 20 6c 6f 77 65 72 2d 63 61 73 65 64 2f 77 69 74 68 2d practice.(e.g..lower-cased/with-
790a0 64 61 73 68 65 73 29 2e 20 57 65 20 73 75 67 67 65 73 74 20 75 73 69 6e 67 20 22 25 73 22 20 69 dashes)..We.suggest.using."%s".i
790c0 6e 73 74 65 61 64 2e 20 41 73 20 73 75 63 68 20 79 6f 75 20 77 69 6c 6c 20 6e 6f 74 20 62 65 20 nstead..As.such.you.will.not.be.
790e0 61 62 6c 65 20 74 6f 20 73 75 62 6d 69 74 20 69 74 20 74 6f 20 50 61 63 6b 61 67 69 73 74 2e 27 able.to.submit.it.to.Packagist.'
79100 2c 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 2c 0a 24 73 75 67 67 65 73 74 4e 61 6d ,.$manifest['name'],.$suggestNam
79120 65 0a 29 3b 0a 7d 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 6e 69 66 65 73 74 5b 27 74 79 e.);.}..if.(!empty($manifest['ty
79140 70 65 27 5d 29 20 26 26 20 24 6d 61 6e 69 66 65 73 74 5b 27 74 79 70 65 27 5d 20 3d 3d 20 27 63 pe']).&&.$manifest['type'].==.'c
79160 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 29 20 7b 0a 24 77 61 72 6e 69 6e 67 73 5b omposer-installer').{.$warnings[
79180 5d 20 3d 20 22 54 68 65 20 70 61 63 6b 61 67 65 20 74 79 70 65 20 27 63 6f 6d 70 6f 73 65 72 2d ].=."The.package.type.'composer-
791a0 69 6e 73 74 61 6c 6c 65 72 27 20 69 73 20 64 65 70 72 65 63 61 74 65 64 2e 20 50 6c 65 61 73 65 installer'.is.deprecated..Please
791c0 20 64 69 73 74 72 69 62 75 74 65 20 79 6f 75 72 20 63 75 73 74 6f 6d 20 69 6e 73 74 61 6c 6c 65 .distribute.your.custom.installe
791e0 72 73 20 61 73 20 70 6c 75 67 69 6e 73 20 66 72 6f 6d 20 6e 6f 77 20 6f 6e 2e 20 53 65 65 20 68 rs.as.plugins.from.now.on..See.h
79200 74 74 70 3a 2f 2f 67 65 74 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 61 72 74 69 63 6c ttp://getcomposer.org/doc/articl
79220 65 73 2f 70 6c 75 67 69 6e 73 2e 6d 64 20 66 6f 72 20 70 6c 75 67 69 6e 20 64 6f 63 75 6d 65 6e es/plugins.md.for.plugin.documen
79240 74 61 74 69 6f 6e 2e 22 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 6d 61 6e 69 66 65 tation.";.}....if.(isset($manife
79260 73 74 5b 27 72 65 71 75 69 72 65 27 5d 29 20 26 26 20 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 st['require']).&&.isset($manifes
79280 74 5b 27 72 65 71 75 69 72 65 2d 64 65 76 27 5d 29 29 20 7b 0a 24 72 65 71 75 69 72 65 4f 76 65 t['require-dev'])).{.$requireOve
792a0 72 72 69 64 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 6d 61 rrides.=.array_intersect_key($ma
792c0 6e 69 66 65 73 74 5b 27 72 65 71 75 69 72 65 27 5d 2c 20 24 6d 61 6e 69 66 65 73 74 5b 27 72 65 nifest['require'],.$manifest['re
792e0 71 75 69 72 65 2d 64 65 76 27 5d 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 72 65 71 75 69 quire-dev']);..if.(!empty($requi
79300 72 65 4f 76 65 72 72 69 64 65 73 29 29 20 7b 0a 24 70 6c 75 72 61 6c 20 3d 20 28 63 6f 75 6e 74 reOverrides)).{.$plural.=.(count
79320 28 24 72 65 71 75 69 72 65 4f 76 65 72 72 69 64 65 73 29 20 3e 20 31 29 20 3f 20 27 61 72 65 27 ($requireOverrides).>.1).?.'are'
79340 20 3a 20 27 69 73 27 3b 0a 24 77 61 72 6e 69 6e 67 73 5b 5d 20 3d 20 69 6d 70 6c 6f 64 65 28 27 .:.'is';.$warnings[].=.implode('
79360 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 72 65 71 75 69 72 65 4f 76 65 72 72 69 64 65 ,.',.array_keys($requireOverride
79380 73 29 29 2e 20 22 20 7b 24 70 6c 75 72 61 6c 7d 20 72 65 71 75 69 72 65 64 20 62 6f 74 68 20 69 s))..".{$plural}.required.both.i
793a0 6e 20 72 65 71 75 69 72 65 20 61 6e 64 20 72 65 71 75 69 72 65 2d 64 65 76 2c 20 74 68 69 73 20 n.require.and.require-dev,.this.
793c0 63 61 6e 20 6c 65 61 64 20 74 6f 20 75 6e 65 78 70 65 63 74 65 64 20 62 65 68 61 76 69 6f 72 22 can.lead.to.unexpected.behavior"
793e0 3b 0a 7d 0a 7d 0a 0a 74 72 79 20 7b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 56 61 6c 69 64 ;.}.}..try.{.$loader.=.new.Valid
79400 61 74 69 6e 67 41 72 72 61 79 4c 6f 61 64 65 72 28 6e 65 77 20 41 72 72 61 79 4c 6f 61 64 65 72 atingArrayLoader(new.ArrayLoader
79420 28 29 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 ());.if.(!isset($manifest['versi
79440 6f 6e 27 5d 29 29 20 7b 0a 24 6d 61 6e 69 66 65 73 74 5b 27 76 65 72 73 69 6f 6e 27 5d 20 3d 20 on'])).{.$manifest['version'].=.
79460 27 31 2e 30 2e 30 27 3b 0a 7d 0a 69 66 20 28 21 69 73 73 65 74 28 24 6d 61 6e 69 66 65 73 74 5b '1.0.0';.}.if.(!isset($manifest[
79480 27 6e 61 6d 65 27 5d 29 29 20 7b 0a 24 6d 61 6e 69 66 65 73 74 5b 27 6e 61 6d 65 27 5d 20 3d 20 'name'])).{.$manifest['name'].=.
794a0 27 64 75 6d 6d 79 2f 64 75 6d 6d 79 27 3b 0a 7d 0a 24 6c 6f 61 64 65 72 2d 3e 6c 6f 61 64 28 24 'dummy/dummy';.}.$loader->load($
794c0 6d 61 6e 69 66 65 73 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 49 6e 76 61 6c 69 64 50 61 63 6b 61 manifest);.}.catch.(InvalidPacka
794e0 67 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 72 72 6f 72 73 20 3d 20 61 72 72 61 geException.$e).{.$errors.=.arra
79500 79 5f 6d 65 72 67 65 28 24 65 72 72 6f 72 73 2c 20 24 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 y_merge($errors,.$e->getErrors()
79520 29 3b 0a 7d 0a 0a 24 77 61 72 6e 69 6e 67 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 77 );.}..$warnings.=.array_merge($w
79540 61 72 6e 69 6e 67 73 2c 20 24 6c 6f 61 64 65 72 2d 3e 67 65 74 57 61 72 6e 69 6e 67 73 28 29 29 arnings,.$loader->getWarnings())
79560 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 24 65 72 72 6f 72 73 2c 20 24 70 75 62 6c 69 73 ;..return.array($errors,.$publis
79580 68 45 72 72 6f 72 73 2c 20 24 77 61 72 6e 69 6e 67 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a hErrors,.$warnings);.}.}.<?php..
795a0 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
795c0 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 0a 0a 0a l;.......class.ErrorHandler.{...
795e0 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 6f 6e 20 .........public.static.function.
79600 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 65 2c 20 handle($level,.$message,.$file,.
79620 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 6e 67 28 $line).{...if.(!error_reporting(
79640 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 78 64 65 )).{.return;.}..if.(ini_get('xde
79660 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 5c 6e 5c bug.scream')).{.$message..=."\n\
79680 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 65 61 6d nWarning:.You.have.xdebug.scream
796a0 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 61 79 20 .enabled,.the.warning.above.may.
796c0 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 73 73 65 be".."\na.legitimately.suppresse
796e0 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 70 6f 73 d.error.that.you.were.not.suppos
79700 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 72 6f 72 ed.to.see.";.}..throw.new.\Error
79720 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 2c 20 24 Exception($message,.0,.$level,.$
79740 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 73 74 61 file,.$line);.}.......public.sta
79760 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 5f 65 72 tic.function.register().{.set_er
79780 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 27 68 61 ror_handler(array(__CLASS__,.'ha
797a0 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 0a 6e 61 ndle'));.}.}.<?php............na
797c0 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 6f 6d 70 mespace.Composer\Util;..use.Comp
797e0 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 61 73 73 oser\Json\JsonFile;........class
79800 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 72 69 76 .SpdxLicenseIdentifier.{....priv
79820 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 63 74 69 ate.$identifiers;..public.functi
79840 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 74 49 64 on.__construct().{.$this->initId
79860 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 66 75 6e entifiers();.}........public.fun
79880 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 20 28 69 ction.validate($license).{.if.(i
798a0 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 20 63 6f s_array($license)).{.$count.=.co
798c0 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 20 63 6f unt($license);.if.($count.!==.co
798e0 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 73 5f 73 unt(array_filter($license,.'is_s
79900 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 64 41 72 tring'))).{.throw.new.\InvalidAr
79920 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 69 6e 67 gumentException('Array.of.string
79940 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 63 6f 75 s.expected.');.}.$license.=.$cou
79960 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 24 6c 69 nt.>.1.?.'('.implode('.or.',.$li
79980 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 6c 69 63 cense).')'.:.(string).reset($lic
799a0 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 6e 73 65 ense);.}.if.(!is_string($license
799c0 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
799e0 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 74 72 69 xception(sprintf(.'Array.or.Stri
79a00 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 79 70 65 ng.expected,.%s.given.',.gettype
79a20 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 73 2d 3e ($license).));.}..return.$this->
79a40 69 73 56 61 6c 69 64 4c 69 63 65 6e 73 65 53 74 72 69 6e 67 28 24 6c 69 63 65 6e 73 65 29 3b 0a isValidLicenseString($license);.
79a60 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 65 6e 74 }.....private.function.initIdent
79a80 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 6f 6e 46 ifiers().{.$jsonFile.=.new.JsonF
79aa0 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 73 70 64 ile(__DIR__...'/../../../res/spd
79ac0 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 64 65 6e x-identifier.json');.$this->iden
79ae0 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 7d 0a 0a tifiers.=.$jsonFile->read();.}..
79b00 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 4c 69 63 .....private.function.isValidLic
79b20 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 0a 72 65 enseIdentifier($identifier).{.re
79b40 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 68 69 73 turn.in_array($identifier,.$this
79b60 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 61 74 65 ->identifiers);.}........private
79b80 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 67 28 24 .function.isValidLicenseString($
79ba0 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 70 6f 27 license).{.$tokens.=.array(.'po'
79bc0 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 3d 3e 20 .=>.'\(',.'pc'.=>.'\)',.'op'.=>.
79be0 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 4e 45 7c '(?:or|and)',.'lix'.=>.'(?:NONE|
79c00 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 6e 73 65 NOASSERTION)',.'lir'.=>.'License
79c20 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 2d 5a 30 Ref-\d+',.'lic'.=>.'[-+_.a-zA-Z0
79c40 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 3d 3e 20 -9]{3,}',.'ws'.=>.'\s+',.'_'.=>.
79c60 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 75 73 65 '.',.);..$next.=.function.().use
79c80 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 20 24 6f .($license,.$tokens).{.static.$o
79ca0 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 72 6c 65 ffset.=.0;..if.($offset.>=.strle
79cc0 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 0a 0a 66 n($license)).{.return.null;.}..f
79ce0 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 74 6f 6b oreach.($tokens.as.$name.=>.$tok
79d00 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 5f 6d 61 en).{.if.(false.===.$r.=.preg_ma
79d20 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 6e 73 65 tch('{'...$token...'}',.$license
79d40 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 52 45 2c ,.$matches,.PREG_OFFSET_CAPTURE,
79d60 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 6d 65 45 .$offset)).{.throw.new.\RuntimeE
79d80 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 73 20 66 xception('Pattern.for.token.%s.f
79da0 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 3b 0a 7d ailed.(regex.error).',.$name);.}
79dc0 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 69 66 20 .if.($r.===.0).{.continue;.}.if.
79de0 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 7b 0a 63 ($matches[0][1].!==.$offset).{.c
79e00 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 24 6d 61 ontinue;.}.$offset.+=.strlen($ma
79e20 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 6e 61 6d tches[0][0]);..return.array($nam
79e40 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 6e 65 77 e,.$matches[0][0]);.}..throw.new
79e60 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 74 68 65 .\RuntimeException('At.least.the
79e80 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 20 62 75 .last.pattern.needs.to.match,.bu
79ea0 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 73 20 6d t.it.did.not.(dot-match-all.is.m
79ec0 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 72 65 71 issing?).');.};..$open.=.0;.$req
79ee0 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 69 6c 65 uire.=.1;.$lastop.=.null;..while
79f00 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 78 74 28 .(list($token,.$string).=.$next(
79f20 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 70 6f 27 )).{.switch.($token).{.case.'po'
79f40 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 65 74 75 :.if.($open.||.!$require).{.retu
79f60 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 0a 63 61 rn.false;.}.$open.=.1;.break;.ca
79f80 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 72 65 71 se.'pc':.if.($open.!==.1.||.$req
79fa0 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 6c 73 65 uire.||.!$lastop).{.return.false
79fc0 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 70 27 3a ;.}.$open.=.2;.break;.case.'op':
79fe0 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 74 75 72 .if.($require.||.!$open).{.retur
7a000 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 20 3d 20 n.false;.}.$lastop.||.$lastop.=.
7a020 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 69 6e 67 $string;.if.($lastop.!==.$string
7a040 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 24 72 65 71 75 69 72 65 20 3d 20 31 ).{.return.false;.}.$require.=.1
7a060 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 6e 29 20 ;.break;.case.'lix':.if.($open).
7a080 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 61 73 65 {.return.false;.}.goto.lir;.case
7a0a0 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 63 65 6e .'lic':.if.(!$this->isValidLicen
7a0c0 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 72 6e 20 seIdentifier($string)).{.return.
7a0e0 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 66 20 28 false;.}...case.'lir':.lir:.if.(
7a100 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 24 72 65 !$require).{.return.false;.}.$re
7a120 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 62 72 65 quire.=.0;.break;.case.'ws':.bre
7a140 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 65 66 61 ak;.case.'_':.return.false;.defa
7a160 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 69 6f 6e ult:.throw.new.\RuntimeException
7a180 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 27 2c 20 (sprintf('Unparsed.token:.%s.',.
7a1a0 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 0a 72 65 print_r($token,.true)));.}.}..re
7a1c0 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 3b 0a 7d turn.!($open.%.2.||.$require);.}
7a1e0 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
7a200 6d 70 6f 73 65 72 5c 55 74 69 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 6f 50 72 6f 78 79 50 61 mposer\Util;.....class.NoProxyPa
7a220 74 74 65 72 6e 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 72 75 6c 65 73 20 3d 20 61 72 ttern.{....protected.$rules.=.ar
7a240 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e ray();.....public.function.__con
7a260 73 74 72 75 63 74 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6c 65 73 20 struct($pattern).{.$this->rules.
7a280 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 22 2f 5b 5c 73 2c 5d 2b 2f 22 2c 20 24 70 61 74 74 65 72 =.preg_split("/[\s,]+/",.$patter
7a2a0 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 65 n);.}.........public.function.te
7a2c0 73 74 28 24 75 72 6c 29 0a 7b 0a 24 68 6f 73 74 20 3d 20 70 61 72 73 65 5f 75 72 6c 28 24 75 72 st($url).{.$host.=.parse_url($ur
7a2e0 6c 2c 20 50 48 50 5f 55 52 4c 5f 48 4f 53 54 29 3b 0a 24 70 6f 72 74 20 3d 20 70 61 72 73 65 5f l,.PHP_URL_HOST);.$port.=.parse_
7a300 75 72 6c 28 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 50 4f 52 54 29 3b 0a 0a 69 66 20 28 65 6d url($url,.PHP_URL_PORT);..if.(em
7a320 70 74 79 28 24 70 6f 72 74 29 29 20 7b 0a 73 77 69 74 63 68 20 28 70 61 72 73 65 5f 75 72 6c 28 pty($port)).{.switch.(parse_url(
7a340 24 75 72 6c 2c 20 50 48 50 5f 55 52 4c 5f 53 43 48 45 4d 45 29 29 20 7b 0a 63 61 73 65 20 27 68 $url,.PHP_URL_SCHEME)).{.case.'h
7a360 74 74 70 27 3a 0a 24 70 6f 72 74 20 3d 20 38 30 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 68 ttp':.$port.=.80;.break;.case.'h
7a380 74 74 70 73 27 3a 0a 24 70 6f 72 74 20 3d 20 34 34 33 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 0a ttps':.$port.=.443;.break;.}.}..
7a3a0 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 20 foreach.($this->rules.as.$rule).
7a3c0 7b 0a 69 66 20 28 24 72 75 6c 65 20 3d 3d 20 27 2a 27 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 {.if.($rule.==.'*').{.return.tru
7a3e0 65 3b 0a 7d 0a 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 0a 6c 69 73 74 28 24 72 75 6c e;.}..$match.=.false;..list($rul
7a400 65 48 6f 73 74 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 72 75 6c 65 29 3b 0a 6c 69 eHost).=.explode(':',.$rule);.li
7a420 73 74 28 24 62 61 73 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 72 75 6c 65 48 6f st($base).=.explode('/',.$ruleHo
7a440 73 74 29 3b 0a 0a 69 66 20 28 66 69 6c 74 65 72 5f 76 61 72 28 24 62 61 73 65 2c 20 46 49 4c 54 st);..if.(filter_var($base,.FILT
7a460 45 52 5f 56 41 4c 49 44 41 54 45 5f 49 50 2c 20 46 49 4c 54 45 52 5f 46 4c 41 47 5f 49 50 56 34 ER_VALIDATE_IP,.FILTER_FLAG_IPV4
7a480 29 29 20 7b 0a 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 69 70 29 29 20 7b 0a 24 69 70 20 3d 20 )).{...if.(!isset($ip)).{.$ip.=.
7a4a0 67 65 74 68 6f 73 74 62 79 6e 61 6d 65 28 24 68 6f 73 74 29 3b 0a 7d 0a 0a 69 66 20 28 73 74 72 gethostbyname($host);.}..if.(str
7a4c0 70 6f 73 28 24 72 75 6c 65 48 6f 73 74 2c 20 27 2f 27 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 7b pos($ruleHost,.'/').===.false).{
7a4e0 0a 24 6d 61 74 63 68 20 3d 20 24 69 70 20 3d 3d 3d 20 24 72 75 6c 65 48 6f 73 74 3b 0a 7d 20 65 .$match.=.$ip.===.$ruleHost;.}.e
7a500 6c 73 65 20 7b 0a 0a 20 0a 20 69 66 20 28 24 69 70 20 3d 3d 3d 20 24 68 6f 73 74 29 20 7b 0a 24 lse.{.....if.($ip.===.$host).{.$
7a520 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6d 61 74 63 68 match.=.false;.}.else.{...$match
7a540 20 3d 20 73 65 6c 66 3a 3a 69 6e 43 49 44 52 42 6c 6f 63 6b 28 24 72 75 6c 65 48 6f 73 74 2c 20 .=.self::inCIDRBlock($ruleHost,.
7a560 24 69 70 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 0a 24 68 61 79 73 74 61 63 6b 20 3d $ip);.}.}.}.else.{...$haystack.=
7a580 20 27 2e 27 20 2e 20 74 72 69 6d 28 24 68 6f 73 74 2c 20 27 2e 27 29 20 2e 20 27 2e 27 3b 0a 24 .'.'...trim($host,.'.')...'.';.$
7a5a0 6e 65 65 64 6c 65 20 3d 20 27 2e 27 2e 20 74 72 69 6d 28 24 72 75 6c 65 48 6f 73 74 2c 20 27 2e needle.=.'.'..trim($ruleHost,.'.
7a5c0 27 29 20 2e 27 2e 27 3b 0a 24 6d 61 74 63 68 20 3d 20 73 74 72 69 70 6f 73 28 73 74 72 72 65 76 ')..'.';.$match.=.stripos(strrev
7a5e0 28 24 68 61 79 73 74 61 63 6b 29 2c 20 73 74 72 72 65 76 28 24 6e 65 65 64 6c 65 29 29 20 3d 3d ($haystack),.strrev($needle)).==
7a600 3d 20 30 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 20 26 26 20 73 74 72 70 6f 73 28 24 =.0;.}....if.($match.&&.strpos($
7a620 72 75 6c 65 2c 20 27 3a 27 29 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 6c 69 73 74 28 2c 20 24 rule,.':').!==.false).{.list(,.$
7a640 72 75 6c 65 50 6f 72 74 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 72 75 6c 65 29 3b rulePort).=.explode(':',.$rule);
7a660 0a 69 66 20 28 21 65 6d 70 74 79 28 24 72 75 6c 65 50 6f 72 74 29 20 26 26 20 24 70 6f 72 74 20 .if.(!empty($rulePort).&&.$port.
7a680 21 3d 20 24 72 75 6c 65 50 6f 72 74 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a !=.$rulePort).{.$match.=.false;.
7a6a0 7d 0a 7d 0a 0a 69 66 20 28 24 6d 61 74 63 68 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a }.}..if.($match).{.return.true;.
7a6c0 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 0a 0a 0a }.}..return.false;.}............
7a6e0 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 6e 43 49 44 52 42 6c private.static.function.inCIDRBl
7a700 6f 63 6b 28 24 63 69 64 72 2c 20 24 69 70 29 0a 7b 0a 0a 20 6c 69 73 74 28 24 62 61 73 65 2c 20 ock($cidr,.$ip).{...list($base,.
7a720 24 62 69 74 73 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 63 69 64 72 29 3b 0a 0a 0a $bits).=.explode('/',.$cidr);...
7a740 20 6c 69 73 74 28 24 61 2c 20 24 62 2c 20 24 63 2c 20 24 64 29 20 3d 20 65 78 70 6c 6f 64 65 28 .list($a,.$b,.$c,.$d).=.explode(
7a760 27 2e 27 2c 20 24 62 61 73 65 29 3b 0a 0a 0a 20 24 69 20 3d 20 28 24 61 20 3c 3c 20 32 34 29 20 '.',.$base);....$i.=.($a.<<.24).
7a780 2b 20 28 24 62 20 3c 3c 20 31 36 29 20 2b 20 28 24 63 20 3c 3c 20 38 29 20 2b 20 24 64 3b 0a 24 +.($b.<<.16).+.($c.<<.8).+.$d;.$
7a7a0 6d 61 73 6b 20 3d 20 24 62 69 74 73 20 3d 3d 20 30 20 3f 20 30 3a 20 28 7e 30 20 3c 3c 20 28 33 mask.=.$bits.==.0.?.0:.(~0.<<.(3
7a7c0 32 20 2d 20 24 62 69 74 73 29 29 3b 0a 0a 0a 20 24 6c 6f 77 20 3d 20 24 69 20 26 20 24 6d 61 73 2.-.$bits));....$low.=.$i.&.$mas
7a7e0 6b 3b 0a 0a 0a 20 24 68 69 67 68 20 3d 20 24 69 20 7c 20 28 7e 24 6d 61 73 6b 20 26 20 30 78 46 k;....$high.=.$i.|.(~$mask.&.0xF
7a800 46 46 46 46 46 46 46 29 3b 0a 0a 0a 20 6c 69 73 74 28 24 61 2c 20 24 62 2c 20 24 63 2c 20 24 64 FFFFFFF);....list($a,.$b,.$c,.$d
7a820 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 69 70 29 3b 0a 0a 0a 20 24 63 68 65 63 6b ).=.explode('.',.$ip);....$check
7a840 20 3d 20 28 24 61 20 3c 3c 20 32 34 29 20 2b 20 28 24 62 20 3c 3c 20 31 36 29 20 2b 20 28 24 63 .=.($a.<<.24).+.($b.<<.16).+.($c
7a860 20 3c 3c 20 38 29 20 2b 20 24 64 3b 0a 0a 0a 20 0a 20 72 65 74 75 72 6e 20 24 63 68 65 63 6b 20 .<<.8).+.$d;......return.$check.
7a880 3e 3d 20 24 6c 6f 77 20 26 26 20 24 63 68 65 63 6b 20 3c 3d 20 24 68 69 67 68 3b 0a 7d 0a 7d 0a >=.$low.&&.$check.<=.$high;.}.}.
7a8a0 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
7a8c0 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 5c 49 4f 49 6e 74 ser\Util;..use.Composer\IO\IOInt
7a8e0 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 63 6f 6e 73 74 20 4d erface;......class.Svn.{.const.M
7a900 41 58 5f 51 54 59 5f 41 55 54 48 5f 54 52 49 45 53 20 3d 20 35 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 AX_QTY_AUTH_TRIES.=.5;.....prote
7a920 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 6f 74 65 63 74 65 64 cted.$credentials;.....protected
7a940 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 24 69 6f 3b 0a 0a 0a .$hasAuth;.....protected.$io;...
7a960 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 74 65 63 74 65 64 20 ..protected.$url;.....protected.
7a980 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 0a 0a 0a 0a 0a 70 72 $cacheCredentials.=.true;.....pr
7a9a0 6f 74 65 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 otected.$process;.....protected.
7a9c0 24 71 74 79 41 75 74 68 54 72 69 65 73 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 $qtyAuthTries.=.0;.......public.
7a9e0 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 20 49 4f 49 6e 74 function.__construct($url,.IOInt
7aa00 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 24 70 72 6f erface.$io,.ProcessExecutor.$pro
7aa20 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 3d 20 24 75 72 6c cess.=.null).{.$this->url.=.$url
7aa40 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 70 72 6f 63 65 73 ;.$this->io.=.$io;.$this->proces
7aa60 73 20 3d 20 24 70 72 6f 63 65 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 s.=.$process.?:.new.ProcessExecu
7aa80 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 69 63 20 66 75 6e tor;.}................public.fun
7aaa0 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 72 6c 2c 20 24 63 ction.execute($command,.$url,.$c
7aac0 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 76 65 72 62 6f 73 wd.=.null,.$path.=.null,.$verbos
7aae0 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 20 24 74 68 69 73 e.=.false).{.$svnCommand.=.$this
7ab00 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 6c 2c 20 24 70 61 ->getCommand($command,.$url,.$pa
7ab20 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 20 24 74 68 69 73 th);.$output.=.null;.$io.=.$this
7ab40 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 28 24 74 79 70 65 ->io;.$handler.=.function.($type
7ab60 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 24 69 6f 2c 20 24 ,.$buffer).use.(&$output,.$io,.$
7ab80 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 6f 75 74 27 29 20 verbose).{.if.($type.!==.'out').
7aba0 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 69 66 20 28 27 52 65 64 69 72 65 63 74 69 6e 67 20 74 6f 20 {.return;.}.if.('Redirecting.to.
7abc0 55 52 4c 20 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 75 66 66 65 72 2c 20 30 2c 20 31 39 29 URL.'.===.substr($buffer,.0,.19)
7abe0 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 66 66 65 72 ).{.return;.}.$output..=.$buffer
7ac00 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 28 24 62 75 ;.if.($verbose).{.$io->write($bu
7ac20 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 20 24 74 68 ffer,.false);.}.};.$status.=.$th
7ac40 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 6d 61 6e 64 is->process->execute($svnCommand
7ac60 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 20 24 73 74 ,.$handler,.$cwd);.if.(0.===.$st
7ac80 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 66 20 28 65 atus).{.return.$output;.}..if.(e
7aca0 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 74 68 69 73 mpty($output)).{.$output.=.$this
7acc0 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 0a 7d 0a 0a ->process->getErrorOutput();.}..
7ace0 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 70 75 74 2c ..if.(false.===.stripos($output,
7ad00 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 73 65 72 76 .'Could.not.authenticate.to.serv
7ad20 65 72 3a 27 29 0a 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6f 75 74 70 er:').&&.false.===.stripos($outp
7ad40 75 74 2c 20 27 61 75 74 68 6f 72 69 7a 61 74 69 6f 6e 20 66 61 69 6c 65 64 27 29 0a 26 26 20 66 ut,.'authorization.failed').&&.f
7ad60 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 24 6f 75 74 70 75 74 2c 20 27 73 76 6e 3a 20 alse.===.stripos($output,.'svn:.
7ad80 45 31 37 30 30 30 31 3a 27 29 0a 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 69 70 6f 73 28 E170001:').&&.false.===.stripos(
7ada0 24 6f 75 74 70 75 74 2c 20 27 73 76 6e 3a 20 45 32 31 35 30 30 34 3a 27 29 29 20 7b 0a 74 68 72 $output,.'svn:.E215004:')).{.thr
7adc0 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 6f 75 74 70 75 74 ow.new.\RuntimeException($output
7ade0 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 49 6e 74 65 72 61 );.}....if.(!$this->io->isIntera
7ae00 63 74 69 76 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 ctive()).{.throw.new.\RuntimeExc
7ae20 65 70 74 69 6f 6e 28 0a 27 63 61 6e 20 6e 6f 74 20 61 73 6b 20 66 6f 72 20 61 75 74 68 65 6e 74 eption(.'can.not.ask.for.authent
7ae40 69 63 61 74 69 6f 6e 20 69 6e 20 6e 6f 6e 20 69 6e 74 65 72 61 63 74 69 76 65 20 6d 6f 64 65 20 ication.in.non.interactive.mode.
7ae60 28 27 2e 24 6f 75 74 70 75 74 2e 27 29 27 0a 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 ('.$output.')'.);.}....if.($this
7ae80 2d 3e 71 74 79 41 75 74 68 54 72 69 65 73 2b 2b 20 3c 20 73 65 6c 66 3a 3a 4d 41 58 5f 51 54 59 ->qtyAuthTries++.<.self::MAX_QTY
7aea0 5f 41 55 54 48 5f 54 52 49 45 53 20 7c 7c 20 21 24 74 68 69 73 2d 3e 68 61 73 41 75 74 68 28 29 _AUTH_TRIES.||.!$this->hasAuth()
7aec0 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
7aee0 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
7af00 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
7af20 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
7af40 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
7af60 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
7af80 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
7afa0 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
7afc0 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
7afe0 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
7b000 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
7b020 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
7b040 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
7b060 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
7b080 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
7b0a0 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
7b0c0 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
7b0e0 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
7b100 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
7b120 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
7b140 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
7b160 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
7b180 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
7b1a0 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).);
7b1c0 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
7b1e0 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
7b200 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
7b220 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
7b240 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.'';.}..
7b260 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.%
7b280 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
7b2a0 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->
7b2c0 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($
7b2e0 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()).);.}.......
7b300 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(
7b320 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
7b340 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
7b360 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
7b380 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
7b3a0 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[
7b3c0 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
7b3e0 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
7b400 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).{
7b420 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
7b440 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.$
7b460 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'];.}
7b480 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 75 74 .......protected.function.hasAut
7b4a0 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 75 74 h().{.if.(null.!==.$this->hasAut
7b4c0 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 0a 24 h).{.return.$this->hasAuth;.}..$
7b4e0 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 66 20 uri.=.parse_url($this->url);.if.
7b500 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 20 24 (empty($uri['user'])).{.return.$
7b520 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 73 2d this->hasAuth.=.false;.}..$this-
7b540 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 69 5b >credentials['username'].=.$uri[
7b560 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 27 5d 'user'];.if.(!empty($uri['pass']
7b580 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 6f 72 )).{.$this->credentials['passwor
7b5a0 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 24 74 d'].=.$uri['pass'];.}..return.$t
7b5c0 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 72 6f his->hasAuth.=.true;.}.......pro
7b5e0 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 0a 7b tected.function.getAuthCache().{
7b600 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 73 20 .return.$this->cacheCredentials.
7b620 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 0a 3c ?.''.:.'--no-auth-cache.';.}.}.<
7b640 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
7b660 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 52 6f 6f 74 50 61 er;..use.Composer\Package\RootPa
7b680 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 50 61 63 ckageInterface;.use.Composer\Pac
7b6a0 6b 61 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 kage\Locker;.use.Composer\Reposi
7b6c0 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 tory\RepositoryManager;.use.Comp
7b6e0 6f 73 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 oser\Installer\InstallationManag
7b700 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 4d 61 er;.use.Composer\Plugin\PluginMa
7b720 6e 61 67 65 72 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 nager;.use.Composer\Downloader\D
7b740 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 ownloadManager;.use.Composer\Eve
7b760 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 ntDispatcher\EventDispatcher;.us
7b780 65 20 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 e.Composer\Autoload\AutoloadGene
7b7a0 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 0a 7b 0a 63 6f rator;.......class.Composer.{.co
7b7c0 6e 73 74 20 56 45 52 53 49 4f 4e 20 3d 20 27 31 2e 30 2e 30 2d 61 6c 70 68 61 38 27 3b 0a 63 6f nst.VERSION.=.'1.0.0-alpha8';.co
7b7e0 6e 73 74 20 52 45 4c 45 41 53 45 5f 44 41 54 45 20 3d 20 27 32 30 31 34 2d 30 31 2d 30 36 20 31 nst.RELEASE_DATE.=.'2014-01-06.1
7b800 38 3a 33 39 3a 35 39 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 63 6b 61 67 65 3b 0a 8:39:59';.....private.$package;.
7b820 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 6f 63 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ....private.$locker;.....private
7b840 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 .$repositoryManager;.....private
7b860 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 .$downloadManager;.....private.$
7b880 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 installationManager;.....private
7b8a0 20 24 70 6c 75 67 69 6e 4d 61 6e 61 67 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f .$pluginManager;.....private.$co
7b8c0 6e 66 69 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 nfig;.....private.$eventDispatch
7b8e0 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 er;.....private.$autoloadGenerat
7b900 6f 72 3b 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 61 63 6b or;......public.function.setPack
7b920 61 67 65 28 52 6f 6f 74 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 age(RootPackageInterface.$packag
7b940 65 29 0a 7b 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 e).{.$this->package.=.$package;.
7b960 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 }.....public.function.getPackage
7b980 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 0a ().{.return.$this->package;.}...
7b9a0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 66 69 67 28 43 6f 6e 66 ..public.function.setConfig(Conf
7b9c0 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 20 3d 20 24 63 ig.$config).{.$this->config.=.$c
7b9e0 6f 6e 66 69 67 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 onfig;.}.....public.function.get
7ba00 43 6f 6e 66 69 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 3b Config().{.return.$this->config;
7ba20 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 4c 6f 63 6b 65 72 .}.....public.function.setLocker
7ba40 28 4c 6f 63 6b 65 72 20 24 6c 6f 63 6b 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 (Locker.$locker).{.$this->locker
7ba60 20 3d 20 24 6c 6f 63 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f .=.$locker;.}.....public.functio
7ba80 6e 20 67 65 74 4c 6f 63 6b 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c 6f n.getLocker().{.return.$this->lo
7baa0 63 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 cker;.}.....public.function.setR
7bac0 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 epositoryManager(RepositoryManag
7bae0 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 er.$manager).{.$this->repository
7bb00 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 Manager.=.$manager;.}.....public
7bb20 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 28 29 .function.getRepositoryManager()
7bb40 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 .{.return.$this->repositoryManag
7bb60 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 6f 77 er;.}.....public.function.setDow
7bb80 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 6d 61 nloadManager(DownloadManager.$ma
7bba0 6e 61 67 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 nager).{.$this->downloadManager.
7bbc0 3d 20 24 6d 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 =.$manager;.}.....public.functio
7bbe0 6e 20 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 n.getDownloadManager().{.return.
7bc00 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 $this->downloadManager;.}.....pu
7bc20 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e blic.function.setInstallationMan
7bc40 61 67 65 72 28 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 ager(InstallationManager.$manage
7bc60 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 20 r).{.$this->installationManager.
7bc80 3d 20 24 6d 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 =.$manager;.}.....public.functio
7bca0 6e 20 67 65 74 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 0a 7b 0a 72 65 74 n.getInstallationManager().{.ret
7bcc0 75 72 6e 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 3b 0a urn.$this->installationManager;.
7bce0 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 6c 75 67 69 6e 4d }.....public.function.setPluginM
7bd00 61 6e 61 67 65 72 28 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 20 24 6d 61 6e 61 67 65 72 29 0a 7b anager(PluginManager.$manager).{
7bd20 0a 24 74 68 69 73 2d 3e 70 6c 75 67 69 6e 4d 61 6e 61 67 65 72 20 3d 20 24 6d 61 6e 61 67 65 72 .$this->pluginManager.=.$manager
7bd40 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 6c 75 67 69 ;.}.....public.function.getPlugi
7bd60 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 70 6c 75 67 69 nManager().{.return.$this->plugi
7bd80 6e 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 6e 20 nManager;.}.....public.function.
7bda0 73 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 45 76 65 6e 74 44 69 73 70 61 74 63 68 setEventDispatcher(EventDispatch
7bdc0 65 72 20 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 76 er.$eventDispatcher).{.$this->ev
7bde0 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 65 72 entDispatcher.=.$eventDispatcher
7be00 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 76 65 6e 74 ;.}.....public.function.getEvent
7be20 44 69 73 70 61 74 63 68 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 76 65 Dispatcher().{.return.$this->eve
7be40 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ntDispatcher;.}.....public.funct
7be60 69 6f 6e 20 73 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 41 75 74 6f 6c 6f 61 ion.setAutoloadGenerator(Autoloa
7be80 64 47 65 6e 65 72 61 74 6f 72 20 24 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 29 0a 7b dGenerator.$autoloadGenerator).{
7bea0 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 24 61 75 74 .$this->autoloadGenerator.=.$aut
7bec0 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e oloadGenerator;.}.....public.fun
7bee0 63 74 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 29 0a 7b 0a 72 ction.getAutoloadGenerator().{.r
7bf00 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a eturn.$this->autoloadGenerator;.
7bf20 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
7bf40 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 4d 61 6e 69 omposer\Json;.....class.JsonMani
7bf60 70 75 6c 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 52 45 43 55 52 53 pulator.{.private.static.$RECURS
7bf80 45 5f 42 4c 4f 43 4b 53 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 4a 53 4f 4e 5f 56 E_BLOCKS;.private.static.$JSON_V
7bfa0 41 4c 55 45 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 4a 53 4f 4e 5f 53 54 52 49 4e ALUE;.private.static.$JSON_STRIN
7bfc0 47 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 74 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 G;..private.$contents;.private.$
7bfe0 6e 65 77 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 64 65 6e 74 3b 0a 0a 70 75 62 6c 69 newline;.private.$indent;..publi
7c000 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6e 74 65 6e 74 73 c.function.__construct($contents
7c020 29 0a 7b 0a 69 66 20 28 21 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 29 20 ).{.if.(!self::$RECURSE_BLOCKS).
7c040 7b 0a 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 20 3d 20 27 28 3f 3a 5b 5e {.self::$RECURSE_BLOCKS.=.'(?:[^
7c060 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 28 {}]*|\{(?:[^{}]*|\{(?:[^{}]*|\{(
7c080 3f 3a 5b 5e 7b 7d 5d 2a 7c 5c 7b 5b 5e 7b 7d 5d 2a 5c 7d 29 2a 5c 7d 29 2a 5c 7d 29 2a 5c 7d 29 ?:[^{}]*|\{[^{}]*\})*\})*\})*\})
7c0a0 2a 27 3b 0a 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 20 3d 20 27 22 28 3f 3a 5c 5c *';.self::$JSON_STRING.=.'"(?:\\
7c0c0 5c 5c 5b 22 62 66 6e 72 74 2f 5c 5c 5c 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 41 2d 46 30 2d 39 5d \\["bfnrt/\\\\]|\\\\u[a-fA-F0-9]
7c0e0 7b 34 7d 7c 5b 5e 5c 30 2d 5c 78 30 39 5c 78 30 61 2d 5c 78 31 66 5c 5c 5c 5c 22 5d 29 2a 22 27 {4}|[^\0-\x09\x0a-\x1f\\\\"])*"'
7c100 3b 0a 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 20 3d 20 27 28 3f 3a 5b 30 2d 39 2e 5d ;.self::$JSON_VALUE.=.'(?:[0-9.]
7c120 2b 7c 6e 75 6c 6c 7c 74 72 75 65 7c 66 61 6c 73 65 7c 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f +|null|true|false|'.self::$JSON_
7c140 53 54 52 49 4e 47 2e 27 7c 5c 5b 5b 5e 5c 5d 5d 2a 5c 5d 7c 5c 7b 27 2e 73 65 6c 66 3a 3a 24 52 STRING.'|\[[^\]]*\]|\{'.self::$R
7c160 45 43 55 52 53 45 5f 42 4c 4f 43 4b 53 2e 27 5c 7d 29 27 3b 0a 7d 0a 0a 24 63 6f 6e 74 65 6e 74 ECURSE_BLOCKS.'\})';.}..$content
7c180 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 70 72 65 67 5f 6d s.=.trim($contents);.if.(!preg_m
7c1a0 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 74 65 6e 74 73 29 atch('#^\{(.*)\}$#s',.$contents)
7c1c0 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
7c1e0 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 74 20 62 65 20 61 ception('The.json.file.must.be.a
7c200 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 6e 65 77 6c 69 6e n.object.({})');.}.$this->newlin
7c220 65 20 3d 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 6f 6e 74 65 6e 74 73 2c 20 e.=.false.!==.strpos($contents,.
7c240 22 5c 72 5c 6e 22 29 20 3f 20 22 5c 72 5c 6e 22 3a 20 22 5c 6e 22 3b 0a 24 74 68 69 73 2d 3e 63 "\r\n").?."\r\n":."\n";.$this->c
7c260 6f 6e 74 65 6e 74 73 20 3d 20 24 63 6f 6e 74 65 6e 74 73 20 3d 3d 3d 20 27 7b 7d 27 20 3f 20 27 ontents.=.$contents.===.'{}'.?.'
7c280 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 20 27 7d 27 20 3a 20 24 63 6f 6e {'...$this->newline...'}'.:.$con
7c2a0 74 65 6e 74 73 3b 0a 24 74 68 69 73 2d 3e 64 65 74 65 63 74 49 6e 64 65 6e 74 69 6e 67 28 29 3b tents;.$this->detectIndenting();
7c2c0 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 74 65 6e 74 73 28 .}..public.function.getContents(
7c2e0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 2e 20 24 74 68 ).{.return.$this->contents...$th
7c300 69 73 2d 3e 6e 65 77 6c 69 6e 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 is->newline;.}..public.function.
7c320 61 64 64 4c 69 6e 6b 28 24 74 79 70 65 2c 20 24 70 61 63 6b 61 67 65 2c 20 24 63 6f 6e 73 74 72 addLink($type,.$package,.$constr
7c340 61 69 6e 74 29 0a 7b 0a 24 64 61 74 61 20 3d 20 40 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 74 68 aint).{.$data.=.@json_decode($th
7c360 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 74 72 75 65 29 3b 0a 0a 0a 20 69 66 20 28 6e 75 6c 6c is->contents,.true);....if.(null
7c380 20 3d 3d 3d 20 24 64 61 74 61 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a .===.$data).{.return.false;.}...
7c3a0 20 69 66 20 28 21 69 73 73 65 74 28 24 64 61 74 61 5b 24 74 79 70 65 5d 29 29 20 7b 0a 72 65 74 .if.(!isset($data[$type])).{.ret
7c3c0 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 4d 61 69 6e 4b 65 79 28 24 74 79 70 65 2c 20 61 72 72 urn.$this->addMainKey($type,.arr
7c3e0 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 3b 0a 7d 0a ay($package.=>.$constraint));.}.
7c400 0a 24 72 65 67 65 78 20 3d 20 27 7b 5e 28 5c 73 2a 5c 7b 5c 73 2a 28 3f 3a 27 2e 73 65 6c 66 3a .$regex.=.'{^(\s*\{\s*(?:'.self:
7c420 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 2e 27 5c 73 2a 3a 5c 73 2a 27 2e 73 65 6c 66 3a 3a 24 4a :$JSON_STRING.'\s*:\s*'.self::$J
7c440 53 4f 4e 5f 56 41 4c 55 45 2e 27 5c 73 2a 2c 5c 73 2a 29 2a 3f 29 27 2e 0a 27 28 27 2e 70 72 65 SON_VALUE.'\s*,\s*)*?)'..'('.pre
7c460 67 5f 71 75 6f 74 65 28 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 74 79 70 65 29 29 g_quote(JsonFile::encode($type))
7c480 2e 27 5c 73 2a 3a 5c 73 2a 29 28 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 .'\s*:\s*)('.self::$JSON_VALUE.'
7c4a0 29 28 2e 2a 29 7d 73 27 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 )(.*)}s';.if.(!preg_match($regex
7c4c0 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 65 73 29 29 20 7b 0a ,.$this->contents,.$matches)).{.
7c4e0 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 6c 69 6e 6b 73 20 3d 20 24 6d 61 74 63 68 return.false;.}..$links.=.$match
7c500 65 73 5b 33 5d 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 64 61 74 61 5b 24 74 79 70 65 5d 5b 24 es[3];..if.(isset($data[$type][$
7c520 70 61 63 6b 61 67 65 5d 29 29 20 7b 0a 0a 20 24 70 61 63 6b 61 67 65 52 65 67 65 78 20 3d 20 73 package])).{...$packageRegex.=.s
7c540 74 72 5f 72 65 70 6c 61 63 65 28 27 2f 27 2c 20 27 5c 5c 5c 5c 3f 2f 27 2c 20 70 72 65 67 5f 71 tr_replace('/',.'\\\\?/',.preg_q
7c560 75 6f 74 65 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 0a 20 24 6c 69 6e 6b 73 20 3d 20 70 72 65 67 uote($package));...$links.=.preg
7c580 5f 72 65 70 6c 61 63 65 28 27 7b 22 27 2e 24 70 61 63 6b 61 67 65 52 65 67 65 78 2e 27 22 28 5c _replace('{"'.$packageRegex.'"(\
7c5a0 73 2a 3a 5c 73 2a 29 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 2e 27 7d 69 27 s*:\s*)'.self::$JSON_STRING.'}i'
7c5c0 2c 20 61 64 64 63 73 6c 61 73 68 65 73 28 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 ,.addcslashes(JsonFile::encode($
7c5e0 70 61 63 6b 61 67 65 29 2e 27 24 7b 31 7d 22 27 2e 24 63 6f 6e 73 74 72 61 69 6e 74 2e 27 22 27 package).'${1}"'.$constraint.'"'
7c600 2c 20 27 5c 5c 27 29 2c 20 24 6c 69 6e 6b 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 70 ,.'\\'),.$links);.}.else.{.if.(p
7c620 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 73 2a 5c 7b 5c 73 2a 5c 53 2b 2e 2a 3f 28 5c 73 2a 5c reg_match('#^\s*\{\s*\S+.*?(\s*\
7c640 7d 5c 73 2a 29 24 23 73 27 2c 20 24 6c 69 6e 6b 73 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 }\s*)$#s',.$links,.$match)).{...
7c660 24 6c 69 6e 6b 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 7b 27 2e 70 72 65 67 5f $links.=.preg_replace(.'{'.preg_
7c680 71 75 6f 74 65 28 24 6d 61 74 63 68 5b 31 5d 29 2e 27 24 7d 27 2c 0a 61 64 64 63 73 6c 61 73 68 quote($match[1]).'$}',.addcslash
7c6a0 65 73 28 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 es(','...$this->newline...$this-
7c6c0 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 >indent...$this->indent...JsonFi
7c6e0 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 27 2e 4a 73 6f 6e 46 69 le::encode($package).':.'.JsonFi
7c700 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 2e 20 24 6d 61 74 63 68 le::encode($constraint)...$match
7c720 5b 31 5d 2c 20 27 5c 5c 27 29 2c 0a 24 6c 69 6e 6b 73 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a [1],.'\\'),.$links.);.}.else.{..
7c740 20 24 6c 69 6e 6b 73 20 3d 20 27 7b 27 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e .$links.=.'{'...$this->newline..
7c760 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e .$this->indent...$this->indent..
7c780 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 70 61 63 6b 61 67 65 29 2e 27 3a 20 27 .JsonFile::encode($package).':.'
7c7a0 2e 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 63 6f 6e 73 74 72 61 69 6e 74 29 20 2e .JsonFile::encode($constraint)..
7c7c0 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 20 2e 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 .$this->newline...$this->indent.
7c7e0 2e 20 27 7d 27 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 24 6d ..'}';.}.}..$this->contents.=.$m
7c800 61 74 63 68 65 73 5b 31 5d 20 2e 20 24 6d 61 74 63 68 65 73 5b 32 5d 20 2e 20 24 6c 69 6e 6b 73 atches[1]...$matches[2]...$links
7c820 20 2e 20 24 6d 61 74 63 68 65 73 5b 34 5d 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a ...$matches[4];..return.true;.}.
7c840 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 .public.function.addRepository($
7c860 6e 61 6d 65 2c 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 name,.$config).{.return.$this->a
7c880 64 64 53 75 62 4e 6f 64 65 28 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 2c 20 24 6e 61 6d 65 2c ddSubNode('repositories',.$name,
7c8a0 20 24 63 6f 6e 66 69 67 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 .$config);.}..public.function.re
7c8c0 6d 6f 76 65 52 65 70 6f 73 69 74 6f 72 79 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 24 moveRepository($name).{.return.$
7c8e0 74 68 69 73 2d 3e 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 27 72 65 70 6f 73 69 74 6f 72 69 65 this->removeSubNode('repositorie
7c900 73 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 s',.$name);.}..public.function.a
7c920 64 64 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b ddConfigSetting($name,.$value).{
7c940 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 53 75 62 4e 6f 64 65 28 27 63 6f 6e 66 69 .return.$this->addSubNode('confi
7c960 67 27 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 g',.$name,.$value);.}..public.fu
7c980 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 43 6f 6e 66 69 67 53 65 74 74 69 6e 67 28 24 6e 61 6d 65 nction.removeConfigSetting($name
7c9a0 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 53 75 62 4e 6f 64 65 28 ).{.return.$this->removeSubNode(
7c9c0 27 63 6f 6e 66 69 67 27 2c 20 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 'config',.$name);.}..public.func
7c9e0 74 69 6f 6e 20 61 64 64 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 tion.addSubNode($mainNode,.$name
7ca00 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 ,.$value).{...if.(!preg_match('#
7ca20 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 23 27 2c 20 24 74 68 69 73 2d 3e "'.$mainNode.'":\s*\{#',.$this->
7ca40 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4d 61 69 6e 4b 65 79 28 27 contents)).{.$this->addMainKey('
7ca60 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 27 2c 20 61 72 72 61 79 28 24 6e 61 6d 65 20 3d 3e 20 24 '.$mainNode.'',.array($name.=>.$
7ca80 76 61 6c 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 73 75 62 4e 61 value));..return.true;.}..$subNa
7caa0 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 me.=.null;.if.(false.!==.strpos(
7cac0 24 6e 61 6d 65 2c 20 27 2e 27 29 29 20 7b 0a 6c 69 73 74 28 24 6e 61 6d 65 2c 20 24 73 75 62 4e $name,.'.')).{.list($name,.$subN
7cae0 61 6d 65 29 20 3d 20 65 78 70 6c 6f 64 65 28 27 2e 27 2c 20 24 6e 61 6d 65 2c 20 32 29 3b 0a 7d ame).=.explode('.',.$name,.2);.}
7cb00 0a 0a 0a 20 24 6e 6f 64 65 52 65 67 65 78 20 3d 20 27 23 28 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 ....$nodeRegex.=.'#("'.$mainNode
7cb20 2e 27 22 3a 5c 73 2a 5c 7b 29 28 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 5f 42 4c 4f 43 .'":\s*\{)('.self::$RECURSE_BLOC
7cb40 4b 53 2e 27 29 28 5c 7d 29 23 73 27 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 24 6e KS.')(\})#s';.if.(!preg_match($n
7cb60 6f 64 65 52 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 24 6d 61 74 63 odeRegex,.$this->contents,.$matc
7cb80 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 68 69 6c 64 72 65 6e h)).{.return.false;.}..$children
7cba0 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 0a 0a 20 69 66 20 28 21 40 6a 73 6f 6e 5f 64 65 63 6f .=.$match[2];....if.(!@json_deco
7cbc0 64 65 28 27 7b 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 7d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 de('{'.$children.'}')).{.return.
7cbe0 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 0a 0a 20 69 66 20 28 false;.}..$that.=.$this;....if.(
7cc00 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 28 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d preg_match('{("'.preg_quote($nam
7cc20 65 29 2e 27 22 5c 73 2a 3a 5c 73 2a 29 28 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 e).'"\s*:\s*)('.self::$JSON_VALU
7cc40 45 2e 27 29 28 2c 3f 29 7d 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 65 73 29 E.')(,?)}',.$children,.$matches)
7cc60 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c ).{.$children.=.preg_replace_cal
7cc80 6c 62 61 63 6b 28 27 7b 28 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 22 lback('{("'.preg_quote($name).'"
7cca0 5c 73 2a 3a 5c 73 2a 29 28 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 29 28 \s*:\s*)('.self::$JSON_VALUE.')(
7ccc0 2c 3f 29 7d 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 75 73 65 20 28 ,?)}',.function.($matches).use.(
7cce0 24 6e 61 6d 65 2c 20 24 73 75 62 4e 61 6d 65 2c 20 24 76 61 6c 75 65 2c 20 24 74 68 61 74 29 20 $name,.$subName,.$value,.$that).
7cd00 7b 0a 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 63 75 72 56 {.if.($subName.!==.null).{.$curV
7cd20 61 6c 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 74 72 al.=.json_decode($matches[2],.tr
7cd40 75 65 29 3b 0a 24 63 75 72 56 61 6c 5b 24 73 75 62 4e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b ue);.$curVal[$subName].=.$value;
7cd60 0a 24 76 61 6c 75 65 20 3d 20 24 63 75 72 56 61 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 .$value.=.$curVal;.}..return.$ma
7cd80 74 63 68 65 73 5b 31 5d 20 2e 20 24 74 68 61 74 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 75 65 2c tches[1]...$that->format($value,
7cda0 20 31 29 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 5d 3b 0a 7d 2c 20 24 63 68 69 6c 64 72 65 6e 29 .1)...$matches[3];.},.$children)
7cdc0 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5b 5e 5c 73 5d 28 5c ;.}.elseif.(preg_match('#[^\s](\
7cde0 73 2a 29 24 23 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 69 66 s*)$#',.$children,.$match)).{.if
7ce00 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 .($subName.!==.null).{.$value.=.
7ce20 61 72 72 61 79 28 24 73 75 62 4e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 20 array($subName.=>.$value);.}....
7ce40 24 63 68 69 6c 64 72 65 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 6d $children.=.preg_replace(.'#'.$m
7ce60 61 74 63 68 5b 31 5d 2e 27 24 23 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 27 2c 27 20 2e 20 atch[1].'$#',.addcslashes(','...
7ce80 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 20 2e $this->newline...$this->indent..
7cea0 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 6f 64 .$this->indent...JsonFile::encod
7cec0 65 28 24 6e 61 6d 65 29 2e 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c e($name).':.'.$this->format($val
7cee0 75 65 2c 20 31 29 20 2e 20 24 6d 61 74 63 68 5b 31 5d 2c 20 27 5c 5c 27 29 2c 0a 24 63 68 69 6c ue,.1)...$match[1],.'\\'),.$chil
7cf00 64 72 65 6e 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d dren.);.}.else.{.if.($subName.!=
7cf20 3d 20 6e 75 6c 6c 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 61 72 72 61 79 28 24 73 75 62 4e 61 6d =.null).{.$value.=.array($subNam
7cf40 65 20 3d 3e 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 20 24 63 68 69 6c 64 72 65 6e 20 3d 20 24 e.=>.$value);.}....$children.=.$
7cf60 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 20 2e 20 this->newline...$this->indent...
7cf80 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 $this->indent...JsonFile::encode
7cfa0 28 24 6e 61 6d 65 29 2e 27 3a 20 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 75 ($name).':.'.$this->format($valu
7cfc0 65 2c 20 31 29 20 2e 20 24 63 68 69 6c 64 72 65 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e e,.1)...$children;.}..$this->con
7cfe0 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 24 6e 6f 64 65 52 65 67 65 78 2c tents.=.preg_replace($nodeRegex,
7d000 20 61 64 64 63 73 6c 61 73 68 65 73 28 27 24 7b 31 7d 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 24 .addcslashes('${1}'.$children.'$
7d020 33 27 2c 20 27 5c 5c 27 29 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 72 65 3',.'\\'),.$this->contents);..re
7d040 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 turn.true;.}..public.function.re
7d060 6d 6f 76 65 53 75 62 4e 6f 64 65 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 29 0a 7b 0a moveSubNode($mainNode,.$name).{.
7d080 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 23 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 ..if.(!preg_match('#"'.$mainNode
7d0a0 2e 27 22 3a 5c 73 2a 5c 7b 23 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 29 20 7b .'":\s*\{#',.$this->contents)).{
7d0c0 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 .return.true;.}....if.(preg_matc
7d0e0 68 28 27 23 22 27 2e 24 6d 61 69 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 5c 73 2a 5c 7d 23 73 h('#"'.$mainNode.'":\s*\{\s*\}#s
7d100 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 ',.$this->contents)).{.return.tr
7d120 75 65 3b 0a 7d 0a 0a 0a 20 24 6e 6f 64 65 52 65 67 65 78 20 3d 20 27 23 28 22 27 2e 24 6d 61 69 ue;.}....$nodeRegex.=.'#("'.$mai
7d140 6e 4e 6f 64 65 2e 27 22 3a 5c 73 2a 5c 7b 29 28 27 2e 73 65 6c 66 3a 3a 24 52 45 43 55 52 53 45 nNode.'":\s*\{)('.self::$RECURSE
7d160 5f 42 4c 4f 43 4b 53 2e 27 29 28 5c 7d 29 23 73 27 3b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 _BLOCKS.')(\})#s';.if.(!preg_mat
7d180 63 68 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 2c 20 ch($nodeRegex,.$this->contents,.
7d1a0 24 6d 61 74 63 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 63 68 69 $match)).{.return.false;.}..$chi
7d1c0 6c 64 72 65 6e 20 3d 20 24 6d 61 74 63 68 5b 32 5d 3b 0a 0a 0a 20 69 66 20 28 21 40 6a 73 6f 6e ldren.=.$match[2];....if.(!@json
7d1e0 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 63 68 69 6c 64 72 65 6e 2e 27 7d 27 29 29 20 7b 0a 72 65 _decode('{'.$children.'}')).{.re
7d200 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 73 75 62 4e 61 6d 65 20 3d 20 6e 75 6c 6c 3b 0a turn.false;.}..$subName.=.null;.
7d220 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2e 27 29 if.(false.!==.strpos($name,.'.')
7d240 29 20 7b 0a 6c 69 73 74 28 24 6e 61 6d 65 2c 20 24 73 75 62 4e 61 6d 65 29 20 3d 20 65 78 70 6c ).{.list($name,.$subName).=.expl
7d260 6f 64 65 28 27 2e 27 2c 20 24 6e 61 6d 65 2c 20 32 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 ode('.',.$name,.2);.}....if.(pre
7d280 67 5f 6d 61 74 63 68 28 27 7b 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 6d 65 29 2e 27 g_match('{"'.preg_quote($name).'
7d2a0 22 5c 73 2a 3a 7d 69 27 2c 20 24 63 68 69 6c 64 72 65 6e 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 "\s*:}i',.$children)).{...if.(pr
7d2c0 65 67 5f 6d 61 74 63 68 5f 61 6c 6c 28 27 7b 22 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 6e 61 eg_match_all('{"'.preg_quote($na
7d2e0 6d 65 29 2e 27 22 5c 73 2a 3a 5c 73 2a 28 3f 3a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 me).'"\s*:\s*(?:'.self::$JSON_VA
7d300 4c 55 45 2e 27 29 7d 27 2c 20 24 63 68 69 6c 64 72 65 6e 2c 20 24 6d 61 74 63 68 65 73 29 29 20 LUE.')}',.$children,.$matches)).
7d320 7b 0a 24 62 65 73 74 4d 61 74 63 68 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 {.$bestMatch.=.'';.foreach.($mat
7d340 63 68 65 73 5b 30 5d 20 61 73 20 24 6d 61 74 63 68 29 20 7b 0a 69 66 20 28 73 74 72 6c 65 6e 28 ches[0].as.$match).{.if.(strlen(
7d360 24 62 65 73 74 4d 61 74 63 68 29 20 3c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 29 29 20 7b 0a $bestMatch).<.strlen($match)).{.
7d380 24 62 65 73 74 4d 61 74 63 68 20 3d 20 24 6d 61 74 63 68 3b 0a 7d 0a 7d 0a 24 63 68 69 6c 64 72 $bestMatch.=.$match;.}.}.$childr
7d3a0 65 6e 43 6c 65 61 6e 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 2c 5c 73 2a 27 2e 70 enClean.=.preg_replace('{,\s*'.p
7d3c0 72 65 67 5f 71 75 6f 74 65 28 24 62 65 73 74 4d 61 74 63 68 29 2e 27 7d 69 27 2c 20 27 27 2c 20 reg_quote($bestMatch).'}i',.'',.
7d3e0 24 63 68 69 6c 64 72 65 6e 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b 0a 69 66 20 28 31 20 21 3d $children,.-1,.$count);.if.(1.!=
7d400 3d 20 24 63 6f 75 6e 74 29 20 7b 0a 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 3d 20 70 72 65 =.$count).{.$childrenClean.=.pre
7d420 67 5f 72 65 70 6c 61 63 65 28 27 7b 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 62 65 73 74 4d 61 g_replace('{'.preg_quote($bestMa
7d440 74 63 68 29 2e 27 5c 73 2a 2c 3f 5c 73 2a 7d 69 27 2c 20 27 27 2c 20 24 63 68 69 6c 64 72 65 6e tch).'\s*,?\s*}i',.'',.$children
7d460 43 6c 65 61 6e 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b 0a 69 66 20 28 31 20 21 3d 3d 20 24 63 Clean,.-1,.$count);.if.(1.!==.$c
7d480 6f 75 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a ount).{.return.false;.}.}.}.}...
7d4a0 20 69 66 20 28 21 74 72 69 6d 28 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 29 29 20 7b 0a 24 74 .if.(!trim($childrenClean)).{.$t
7d4c0 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 6e 6f his->contents.=.preg_replace($no
7d4e0 64 65 52 65 67 65 78 2c 20 27 24 31 27 2e 24 74 68 69 73 2d 3e 6e 65 77 6c 69 6e 65 2e 24 74 68 deRegex,.'$1'.$this->newline.$th
7d500 69 73 2d 3e 69 6e 64 65 6e 74 2e 27 7d 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 is->indent.'}',.$this->contents)
7d520 3b 0a 0a 0a 20 69 66 20 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 63 ;....if.($subName.!==.null).{.$c
7d540 75 72 56 61 6c 20 3d 20 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 63 68 69 6c 64 72 65 urVal.=.json_decode('{'.$childre
7d560 6e 2e 27 7d 27 2c 20 74 72 75 65 29 3b 0a 75 6e 73 65 74 28 24 63 75 72 56 61 6c 5b 24 6e 61 6d n.'}',.true);.unset($curVal[$nam
7d580 65 5d 5b 24 73 75 62 4e 61 6d 65 5d 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 53 75 62 4e 6f 64 65 e][$subName]);.$this->addSubNode
7d5a0 28 24 6d 61 69 6e 4e 6f 64 65 2c 20 24 6e 61 6d 65 2c 20 24 63 75 72 56 61 6c 5b 24 6e 61 6d 65 ($mainNode,.$name,.$curVal[$name
7d5c0 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 61 74 20 3d 20 24 ]);.}..return.true;.}..$that.=.$
7d5e0 74 68 69 73 3b 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 this;.$this->contents.=.preg_rep
7d600 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 24 6e 6f 64 65 52 65 67 65 78 2c 20 66 75 6e 63 74 69 lace_callback($nodeRegex,.functi
7d620 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 75 73 65 20 28 24 74 68 61 74 2c 20 24 6e 61 6d 65 2c on.($matches).use.($that,.$name,
7d640 20 24 73 75 62 4e 61 6d 65 2c 20 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 29 20 7b 0a 69 66 20 .$subName,.$childrenClean).{.if.
7d660 28 24 73 75 62 4e 61 6d 65 20 21 3d 3d 20 6e 75 6c 6c 29 20 7b 0a 24 63 75 72 56 61 6c 20 3d 20 ($subName.!==.null).{.$curVal.=.
7d680 6a 73 6f 6e 5f 64 65 63 6f 64 65 28 27 7b 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2e 27 7d 27 2c json_decode('{'.$matches[2].'}',
7d6a0 20 74 72 75 65 29 3b 0a 75 6e 73 65 74 28 24 63 75 72 56 61 6c 5b 24 6e 61 6d 65 5d 5b 24 73 75 .true);.unset($curVal[$name][$su
7d6c0 62 4e 61 6d 65 5d 29 3b 0a 24 63 68 69 6c 64 72 65 6e 43 6c 65 61 6e 20 3d 20 73 75 62 73 74 72 bName]);.$childrenClean.=.substr
7d6e0 28 24 74 68 61 74 2d 3e 66 6f 72 6d 61 74 28 24 63 75 72 56 61 6c 2c 20 30 29 2c 20 31 2c 20 2d ($that->format($curVal,.0),.1,.-
7d700 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 31 5d 20 2e 20 24 63 68 69 1);.}..return.$matches[1]...$chi
7d720 6c 64 72 65 6e 43 6c 65 61 6e 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 5d 3b 0a 7d 2c 20 24 74 68 ldrenClean...$matches[3];.},.$th
7d740 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a is->contents);..return.true;.}..
7d760 70 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 public.function.addMainKey($key,
7d780 20 24 63 6f 6e 74 65 6e 74 29 0a 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 66 .$content).{.$content.=.$this->f
7d7a0 6f 72 6d 61 74 28 24 63 6f 6e 74 65 6e 74 29 3b 0a 0a 0a 20 24 72 65 67 65 78 20 3d 20 27 7b 5e ormat($content);....$regex.=.'{^
7d7c0 28 5c 73 2a 5c 7b 5c 73 2a 28 3f 3a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 53 54 52 49 4e 47 (\s*\{\s*(?:'.self::$JSON_STRING
7d7e0 2e 27 5c 73 2a 3a 5c 73 2a 27 2e 73 65 6c 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 5c 73 .'\s*:\s*'.self::$JSON_VALUE.'\s
7d800 2a 2c 5c 73 2a 29 2a 3f 29 27 2e 0a 27 28 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 4a 73 6f 6e 46 *,\s*)*?)'..'('.preg_quote(JsonF
7d820 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 29 2e 27 5c 73 2a 3a 5c 73 2a 27 2e 73 65 6c ile::encode($key)).'\s*:\s*'.sel
7d840 66 3a 3a 24 4a 53 4f 4e 5f 56 41 4c 55 45 2e 27 29 28 2e 2a 29 7d 73 27 3b 0a 69 66 20 28 70 72 f::$JSON_VALUE.')(.*)}s';.if.(pr
7d860 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 eg_match($regex,.$this->contents
7d880 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 0a 20 69 66 20 28 21 40 6a 73 6f 6e 5f 64 65 63 6f ,.$matches)).{...if.(!@json_deco
7d8a0 64 65 28 27 7b 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2e 27 7d 27 29 29 20 7b 0a 72 65 74 75 72 de('{'.$matches[2].'}')).{.retur
7d8c0 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 20 3d 20 24 6d n.false;.}..$this->contents.=.$m
7d8e0 61 74 63 68 65 73 5b 31 5d 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 atches[1]...JsonFile::encode($ke
7d900 79 29 2e 27 3a 20 27 2e 24 63 6f 6e 74 65 6e 74 20 2e 20 24 6d 61 74 63 68 65 73 5b 33 5d 3b 0a y).':.'.$content...$matches[3];.
7d920 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 .return.true;.}....if.(preg_matc
7d940 68 28 27 23 5b 5e 7b 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 h('#[^{\s](\s*)\}$#',.$this->con
7d960 74 65 6e 74 73 2c 20 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 tents,.$match)).{.$this->content
7d980 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 0a 27 23 27 2e 24 6d 61 74 63 68 5b 31 5d 2e s.=.preg_replace(.'#'.$match[1].
7d9a0 27 5c 7d 24 23 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 27 2c 27 20 2e 20 24 74 68 69 73 2d '\}$#',.addcslashes(','...$this-
7d9c0 3e 6e 65 77 6c 69 6e 65 20 2e 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 >newline...$this->indent...JsonF
7d9e0 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 79 29 2e 20 27 3a 20 27 2e 20 24 63 6f 6e 74 65 6e ile::encode($key)..':.'..$conten
7da00 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 20 27 5c 5c 27 29 2c t...$this->newline...'}',.'\\'),
7da20 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 .$this->contents.);..return.true
7da40 3b 0a 7d 0a 0a 0a 20 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 ;.}....$this->contents.=.preg_re
7da60 70 6c 61 63 65 28 0a 27 23 5c 7d 24 23 27 2c 0a 61 64 64 63 73 6c 61 73 68 65 73 28 24 74 68 69 place(.'#\}$#',.addcslashes($thi
7da80 73 2d 3e 69 6e 64 65 6e 74 20 2e 20 4a 73 6f 6e 46 69 6c 65 3a 3a 65 6e 63 6f 64 65 28 24 6b 65 s->indent...JsonFile::encode($ke
7daa0 79 29 2e 20 27 3a 20 27 2e 24 63 6f 6e 74 65 6e 74 20 2e 20 24 74 68 69 73 2d 3e 6e 65 77 6c 69 y)..':.'.$content...$this->newli
7dac0 6e 65 20 2e 20 27 7d 27 2c 20 27 5c 5c 27 29 2c 0a 24 74 68 69 73 2d 3e 63 6f 6e 74 65 6e 74 73 ne...'}',.'\\'),.$this->contents
7dae0 0a 29 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .);..return.true;.}..public.func
7db00 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 64 61 74 61 2c 20 24 64 65 70 74 68 20 3d 20 30 29 0a 7b tion.format($data,.$depth.=.0).{
7db20 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 64 61 74 61 29 29 20 7b 0a 72 65 73 65 74 28 24 64 .if.(is_array($data)).{.reset($d
7db40 61 74 61 29 3b 0a 0a 69 66 20 28 69 73 5f 6e 75 6d 65 72 69 63 28 6b 65 79 28 24 64 61 74 61 29 ata);..if.(is_numeric(key($data)
7db60 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 )).{.foreach.($data.as.$key.=>.$
7db80 76 61 6c 29 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 5d 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d val).{.$data[$key].=.$this->form
7dba0 61 74 28 24 76 61 6c 2c 20 24 64 65 70 74 68 20 2b 20 31 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 at($val,.$depth.+.1);.}..return.
7dbc0 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).']';.}.
7dbe0 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 24 65 .$out.=.'{'...$this->newline;.$e
7dc00 6c 65 6d 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 61 20 61 lems.=.array();.foreach.($data.a
7dc20 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 24 65 6c 65 6d 73 5b 5d 20 3d 20 73 74 72 s.$key.=>.$val).{.$elems[].=.str
7dc40 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 2c 20 24 64 65 70 74 68 20 2b 20 _repeat($this->indent,.$depth.+.
7dc60 32 29 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 27 3a 20 2)...JsonFile::encode($key)..':.
7dc80 27 2e 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 28 24 76 61 6c 2c 20 24 64 65 70 74 68 20 2b 20 31 '.$this->format($val,.$depth.+.1
7dca0 29 3b 0a 7d 0a 0a 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 );.}..return.$out...implode(','.
7dcc0 24 74 68 69 73 2d 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 $this->newline,.$elems)...$this-
7dce0 3e 6e 65 77 6c 69 6e 65 20 2e 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 69 6e 64 >newline...str_repeat($this->ind
7dd00 65 6e 74 2c 20 24 64 65 70 74 68 20 2b 20 31 29 20 2e 20 27 7d 27 3b 0a 7d 0a 0a 72 65 74 75 72 ent,.$depth.+.1)...'}';.}..retur
7dd20 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 70 72 n.JsonFile::encode($data);.}..pr
7dd40 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 6e 67 otected.function.detectIndenting
7dd60 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 6d 27 ().{.if.(preg_match('{^(\s+)"}m'
7dd80 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 74 ,.$this->contents,.$match)).{.$t
7dda0 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 20 his->indent.=.$match[1];.}.else.
7ddc0 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 0a {.$this->indent.=.'....';.}.}.}.
7dde0 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
7de00 73 65 72 5c 4a 73 6f 6e 3b 0a 0a 75 73 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 56 61 6c 69 64 61 ser\Json;..use.JsonSchema\Valida
7de20 74 6f 72 3b 0a 75 73 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 4a 73 6f 6e 50 61 72 73 65 tor;.use.Seld\JsonLint\JsonParse
7de40 72 3b 0a 75 73 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 5c 50 61 72 73 69 6e 67 45 78 63 65 r;.use.Seld\JsonLint\ParsingExce
7de60 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 52 65 6d 6f 74 65 46 ption;.use.Composer\Util\RemoteF
7de80 69 6c 65 73 79 73 74 65 6d 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 6f 77 6e 6c 6f 61 64 ilesystem;.use.Composer\Download
7dea0 65 72 5c 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c er\TransportException;........cl
7dec0 61 73 73 20 4a 73 6f 6e 46 69 6c 65 0a 7b 0a 63 6f 6e 73 74 20 4c 41 58 5f 53 43 48 45 4d 41 20 ass.JsonFile.{.const.LAX_SCHEMA.
7dee0 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 54 52 49 43 54 5f 53 43 48 45 4d 41 20 3d 20 32 3b 0a 0a 63 =.1;.const.STRICT_SCHEMA.=.2;..c
7df00 6f 6e 73 74 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 20 3d 20 36 34 onst.JSON_UNESCAPED_SLASHES.=.64
7df20 3b 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 50 52 45 54 54 59 5f 50 52 49 4e 54 20 3d 20 31 32 38 3b ;.const.JSON_PRETTY_PRINT.=.128;
7df40 0a 63 6f 6e 73 74 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 20 3d 20 .const.JSON_UNESCAPED_UNICODE.=.
7df60 32 35 36 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 72 66 256;..private.$path;.private.$rf
7df80 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e s;.........public.function.__con
7dfa0 73 74 72 75 63 74 28 24 70 61 74 68 2c 20 52 65 6d 6f 74 65 46 69 6c 65 73 79 73 74 65 6d 20 24 struct($path,.RemoteFilesystem.$
7dfc0 72 66 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 20 3d 20 24 70 61 74 rfs.=.null).{.$this->path.=.$pat
7dfe0 68 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 72 66 73 20 26 26 20 70 72 65 67 5f 6d 61 h;..if.(null.===.$rfs.&&.preg_ma
7e000 74 63 68 28 27 7b 5e 68 74 74 70 73 3f 3a 2f 2f 7d 69 27 2c 20 24 70 61 74 68 29 29 20 7b 0a 74 tch('{^https?://}i',.$path)).{.t
7e020 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
7e040 6f 6e 28 27 68 74 74 70 20 75 72 6c 73 20 72 65 71 75 69 72 65 20 61 20 52 65 6d 6f 74 65 46 69 on('http.urls.require.a.RemoteFi
7e060 6c 65 73 79 73 74 65 6d 20 69 6e 73 74 61 6e 63 65 20 74 6f 20 62 65 20 70 61 73 73 65 64 27 29 lesystem.instance.to.be.passed')
7e080 3b 0a 7d 0a 24 74 68 69 73 2d 3e 72 66 73 20 3d 20 24 72 66 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 ;.}.$this->rfs.=.$rfs;.}.....pub
7e0a0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 lic.function.getPath().{.return.
7e0c0 24 74 68 69 73 2d 3e 70 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $this->path;.}.......public.func
7e0e0 74 69 6f 6e 20 65 78 69 73 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 5f 66 69 6c 65 28 24 tion.exists().{.return.is_file($
7e100 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e this->path);.}........public.fun
7e120 63 74 69 6f 6e 20 72 65 61 64 28 29 0a 7b 0a 74 72 79 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e ction.read().{.try.{.if.($this->
7e140 72 66 73 29 20 7b 0a 24 6a 73 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 72 66 73 2d 3e 67 65 74 43 6f rfs).{.$json.=.$this->rfs->getCo
7e160 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 2c ntents($this->path,.$this->path,
7e180 20 66 61 6c 73 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6a 73 6f 6e 20 3d 20 66 69 6c 65 5f 67 .false);.}.else.{.$json.=.file_g
7e1a0 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 7d 20 63 61 et_contents($this->path);.}.}.ca
7e1c0 74 63 68 20 28 54 72 61 6e 73 70 6f 72 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 tch.(TransportException.$e).{.th
7e1e0 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 24 65 2d 3e 67 65 row.new.\RuntimeException($e->ge
7e200 74 4d 65 73 73 61 67 65 28 29 2c 20 30 2c 20 24 65 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 tMessage(),.0,.$e);.}.catch.(\Ex
7e220 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 ception.$e).{.throw.new.\Runtime
7e240 45 78 63 65 70 74 69 6f 6e 28 27 43 6f 75 6c 64 20 6e 6f 74 20 72 65 61 64 20 27 2e 24 74 68 69 Exception('Could.not.read.'.$thi
7e260 73 2d 3e 70 61 74 68 2e 22 5c 6e 5c 6e 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 29 s->path."\n\n".$e->getMessage())
7e280 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 61 74 69 63 3a 3a 70 61 72 73 65 4a 73 6f 6e 28 24 6a ;.}..return.static::parseJson($j
7e2a0 73 6f 6e 2c 20 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 son,.$this->path);.}.........pub
7e2c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 61 72 72 61 79 20 24 68 61 73 68 2c 20 lic.function.write(array.$hash,.
7e2e0 24 6f 70 74 69 6f 6e 73 20 3d 20 34 34 38 29 0a 7b 0a 24 64 69 72 20 3d 20 64 69 72 6e 61 6d 65 $options.=.448).{.$dir.=.dirname
7e300 28 24 74 68 69 73 2d 3e 70 61 74 68 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 24 64 69 72 29 ($this->path);.if.(!is_dir($dir)
7e320 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 64 69 72 29 29 20 7b 0a 74 68 72 ).{.if.(file_exists($dir)).{.thr
7e340 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
7e360 28 0a 24 64 69 72 2e 27 20 65 78 69 73 74 73 20 61 6e 64 20 69 73 20 6e 6f 74 20 61 20 64 69 72 (.$dir.'.exists.and.is.not.a.dir
7e380 65 63 74 6f 72 79 2e 27 0a 29 3b 0a 7d 0a 69 66 20 28 21 40 6d 6b 64 69 72 28 24 64 69 72 2c 20 ectory.'.);.}.if.(!@mkdir($dir,.
7e3a0 30 37 37 37 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 0777,.true)).{.throw.new.\Unexpe
7e3c0 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 28 0a 24 64 69 72 2e 27 20 64 6f 65 73 20 ctedValueException(.$dir.'.does.
7e3e0 6e 6f 74 20 65 78 69 73 74 20 61 6e 64 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 63 72 65 61 74 not.exist.and.could.not.be.creat
7e400 65 64 2e 27 0a 29 3b 0a 7d 0a 7d 0a 0a 24 72 65 74 72 69 65 73 20 3d 20 33 3b 0a 77 68 69 6c 65 ed.'.);.}.}..$retries.=.3;.while
7e420 20 28 24 72 65 74 72 69 65 73 2d 2d 29 20 7b 0a 74 72 79 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 .($retries--).{.try.{.file_put_c
7e440 6f 6e 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 ontents($this->path,.static::enc
7e460 6f 64 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 ode($hash,.$options)..($options.
7e480 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 20 3f 20 22 5c 6e 22 &.self::JSON_PRETTY_PRINT.?."\n"
7e4a0 20 3a 20 27 27 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 .:.''));.break;.}.catch.(\Except
7e4c0 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 72 65 74 72 69 65 73 29 20 7b 0a 75 73 6c 65 65 70 ion.$e).{.if.($retries).{.usleep
7e4e0 28 35 30 30 30 30 30 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b (500000);.continue;.}..throw.$e;
7e500 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 .}.}.}.........public.function.v
7e520 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 53 54 alidateSchema($schema.=.self::ST
7e540 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 5f 67 RICT_SCHEMA).{.$content.=.file_g
7e560 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 61 20 et_contents($this->path);.$data.
7e580 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 6e 75 =.json_decode($content);..if.(nu
7e5a0 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 6e 74 ll.===.$data.&&.'null'.!==.$cont
7e5c0 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 6f 6e ent).{.self::validateSyntax($con
7e5e0 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 46 69 tent,.$this->path);.}..$schemaFi
7e600 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 63 6f le.=.__DIR__...'/../../../res/co
7e620 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 74 61 mposer-schema.json';.$schemaData
7e640 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 74 73 .=.json_decode(file_get_contents
7e660 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 3d 3d ($schemaFile));..if.($schema.===
7e680 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 74 61 .self::LAX_SCHEMA).{.$schemaData
7e6a0 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 0a 24 ->additionalProperties.=.true;.$
7e6c0 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 72 65 schemaData->properties->name->re
7e6e0 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 72 6f quired.=.false;.$schemaData->pro
7e700 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 20 3d perties->description->required.=
7e720 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 6c 69 .false;.}..$validator.=.new.Vali
7e740 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 74 61 dator();.$validator->check($data
7e760 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 61 74 ,.$schemaData);....if.(!$validat
7e780 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 61 79 or->isValid()).{.$errors.=.array
7e7a0 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 72 2d ();.foreach.((array).$validator-
7e7c0 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 6f 72 >getErrors().as.$error).{.$error
7e7e0 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 72 72 s[].=.($error['property'].?.$err
7e800 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 72 6f or['property'].'.:.'.:.'').$erro
7e820 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 56 61 r['message'];.}.throw.new.JsonVa
7e840 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 61 74 lidationException('"'.$this->pat
7e860 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 65 64 h.'".does.not.match.the.expected
7e880 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 74 75 .JSON.schema',.$errors);.}..retu
7e8a0 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 20 73 rn.true;.}..............public.s
7e8c0 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 6f 70 tatic.function.encode($data,.$op
7e8e0 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 70 61 tions.=.448).{.if.(version_compa
7e900 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 7b 0a re(PHP_VERSION,.'5.4',.'>=')).{.
7e920 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 69 6f return.json_encode($data,.$optio
7e940 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 61 74 ns);.}..$json.=.json_encode($dat
7e960 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 70 74 a);..$prettyPrint.=.(bool).($opt
7e980 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 29 3b ions.&.self::JSON_PRETTY_PRINT);
7e9a0 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 70 74 .$unescapeUnicode.=.(bool).($opt
7e9c0 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 49 43 ions.&.self::JSON_UNESCAPED_UNIC
7e9e0 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 29 20 ODE);.$unescapeSlashes.=.(bool).
7ea00 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 45 44 ($options.&.self::JSON_UNESCAPED
7ea20 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 26 26 _SLASHES);..if.(!$prettyPrint.&&
7ea40 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 70 65 .!$unescapeUnicode.&&.!$unescape
7ea60 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 65 73 Slashes).{.return.$json;.}..$res
7ea80 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 73 74 ult.=.'';.$pos.=.0;.$strLen.=.st
7eaa0 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 20 27 rlen($json);.$indentStr.=.'....'
7eac0 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 73 20 ;.$newLine.=."\n";.$outOfQuotes.
7eae0 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 65 20 =.true;.$buffer.=.'';.$noescape.
7eb00 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 20 24 73 74 72 4c =.true;..for.($i.=.0;.$i.<.$strL
7eb20 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 24 6a 73 en;.$i++).{...$char.=.substr($js
7eb40 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 68 61 72 on,.$i,.1);....if.('"'.===.$char
7eb60 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 20 3d 20 .&&.$noescape).{.$outOfQuotes.=.
7eb80 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 51 75 6f !$outOfQuotes;.}..if.(!$outOfQuo
7eba0 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 73 63 61 tes).{.$buffer..=.$char;.$noesca
7ebc0 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 61 70 65 pe.=.'\\'.===.$char.?.!$noescape
7ebe0 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 27 27 20 .:.true;.continue;.}.elseif.(''.
7ec00 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 6c 61 73 !==.$buffer).{.if.($unescapeSlas
7ec20 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 27 5c 5c hes).{.$buffer.=.str_replace('\\
7ec40 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 65 73 63 /',.'/',.$buffer);.}..if.($unesc
7ec60 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 28 27 6d apeUnicode.&&.function_exists('m
7ec80 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 66 66 65 b_convert_encoding')).{...$buffe
7eca0 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 5c 5c 5c r.=.preg_replace_callback('/\\\\
7ecc0 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 6d 61 74 u([0-9a-f]{4})/i',.function($mat
7ece0 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 69 6e 67 ch).{.return.mb_convert_encoding
7ed00 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 38 27 2c (pack('H*',.$match[1]),.'UTF-8',
7ed20 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 24 72 65 .'UCS-2BE');.},.$buffer);.}..$re
7ed40 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 72 20 3d sult..=.$buffer.$char;.$buffer.=
7ed60 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 20 24 63 .'';.continue;.}..if.(':'.===.$c
7ed80 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 69 66 20 har).{...$char..=.'.';.}.elseif.
7eda0 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 68 61 72 (('}'.===.$char.||.']'.===.$char
7edc0 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 74 72 28 )).{.$pos--;.$prevChar.=.substr(
7ede0 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 3d 3d 20 $json,.$i.-.1,.1);..if.('{'.!==.
7ee00 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 72 29 20 $prevChar.&&.'['.!==.$prevChar).
7ee20 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 72 20 28 {.....$result..=.$newLine;.for.(
7ee40 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 65 73 75 $j.=.0;.$j.<.$pos;.$j++).{.$resu
7ee60 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 0a 20 24 lt..=.$indentStr;.}.}.else.{...$
7ee80 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 22 2e 24 result.=.rtrim($result)."\n\n".$
7eea0 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 68 61 72 indentStr;.}.}..$result..=.$char
7eec0 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 7b 27 20 ;......if.(','.===.$char.||.'{'.
7eee0 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 0a 24 72 ===.$char.||.'['.===.$char).{.$r
7ef00 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 3d 3d 20 esult..=.$newLine;..if.('{'.===.
7ef20 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 73 2b 2b $char.||.'['.===.$char).{.$pos++
7ef40 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 24 6a 2b ;.}..for.($j.=.0;.$j.<.$pos;.$j+
7ef60 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 0a 7d 0a +).{.$result..=.$indentStr;.}.}.
7ef80 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 0a 70 75 }..return.$result;.}..........pu
7efa0 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 6e 28 24 blic.static.function.parseJson($
7efc0 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 20 6a 73 json,.$file.=.null).{.$data.=.js
7efe0 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 75 6c 6c on_decode($json,.true);.if.(null
7f000 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 20 21 3d .===.$data.&&.JSON_ERROR_NONE.!=
7f020 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 76 61 6c =.json_last_error()).{.self::val
7f040 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 0a 72 65 idateSyntax($json,.$file);.}..re
7f060 74 75 72 6e 20 24 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 turn.$data;.}............protect
7f080 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 74 61 ed.static.function.validateSynta
7f0a0 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 65 72 x($json,.$file.=.null).{.$parser
7f0c0 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 20 24 .=.new.JsonParser();.$result.=.$
7f0e0 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 3d 3d parser->lint($json);.if.(null.==
7f100 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 5f 45 =.$result).{.if.(defined('JSON_E
7f120 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 20 3d RROR_UTF8').&&.JSON_ERROR_UTF8.=
7f140 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 6e 65 ==.json_last_error()).{.throw.ne
7f160 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 27 2e w.\UnexpectedValueException('"'.
7f180 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 6f 74 $file.'".is.not.UTF-8,.could.not
7f1a0 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 75 65 .parse.as.JSON');.}..return.true
7f1c0 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 6e 28 ;.}..throw.new.ParsingException(
7f1e0 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 76 61 '"'.$file.'".does.not.contain.va
7f200 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 73 61 lid.JSON'."\n".$result->getMessa
7f220 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 7d 0a ge(),.$result->getDetails());.}.
7f240 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
7f260 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 0a 0a poser\Json;..use.Exception;.....
7f280 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 65 78 class.JsonValidationException.ex
7f2a0 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 72 72 tends.Exception.{.protected.$err
7f2c0 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 75 63 ors;..public.function.__construc
7f2e0 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 0a 7b t($message,.$errors.=.array()).{
7f300 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 6e 74 .$this->errors.=.$errors;.parent
7f320 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 62 6c ::__construct($message);.}..publ
7f340 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 72 6e ic.function.getErrors().{.return
7f360 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 0a 0a .$this->errors;.}.}.<?php.......
7f380 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f .....namespace.Composer;..use.Co
7f3a0 6d 70 6f 73 65 72 5c 43 6f 6e 66 69 67 5c 43 6f 6e 66 69 67 53 6f 75 72 63 65 49 6e 74 65 72 66 mposer\Config\ConfigSourceInterf
7f3c0 61 63 65 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 66 69 67 0a 7b 0a 70 75 62 6c 69 63 20 73 ace;.....class.Config.{.public.s
7f3e0 74 61 74 69 63 20 24 64 65 66 61 75 6c 74 43 6f 6e 66 69 67 20 3d 20 61 72 72 61 79 28 0a 27 70 tatic.$defaultConfig.=.array(.'p
7f400 72 6f 63 65 73 73 2d 74 69 6d 65 6f 75 74 27 20 3d 3e 20 33 30 30 2c 0a 27 75 73 65 2d 69 6e 63 rocess-timeout'.=>.300,.'use-inc
7f420 6c 75 64 65 2d 70 61 74 68 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 27 70 72 65 66 65 72 72 65 64 2d lude-path'.=>.false,.'preferred-
7f440 69 6e 73 74 61 6c 6c 27 20 3d 3e 20 27 61 75 74 6f 27 2c 0a 27 6e 6f 74 69 66 79 2d 6f 6e 2d 69 install'.=>.'auto',.'notify-on-i
7f460 6e 73 74 61 6c 6c 27 20 3d 3e 20 74 72 75 65 2c 0a 27 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f nstall'.=>.true,.'github-protoco
7f480 6c 73 27 20 3d 3e 20 61 72 72 61 79 28 27 67 69 74 27 2c 20 27 68 74 74 70 73 27 29 2c 0a 27 76 ls'.=>.array('git',.'https'),.'v
7f4a0 65 6e 64 6f 72 2d 64 69 72 27 20 3d 3e 20 27 76 65 6e 64 6f 72 27 2c 0a 27 62 69 6e 2d 64 69 72 endor-dir'.=>.'vendor',.'bin-dir
7f4c0 27 20 3d 3e 20 27 7b 24 76 65 6e 64 6f 72 2d 64 69 72 7d 2f 62 69 6e 27 2c 0a 27 63 61 63 68 65 '.=>.'{$vendor-dir}/bin',.'cache
7f4e0 2d 64 69 72 27 20 3d 3e 20 27 7b 24 68 6f 6d 65 7d 2f 63 61 63 68 65 27 2c 0a 27 63 61 63 68 65 -dir'.=>.'{$home}/cache',.'cache
7f500 2d 66 69 6c 65 73 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 66 69 6c -files-dir'.=>.'{$cache-dir}/fil
7f520 65 73 27 2c 0a 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 20 3d 3e 20 27 7b 24 63 61 63 68 es',.'cache-repo-dir'.=>.'{$cach
7f540 65 2d 64 69 72 7d 2f 72 65 70 6f 27 2c 0a 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 20 3d 3e e-dir}/repo',.'cache-vcs-dir'.=>
7f560 20 27 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 76 63 73 27 2c 0a 27 63 61 63 68 65 2d 74 74 6c 27 .'{$cache-dir}/vcs',.'cache-ttl'
7f580 20 3d 3e 20 31 35 35 35 32 30 30 30 2c 20 0a 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c .=>.15552000,...'cache-files-ttl
7f5a0 27 20 3d 3e 20 6e 75 6c 6c 2c 20 0a 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a '.=>.null,...'cache-files-maxsiz
7f5c0 65 27 20 3d 3e 20 27 33 30 30 4d 69 42 27 2c 0a 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 e'.=>.'300MiB',.'discard-changes
7f5e0 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 27 61 75 74 6f 6c 6f 61 64 65 72 2d 73 75 66 66 69 78 27 20 '.=>.false,.'autoloader-suffix'.
7f600 3d 3e 20 6e 75 6c 6c 2c 0a 27 70 72 65 70 65 6e 64 2d 61 75 74 6f 6c 6f 61 64 65 72 27 20 3d 3e =>.null,.'prepend-autoloader'.=>
7f620 20 74 72 75 65 2c 0a 27 67 69 74 68 75 62 2d 64 6f 6d 61 69 6e 73 27 20 3d 3e 20 61 72 72 61 79 .true,.'github-domains'.=>.array
7f640 28 27 67 69 74 68 75 62 2e 63 6f 6d 27 29 2c 0a 29 3b 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 ('github.com'),.);..public.stati
7f660 63 20 24 64 65 66 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 61 72 72 61 79 28 0a c.$defaultRepositories.=.array(.
7f680 27 70 61 63 6b 61 67 69 73 74 27 20 3d 3e 20 61 72 72 61 79 28 0a 27 74 79 70 65 27 20 3d 3e 20 'packagist'.=>.array(.'type'.=>.
7f6a0 27 63 6f 6d 70 6f 73 65 72 27 2c 0a 27 75 72 6c 27 20 3d 3e 20 27 68 74 74 70 73 3f 3a 2f 2f 70 'composer',.'url'.=>.'https?://p
7f6c0 61 63 6b 61 67 69 73 74 2e 6f 72 67 27 2c 0a 27 61 6c 6c 6f 77 5f 73 73 6c 5f 64 6f 77 6e 67 72 ackagist.org',.'allow_ssl_downgr
7f6e0 61 64 65 27 20 3d 3e 20 74 72 75 65 2c 0a 29 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e ade'.=>.true,.).);..private.$con
7f700 66 69 67 3b 0a 70 72 69 76 61 74 65 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 70 72 69 76 fig;.private.$repositories;.priv
7f720 61 74 65 20 24 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ate.$configSource;..public.funct
7f740 69 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 ion.__construct().{...$this->con
7f760 66 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 fig.=.static::$defaultConfig;.$t
7f780 68 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 his->repositories.=.static::$def
7f7a0 61 75 6c 74 52 65 70 6f 73 69 74 6f 72 69 65 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 aultRepositories;.}..public.func
7f7c0 74 69 6f 6e 20 73 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 43 6f 6e 66 69 67 53 6f 75 72 63 tion.setConfigSource(ConfigSourc
7f7e0 65 49 6e 74 65 72 66 61 63 65 20 24 73 6f 75 72 63 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e eInterface.$source).{.$this->con
7f800 66 69 67 53 6f 75 72 63 65 20 3d 20 24 73 6f 75 72 63 65 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 figSource.=.$source;.}..public.f
7f820 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6e 66 69 67 53 6f 75 72 63 65 28 29 0a 7b 0a 72 65 74 75 unction.getConfigSource().{.retu
7f840 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 53 6f 75 72 63 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a rn.$this->configSource;.}.......
7f860 70 75 62 6c 69 63 20 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 public.function.merge(array.$con
7f880 66 69 67 29 0a 7b 0a 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 fig).{...if.(!empty($config['con
7f8a0 66 69 67 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 63 6f 6e 66 fig']).&&.is_array($config['conf
7f8c0 69 67 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 63 6f 6e 66 69 ig'])).{.foreach.($config['confi
7f8e0 67 27 5d 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 69 6e 5f 61 72 g'].as.$key.=>.$val).{.if.(in_ar
7f900 72 61 79 28 24 6b 65 79 2c 20 61 72 72 61 79 28 27 67 69 74 68 75 62 2d 6f 61 75 74 68 27 29 29 ray($key,.array('github-oauth'))
7f920 20 26 26 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 29 20 .&&.isset($this->config[$key])).
7f940 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 20 3d 20 61 72 72 61 79 5f 6d 65 {.$this->config[$key].=.array_me
7f960 72 67 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 76 61 6c 29 3b 0a rge($this->config[$key],.$val);.
7f980 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 20 3d 20 24 }.else.{.$this->config[$key].=.$
7f9a0 76 61 6c 3b 0a 7d 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 val;.}.}.}..if.(!empty($config['
7f9c0 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 24 63 6f 6e repositories']).&&.is_array($con
7f9e0 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 73 2d 3e 72 fig['repositories'])).{.$this->r
7fa00 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 24 74 68 69 epositories.=.array_reverse($thi
7fa20 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 52 65 70 6f s->repositories,.true);.$newRepo
7fa40 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 65 70 6f 73 s.=.array_reverse($config['repos
7fa60 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 6e 65 77 52 itories'],.true);.foreach.($newR
7fa80 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 29 20 7b 0a epos.as.$name.=>.$repository).{.
7faa0 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 20 7b 0a 75 ..if.(false.===.$repository).{.u
7fac0 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 6d 65 5d 29 nset($this->repositories[$name])
7fae0 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 6f 75 6e 74 ;.continue;.}....if.(1.===.count
7fb00 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 75 72 72 65 ($repository).&&.false.===.curre
7fb20 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 69 73 2d 3e nt($repository)).{.unset($this->
7fb40 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 29 5d 29 3b repositories[key($repository)]);
7fb60 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 6e 61 6d 65 .continue;.}....if.(is_int($name
7fb80 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 20 24 72 65 )).{.$this->repositories[].=.$re
7fba0 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 70 6f 73 69 pository;.}.else.{.$this->reposi
7fbc0 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 0a 7d 0a 7d tories[$name].=.$repository;.}.}
7fbe0 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 5f 72 65 76 .$this->repositories.=.array_rev
7fc00 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 75 65 29 3b erse($this->repositories,.true);
7fc20 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 52 65 70 6f .}.}.....public.function.getRepo
7fc40 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 6f 73 sitories().{.return.$this->repos
7fc60 69 74 6f 72 69 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 74 69 itories;.}.........public.functi
7fc80 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 7b 0a 63 on.get($key).{.switch.($key).{.c
7fca0 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 69 72 27 ase.'vendor-dir':.case.'bin-dir'
7fcc0 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 63 61 73 65 20 27 :.case.'process-timeout':.case.'
7fce0 63 61 63 68 65 2d 64 69 72 27 3a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 cache-dir':.case.'cache-files-di
7fd00 72 27 3a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 27 3a 0a 63 61 73 65 20 r':.case.'cache-repo-dir':.case.
7fd20 27 63 61 63 68 65 2d 76 63 73 2d 64 69 72 27 3a 0a 0a 20 24 65 6e 76 20 3d 20 27 43 4f 4d 50 4f 'cache-vcs-dir':...$env.=.'COMPO
7fd40 53 45 52 5f 27 20 2e 20 73 74 72 74 6f 75 70 70 65 72 28 73 74 72 74 72 28 24 6b 65 79 2c 20 27 SER_'...strtoupper(strtr($key,.'
7fd60 2d 27 2c 20 27 5f 27 29 29 3b 0a 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 74 68 69 73 2d 3e -',.'_'));..return.rtrim($this->
7fd80 70 72 6f 63 65 73 73 28 67 65 74 65 6e 76 28 24 65 6e 76 29 20 3f 3a 20 24 74 68 69 73 2d 3e 63 process(getenv($env).?:.$this->c
7fda0 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 2c 20 27 2f 5c 5c 27 29 3b 0a 0a 63 61 73 65 20 27 63 61 63 onfig[$key]),.'/\\');..case.'cac
7fdc0 68 65 2d 74 74 6c 27 3a 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d 3e 63 6f 6e he-ttl':.return.(int).$this->con
7fde0 66 69 67 5b 24 6b 65 79 5d 3b 0a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 fig[$key];..case.'cache-files-ma
7fe00 78 73 69 7a 65 27 3a 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5c 73 2a 28 5b xsize':.if.(!preg_match('/^\s*([
7fe20 30 2d 39 2e 5d 2b 29 5c 73 2a 28 3f 3a 28 5b 6b 6d 67 5d 29 28 3f 3a 69 3f 62 29 3f 29 3f 5c 73 0-9.]+)\s*(?:([kmg])(?:i?b)?)?\s
7fe40 2a 24 2f 69 27 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 24 6d 61 74 *$/i',.$this->config[$key],.$mat
7fe60 63 68 65 73 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 ches)).{.throw.new.\RuntimeExcep
7fe80 74 69 6f 6e 28 0a 22 43 6f 75 6c 64 20 6e 6f 74 20 70 61 72 73 65 20 74 68 65 20 76 61 6c 75 65 tion(."Could.not.parse.the.value
7fea0 20 6f 66 20 27 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 7a 65 27 3a 20 7b 24 74 68 69 .of.'cache-files-maxsize':.{$thi
7fec0 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 7d 22 0a 29 3b 0a 7d 0a 24 73 69 7a 65 20 3d 20 24 s->config[$key]}".);.}.$size.=.$
7fee0 6d 61 74 63 68 65 73 5b 31 5d 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6d 61 74 63 68 65 73 5b 32 matches[1];.if.(isset($matches[2
7ff00 5d 29 29 20 7b 0a 73 77 69 74 63 68 20 28 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 65 ])).{.switch.(strtolower($matche
7ff20 73 5b 32 5d 29 29 20 7b 0a 63 61 73 65 20 27 67 27 3a 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 s[2])).{.case.'g':.$size.*=.1024
7ff40 3b 0a 0a 20 63 61 73 65 20 27 6d 27 3a 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 3b 0a 0a 20 63 ;...case.'m':.$size.*=.1024;...c
7ff60 61 73 65 20 27 6b 27 3a 0a 24 73 69 7a 65 20 2a 3d 20 31 30 32 34 3b 0a 62 72 65 61 6b 3b 0a 7d ase.'k':.$size.*=.1024;.break;.}
7ff80 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 69 7a 65 3b 0a 0a 63 61 73 65 20 27 63 61 63 68 65 2d 66 .}..return.$size;..case.'cache-f
7ffa0 69 6c 65 73 2d 74 74 6c 27 3a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 iles-ttl':.if.(isset($this->conf
7ffc0 69 67 5b 24 6b 65 79 5d 29 29 20 7b 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 74 68 69 73 2d ig[$key])).{.return.(int).$this-
7ffe0 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 69 6e 74 29 20 24 >config[$key];.}..return.(int).$
80000 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 63 61 63 68 65 2d 74 74 6c 27 5d 3b 0a 0a 63 61 73 65 this->config['cache-ttl'];..case
80020 20 27 68 6f 6d 65 27 3a 0a 72 65 74 75 72 6e 20 72 74 72 69 6d 28 24 74 68 69 73 2d 3e 70 72 6f .'home':.return.rtrim($this->pro
80040 63 65 73 73 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 2c 20 27 2f 5c 5c 27 cess($this->config[$key]),.'/\\'
80060 29 3b 0a 0a 63 61 73 65 20 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 3a 0a 69 66 20 28 );..case.'discard-changes':.if.(
80080 24 65 6e 76 20 3d 20 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 44 49 53 43 41 52 44 5f $env.=.getenv('COMPOSER_DISCARD_
800a0 43 48 41 4e 47 45 53 27 29 29 20 7b 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 65 6e 76 2c CHANGES')).{.if.(!in_array($env,
800c0 20 61 72 72 61 79 28 27 73 74 61 73 68 27 2c 20 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 2c .array('stash',.'true',.'false',
800e0 20 27 31 27 2c 20 27 30 27 29 2c 20 74 72 75 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c .'1',.'0'),.true)).{.throw.new.\
80100 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 22 49 6e 76 61 6c 69 64 20 76 61 6c 75 65 RuntimeException(."Invalid.value
80120 20 66 6f 72 20 43 4f 4d 50 4f 53 45 52 5f 44 49 53 43 41 52 44 5f 43 48 41 4e 47 45 53 3a 20 7b .for.COMPOSER_DISCARD_CHANGES:.{
80140 24 65 6e 76 7d 2e 20 45 78 70 65 63 74 65 64 20 31 2c 20 30 2c 20 74 72 75 65 2c 20 66 61 6c 73 $env}..Expected.1,.0,.true,.fals
80160 65 20 6f 72 20 73 74 61 73 68 22 0a 29 3b 0a 7d 0a 69 66 20 28 27 73 74 61 73 68 27 20 3d 3d 3d e.or.stash".);.}.if.('stash'.===
80180 20 24 65 6e 76 29 20 7b 0a 72 65 74 75 72 6e 20 27 73 74 61 73 68 27 3b 0a 7d 0a 0a 0a 20 72 65 .$env).{.return.'stash';.}....re
801a0 74 75 72 6e 20 24 65 6e 76 20 21 3d 3d 20 27 66 61 6c 73 65 27 20 26 26 20 28 62 6f 6f 6c 29 20 turn.$env.!==.'false'.&&.(bool).
801c0 24 65 6e 76 3b 0a 7d 0a 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 6f $env;.}..if.(!in_array($this->co
801e0 6e 66 69 67 5b 24 6b 65 79 5d 2c 20 61 72 72 61 79 28 74 72 75 65 2c 20 66 61 6c 73 65 2c 20 27 nfig[$key],.array(true,.false,.'
80200 73 74 61 73 68 27 29 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 stash'),.true)).{.throw.new.\Run
80220 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 0a 22 49 6e 76 61 6c 69 64 20 76 61 6c 75 65 20 66 6f timeException(."Invalid.value.fo
80240 72 20 27 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 27 3a 20 7b 24 74 68 69 73 2d 3e 63 6f 6e r.'discard-changes':.{$this->con
80260 66 69 67 5b 24 6b 65 79 5d 7d 2e 20 45 78 70 65 63 74 65 64 20 74 72 75 65 2c 20 66 61 6c 73 65 fig[$key]}..Expected.true,.false
80280 20 6f 72 20 73 74 61 73 68 22 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 .or.stash".);.}..return.$this->c
802a0 6f 6e 66 69 67 5b 24 6b 65 79 5d 3b 0a 0a 63 61 73 65 20 27 67 69 74 68 75 62 2d 70 72 6f 74 6f onfig[$key];..case.'github-proto
802c0 63 6f 6c 73 27 3a 0a 69 66 20 28 72 65 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 27 cols':.if.(reset($this->config['
802e0 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 27 5d 29 20 3d 3d 3d 20 27 68 74 74 70 27 29 20 github-protocols']).===.'http').
80300 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 54 {.throw.new.\RuntimeException('T
80320 68 65 20 68 74 74 70 20 70 72 6f 74 6f 63 6f 6c 20 66 6f 72 20 67 69 74 68 75 62 20 69 73 20 6e he.http.protocol.for.github.is.n
80340 6f 74 20 61 76 61 69 6c 61 62 6c 65 20 61 6e 79 6d 6f 72 65 2c 20 75 70 64 61 74 65 20 79 6f 75 ot.available.anymore,.update.you
80360 72 20 63 6f 6e 66 69 67 5c 27 73 20 67 69 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 20 74 6f 20 r.config\'s.github-protocols.to.
80380 75 73 65 20 22 68 74 74 70 73 22 20 6f 72 20 22 67 69 74 22 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 use."https".or."git"');.}..retur
803a0 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 3b 0a 0a 64 65 66 61 75 6c 74 3a n.$this->config[$key];..default:
803c0 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 5b 24 6b 65 79 5d 29 .if.(!isset($this->config[$key])
803e0 29 20 7b 0a 72 65 74 75 72 6e 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ).{.return.null;.}..return.$this
80400 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]);.
80420 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 28 29 0a 7b 0a 24 61 6c }.}..public.function.all().{.$al
80440 6c 20 3d 20 61 72 72 61 79 28 0a 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 20 3d 3e 20 24 74 68 l.=.array(.'repositories'.=>.$th
80460 69 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 2c 0a 29 3b 0a 66 6f 72 65 61 63 is->getRepositories(),.);.foreac
80480 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 29 20 61 73 20 h.(array_keys($this->config).as.
804a0 24 6b 65 79 29 20 7b 0a 24 61 6c 6c 5b 27 63 6f 6e 66 69 67 27 5d 5b 24 6b 65 79 5d 20 3d 20 24 $key).{.$all['config'][$key].=.$
804c0 74 68 69 73 2d 3e 67 65 74 28 24 6b 65 79 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 6c 6c 3b this->get($key);.}..return.$all;
804e0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 61 77 28 29 0a 7b 0a 72 65 74 75 .}..public.function.raw().{.retu
80500 72 6e 20 61 72 72 61 79 28 0a 27 72 65 70 6f 73 69 74 6f 72 69 65 73 27 20 3d 3e 20 24 74 68 69 rn.array(.'repositories'.=>.$thi
80520 73 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 69 65 73 28 29 2c 0a 27 63 6f 6e 66 69 67 27 20 3d s->getRepositories(),.'config'.=
80540 3e 20 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 >.$this->config,.);.}........pub
80560 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 28 24 6b 65 79 29 0a 7b 0a 72 65 74 75 72 6e 20 lic.function.has($key).{.return.
80580 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 6b 65 79 2c 20 24 74 68 69 73 2d 3e 63 6f array_key_exists($key,.$this->co
805a0 6e 66 69 67 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e nfig);.}........private.function
805c0 20 70 72 6f 63 65 73 73 28 24 76 61 6c 75 65 29 0a 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 74 68 .process($value).{.$config.=.$th
805e0 69 73 3b 0a 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 29 20 7b 0a 72 is;..if.(!is_string($value)).{.r
80600 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 65 70 eturn.$value;.}..return.preg_rep
80620 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 66 75 lace_callback('#\{\$(.+)\}#',.fu
80640 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 7b 0a nction.($match).use.($config).{.
80660 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 3b 0a return.$config->get($match[1]);.
80680 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 0a 0a },.$value);.}.}.<?php...........
806a0 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 .namespace.Composer\EventDispatc
806c0 68 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 76 65 6e her;..............interface.Even
806e0 74 53 75 62 73 63 72 69 62 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tSubscriberInterface.{..........
80700 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 6f 6e 20 .........public.static.function.
80720 67 65 74 53 75 62 73 63 72 69 62 65 64 45 76 65 6e 74 73 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a getSubscribedEvents();.}.<?php..
80740 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 45 76 65 ..........namespace.Composer\Eve
80760 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 0a ntDispatcher;.......class.Event.
80780 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 {....protected.$name;.....privat
807a0 65 20 24 70 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 20 3d 20 66 61 6c 73 65 3b 0a 0a e.$propagationStopped.=.false;..
807c0 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
807e0 28 24 6e 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 7d ($name).{.$this->name.=.$name;.}
80800 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 6d 65 28 29 .......public.function.getName()
80820 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 .{.return.$this->name;.}.......p
80840 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 50 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 ublic.function.isPropagationStop
80860 70 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 70 61 67 61 74 69 6f ped().{.return.$this->propagatio
80880 6e 53 74 6f 70 70 65 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 nStopped;.}.....public.function.
808a0 73 74 6f 70 50 72 6f 70 61 67 61 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 70 61 stopPropagation().{.$this->propa
808c0 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a gationStopped.=.true;.}.}.<?php.
808e0 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 45 76 ...........namespace.Composer\Ev
80900 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c entDispatcher;..use.Composer\IO\
80920 49 4f 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 IOInterface;.use.Composer\Compos
80940 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c er;.use.Composer\DependencyResol
80960 76 65 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 ver\Operation\OperationInterface
80980 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 75 73 65 20 43 6f 6d 70 6f ;.use.Composer\Script;.use.Compo
809a0 73 65 72 5c 53 63 72 69 70 74 5c 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 43 6f 6d ser\Script\CommandEvent;.use.Com
809c0 70 6f 73 65 72 5c 53 63 72 69 70 74 5c 50 61 63 6b 61 67 65 45 76 65 6e 74 3b 0a 75 73 65 20 43 poser\Script\PackageEvent;.use.C
809e0 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 0a 0a omposer\Util\ProcessExecutor;...
80a00 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 65 ............class.EventDispatche
80a20 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 74 r.{.protected.$composer;.protect
80a40 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 70 72 6f 74 65 ed.$io;.protected.$loader;.prote
80a60 63 74 65 64 20 24 70 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 cted.$process;.........public.fu
80a80 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d nction.__construct(Composer.$com
80aa0 70 6f 73 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 50 72 6f 63 65 73 73 45 poser,.IOInterface.$io,.ProcessE
80ac0 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 24 74 68 69 73 xecutor.$process.=.null).{.$this
80ae0 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 69 ->composer.=.$composer;.$this->i
80b00 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 o.=.$io;.$this->process.=.$proce
80b20 73 73 20 3f 3a 20 6e 65 77 20 50 72 6f 63 65 73 73 45 78 65 63 75 74 6f 72 28 24 69 6f 29 3b 0a ss.?:.new.ProcessExecutor($io);.
80b40 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 64 69 73 70 61 74 63 }........public.function.dispatc
80b60 68 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 45 76 65 6e 74 20 24 65 76 65 6e 74 20 3d 20 6e 75 6c h($eventName,.Event.$event.=.nul
80b80 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 20 24 65 76 65 6e 74 29 20 7b 0a 24 65 76 65 6e l).{.if.(null.==.$event).{.$even
80ba0 74 20 3d 20 6e 65 77 20 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 29 3b 0a 7d 0a 0a 24 74 t.=.new.Event($eventName);.}..$t
80bc0 68 69 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 24 65 76 65 6e 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a his->doDispatch($event);.}......
80be0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 61 74 63 68 53 63 72 69 70 74 ..public.function.dispatchScript
80c00 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 53 63 72 69 70 74 5c 45 76 65 6e 74 20 24 65 76 65 6e 74 ($eventName,.Script\Event.$event
80c20 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 20 24 65 76 65 6e 74 29 20 7b .=.null).{.if.(null.==.$event).{
80c40 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 53 63 72 69 70 74 5c 45 76 65 6e 74 28 24 65 76 65 6e .$event.=.new.Script\Event($even
80c60 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 tName,.$this->composer,.$this->i
80c80 6f 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 6f 44 69 73 70 61 74 63 68 28 24 65 76 65 6e 74 29 o);.}..$this->doDispatch($event)
80ca0 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 64 69 73 70 ;.}.........public.function.disp
80cc0 61 74 63 68 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 64 65 atchPackageEvent($eventName,.$de
80ce0 76 4d 6f 64 65 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 vMode,.OperationInterface.$opera
80d00 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 28 6e 65 77 20 50 61 tion).{.$this->doDispatch(new.Pa
80d20 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 68 69 73 2d 3e 63 6f ckageEvent($eventName,.$this->co
80d40 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 24 6f 70 mposer,.$this->io,.$devMode,.$op
80d60 65 72 61 74 69 6f 6e 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 eration));.}........public.funct
80d80 69 6f 6e 20 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 4e ion.dispatchCommandEvent($eventN
80da0 61 6d 65 2c 20 24 64 65 76 4d 6f 64 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 6f 44 69 73 70 61 74 ame,.$devMode).{.$this->doDispat
80dc0 63 68 28 6e 65 77 20 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 ch(new.CommandEvent($eventName,.
80de0 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2c 20 24 74 68 69 73 2d 3e 69 6f 2c 20 24 64 65 76 $this->composer,.$this->io,.$dev
80e00 4d 6f 64 65 29 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 Mode));.}.........protected.func
80e20 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 6e 74 29 0a 7b 0a tion.doDispatch(Event.$event).{.
80e40 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 74 65 6e 65 72 73 $listeners.=.$this->getListeners
80e60 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 6e 65 72 73 20 61 ($event);..foreach.($listeners.a
80e80 73 20 24 63 61 6c 6c 61 62 6c 65 29 20 7b 0a 69 66 20 28 21 69 73 5f 73 74 72 69 6e 67 28 24 63 s.$callable).{.if.(!is_string($c
80ea0 61 6c 6c 61 62 6c 65 29 20 26 26 20 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 63 61 6c 6c 61 62 6c allable).&&.is_callable($callabl
80ec0 65 29 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 63 61 6c 6c 61 62 6c 65 2c 20 e)).{.call_user_func($callable,.
80ee0 24 65 76 65 6e 74 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 69 73 50 68 70 53 $event);.}.elseif.($this->isPhpS
80f00 63 72 69 70 74 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 24 63 6c 61 73 73 4e 61 6d 65 20 3d cript($callable)).{.$className.=
80f20 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 61 .substr($callable,.0,.strpos($ca
80f40 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 75 llable,.'::'));.$methodName.=.su
80f60 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 65 bstr($callable,.strpos($callable
80f80 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 73 ,.'::').+.2);..if.(!class_exists
80fa0 28 24 63 6c 61 73 73 4e 61 6d 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 ($className)).{.$this->io->write
80fc0 28 27 3c 77 61 72 6e 69 6e 67 3e 43 6c 61 73 73 20 27 2e 24 63 6c 61 73 73 4e 61 6d 65 2e 27 20 ('<warning>Class.'.$className.'.
80fe0 69 73 20 6e 6f 74 20 61 75 74 6f 6c 6f 61 64 61 62 6c 65 2c 20 63 61 6e 20 6e 6f 74 20 63 61 6c is.not.autoloadable,.can.not.cal
81000 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 70 74 3c 2f l.'.$event->getName().'.script</
81020 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 69 66 20 28 21 69 73 5f warning>');.continue;.}.if.(!is_
81040 63 61 6c 6c 61 62 6c 65 28 24 63 61 6c 6c 61 62 6c 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f callable($callable)).{.$this->io
81060 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 4d 65 74 68 6f 64 20 27 2e 24 63 61 6c 6c ->write('<warning>Method.'.$call
81080 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 20 able.'.is.not.callable,.can.not.
810a0 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 70 call.'.$event->getName().'.scrip
810c0 74 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 74 72 79 20 t</warning>');.continue;.}..try.
810e0 7b 0a 24 74 68 69 73 2d 3e 65 78 65 63 75 74 65 45 76 65 6e 74 50 68 70 53 63 72 69 70 74 28 24 {.$this->executeEventPhpScript($
81100 63 6c 61 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 2c 20 24 65 76 65 6e 74 29 3b className,.$methodName,.$event);
81120 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 6d 65 73 73 .}.catch.(\Exception.$e).{.$mess
81140 61 67 65 20 3d 20 22 53 63 72 69 70 74 20 25 73 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 25 73 age.=."Script.%s.handling.the.%s
81160 20 65 76 65 6e 74 20 74 65 72 6d 69 6e 61 74 65 64 20 77 69 74 68 20 61 6e 20 65 78 63 65 70 74 .event.terminated.with.an.except
81180 69 6f 6e 22 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 65 72 72 6f 72 3e 27 ion";.$this->io->write('<error>'
811a0 2e 73 70 72 69 6e 74 66 28 24 6d 65 73 73 61 67 65 2c 20 24 63 61 6c 6c 61 62 6c 65 2c 20 24 65 .sprintf($message,.$callable,.$e
811c0 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 2e 27 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 74 68 vent->getName()).'</error>');.th
811e0 72 6f 77 20 24 65 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 30 20 21 3d 3d 20 28 24 65 row.$e;.}.}.else.{.if.(0.!==.($e
81200 78 69 74 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 2d 3e 65 78 65 63 75 74 xitCode.=.$this->process->execut
81220 65 28 24 63 61 6c 6c 61 62 6c 65 29 29 29 20 7b 0a 24 65 76 65 6e 74 2d 3e 67 65 74 49 4f 28 29 e($callable))).{.$event->getIO()
81240 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 53 63 72 69 70 74 20 25 ->write(sprintf('<error>Script.%
81260 73 20 68 61 6e 64 6c 69 6e 67 20 74 68 65 20 25 73 20 65 76 65 6e 74 20 72 65 74 75 72 6e 65 64 s.handling.the.%s.event.returned
81280 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 63 61 6c 6c 61 62 .with.an.error</error>',.$callab
812a0 6c 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 0a 74 68 72 6f 77 20 le,.$event->getName()));..throw.
812c0 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 45 72 72 6f 72 20 4f 75 74 new.\RuntimeException('Error.Out
812e0 70 75 74 3a 20 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 put:.'.$this->process->getErrorO
81300 75 74 70 75 74 28 29 2c 20 24 65 78 69 74 43 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 65 utput(),.$exitCode);.}.}..if.($e
81320 76 65 6e 74 2d 3e 69 73 50 72 6f 70 61 67 61 74 69 6f 6e 53 74 6f 70 70 65 64 28 29 29 20 7b 0a vent->isPropagationStopped()).{.
81340 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e break;.}.}.}.......protected.fun
81360 63 74 69 6f 6e 20 65 78 65 63 75 74 65 45 76 65 6e 74 50 68 70 53 63 72 69 70 74 28 24 63 6c 61 ction.executeEventPhpScript($cla
81380 73 73 4e 61 6d 65 2c 20 24 6d 65 74 68 6f 64 4e 61 6d 65 2c 20 45 76 65 6e 74 20 24 65 76 65 6e ssName,.$methodName,.Event.$even
813a0 74 29 0a 7b 0a 24 63 6c 61 73 73 4e 61 6d 65 3a 3a 24 6d 65 74 68 6f 64 4e 61 6d 65 28 24 65 76 t).{.$className::$methodName($ev
813c0 65 6e 74 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 ent);.}.........protected.functi
813e0 6f 6e 20 61 64 64 4c 69 73 74 65 6e 65 72 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 6c 69 73 74 on.addListener($eventName,.$list
81400 65 6e 65 72 2c 20 24 70 72 69 6f 72 69 74 79 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 69 ener,.$priority.=.0).{.$this->li
81420 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 4e 61 6d 65 5d 5b 24 70 72 69 6f 72 69 74 79 5d 5b 5d steners[$eventName][$priority][]
81440 20 3d 20 24 6c 69 73 74 65 6e 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .=.$listener;.}.........public.f
81460 75 6e 63 74 69 6f 6e 20 61 64 64 53 75 62 73 63 72 69 62 65 72 28 45 76 65 6e 74 53 75 62 73 63 unction.addSubscriber(EventSubsc
81480 72 69 62 65 72 49 6e 74 65 72 66 61 63 65 20 24 73 75 62 73 63 72 69 62 65 72 29 0a 7b 0a 66 6f riberInterface.$subscriber).{.fo
814a0 72 65 61 63 68 20 28 24 73 75 62 73 63 72 69 62 65 72 2d 3e 67 65 74 53 75 62 73 63 72 69 62 65 reach.($subscriber->getSubscribe
814c0 64 45 76 65 6e 74 73 28 29 20 61 73 20 24 65 76 65 6e 74 4e 61 6d 65 20 3d 3e 20 24 70 61 72 61 dEvents().as.$eventName.=>.$para
814e0 6d 73 29 20 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 70 61 72 61 6d 73 29 29 20 7b 0a ms).{.if.(is_string($params)).{.
81500 24 74 68 69 73 2d 3e 61 64 64 4c 69 73 74 65 6e 65 72 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 61 $this->addListener($eventName,.a
81520 72 72 61 79 28 24 73 75 62 73 63 72 69 62 65 72 2c 20 24 70 61 72 61 6d 73 29 29 3b 0a 7d 20 65 rray($subscriber,.$params));.}.e
81540 6c 73 65 69 66 20 28 69 73 5f 73 74 72 69 6e 67 28 24 70 61 72 61 6d 73 5b 30 5d 29 29 20 7b 0a lseif.(is_string($params[0])).{.
81560 24 74 68 69 73 2d 3e 61 64 64 4c 69 73 74 65 6e 65 72 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 61 $this->addListener($eventName,.a
81580 72 72 61 79 28 24 73 75 62 73 63 72 69 62 65 72 2c 20 24 70 61 72 61 6d 73 5b 30 5d 29 2c 20 69 rray($subscriber,.$params[0]),.i
815a0 73 73 65 74 28 24 70 61 72 61 6d 73 5b 31 5d 29 20 3f 20 24 70 61 72 61 6d 73 5b 31 5d 20 3a 20 sset($params[1]).?.$params[1].:.
815c0 30 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 72 61 6d 73 20 61 73 0);.}.else.{.foreach.($params.as
815e0 20 24 6c 69 73 74 65 6e 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 69 73 74 65 6e 65 72 .$listener).{.$this->addListener
81600 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 61 72 72 61 79 28 24 73 75 62 73 63 72 69 62 65 72 2c 20 ($eventName,.array($subscriber,.
81620 24 6c 69 73 74 65 6e 65 72 5b 30 5d 29 2c 20 69 73 73 65 74 28 24 6c 69 73 74 65 6e 65 72 5b 31 $listener[0]),.isset($listener[1
81640 5d 29 20 3f 20 24 6c 69 73 74 65 6e 65 72 5b 31 5d 20 3a 20 30 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a ]).?.$listener[1].:.0);.}.}.}.}.
81660 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 4c 69 73 .......protected.function.getLis
81680 74 65 6e 65 72 73 28 45 76 65 6e 74 20 24 65 76 65 6e 74 29 0a 7b 0a 24 73 63 72 69 70 74 4c 69 teners(Event.$event).{.$scriptLi
816a0 73 74 65 6e 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 63 72 69 70 74 4c 69 73 74 65 6e steners.=.$this->getScriptListen
816c0 65 72 73 28 24 65 76 65 6e 74 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e ers($event);..if.(!isset($this->
816e0 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 30 5d 29 listeners[$event->getName()][0])
81700 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 ).{.$this->listeners[$event->get
81720 4e 61 6d 65 28 29 5d 5b 30 5d 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 6b 72 73 6f 72 74 28 24 Name()][0].=.array();.}.krsort($
81740 74 68 69 73 2d 3e 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 this->listeners[$event->getName(
81760 29 5d 29 3b 0a 0a 24 6c 69 73 74 65 6e 65 72 73 20 3d 20 24 74 68 69 73 2d 3e 6c 69 73 74 65 6e )]);..$listeners.=.$this->listen
81780 65 72 73 3b 0a 24 6c 69 73 74 65 6e 65 72 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 ers;.$listeners[$event->getName(
817a0 29 5d 5b 30 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6c 69 73 74 65 6e 65 72 73 5b 24 )][0].=.array_merge($listeners[$
817c0 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 30 5d 2c 20 24 73 63 72 69 70 74 4c 69 73 event->getName()][0],.$scriptLis
817e0 74 65 6e 65 72 73 29 3b 0a 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f teners);..return.call_user_func_
81800 61 72 72 61 79 28 27 61 72 72 61 79 5f 6d 65 72 67 65 27 2c 20 24 6c 69 73 74 65 6e 65 72 73 5b array('array_merge',.$listeners[
81820 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 $event->getName()]);.}........pr
81840 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 63 72 69 70 74 4c 69 73 74 65 6e otected.function.getScriptListen
81860 65 72 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 ers(Event.$event).{.$package.=.$
81880 74 68 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 this->composer->getPackage();.$s
818a0 63 72 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 cripts.=.$package->getScripts();
818c0 0a 0a 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 ..if.(empty($scripts[$event->get
818e0 4e 61 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 Name()])).{.return.array();.}..i
81900 66 20 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 f.($this->loader).{.$this->loade
81920 72 2d 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 r->unregister();.}..$generator.=
81940 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e .$this->composer->getAutoloadGen
81960 65 72 61 74 6f 72 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d erator();.$packages.=.$this->com
81980 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
819a0 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 etLocalRepository()->getCanonica
819c0 6c 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 65 6e 65 lPackages();.$packageMap.=.$gene
819e0 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 3e 63 6f rator->buildPackageMap($this->co
81a00 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 72 28 29 mposer->getInstallationManager()
81a20 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 3d 20 24 ,.$package,.$packages);.$map.=.$
81a40 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 63 6b 61 generator->parseAutoloads($packa
81a60 67 65 4d 61 70 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 20 geMap,.$package);.$this->loader.
81a80 3d 20 24 67 65 6e 65 72 61 74 6f 72 2d 3e 63 72 65 61 74 65 4c 6f 61 64 65 72 28 24 6d 61 70 29 =.$generator->createLoader($map)
81aa0 3b 0a 24 74 68 69 73 2d 3e 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 72 28 29 3b 0a 0a 72 65 ;.$this->loader->register();..re
81ac0 74 75 72 6e 20 24 73 63 72 69 70 74 73 5b 24 65 76 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d turn.$scripts[$event->getName()]
81ae0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 ;.}........protected.function.is
81b00 50 68 70 53 63 72 69 70 74 28 24 63 61 6c 6c 61 62 6c 65 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 PhpScript($callable).{.return.fa
81b20 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 20 27 29 20 26 lse.===.strpos($callable,.'.').&
81b40 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 63 61 6c 6c 61 62 6c 65 2c 20 27 3a &.false.!==.strpos($callable,.':
81b60 3a 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 :');.}.}.<?php............namesp
81b80 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 ace.Composer\Script;..use.Compos
81ba0 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 er\Composer;.use.Composer\IO\IOI
81bc0 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 76 65 6e 74 20 65 78 74 nterface;........class.Event.ext
81be0 65 6e 64 73 20 5c 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 ends.\Composer\EventDispatcher\E
81c00 76 65 6e 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 0a 0a 0a vent.{....private.$composer;....
81c20 0a 70 72 69 76 61 74 65 20 24 69 6f 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 76 4d 6f .private.$io;.....private.$devMo
81c40 64 65 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 de;..........public.function.__c
81c60 6f 6e 73 74 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 onstruct($name,.Composer.$compos
81c80 65 72 2c 20 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 20 3d 20 er,.IOInterface.$io,.$devMode.=.
81ca0 66 61 6c 73 65 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 false).{.parent::__construct($na
81cc0 6d 65 29 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 73 65 72 me);.$this->composer.=.$composer
81ce0 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 64 65 76 4d 6f 64 ;.$this->io.=.$io;.$this->devMod
81d00 65 20 3d 20 24 64 65 76 4d 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e e.=.$devMode;.}.......public.fun
81d20 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
81d40 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
81d60 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
81d80 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 44 65 76 4d ;.}.......public.function.isDevM
81da0 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 3b 0a 7d ode().{.return.$this->devMode;.}
81dc0 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
81de0 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 63 72 69 mposer\Script;........class.Scri
81e00 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 4e 53 54 ptEvents.{........const.PRE_INST
81e20 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 0a 0a 0a ALL_CMD.=.'pre-install-cmd';....
81e40 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 20 27 70 .....const.POST_INSTALL_CMD.=.'p
81e60 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 73 74 20 ost-install-cmd';.........const.
81e80 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 63 6d 64 PRE_UPDATE_CMD.=.'pre-update-cmd
81ea0 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 43 4d 44 ';.........const.POST_UPDATE_CMD
81ec0 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 0a 63 6f .=.'post-update-cmd';.........co
81ee0 6e 73 74 20 50 52 45 5f 53 54 41 54 55 53 5f 43 4d 44 20 3d 20 27 70 72 65 2d 73 74 61 74 75 73 nst.PRE_STATUS_CMD.=.'pre-status
81f00 2d 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 53 54 41 54 55 53 -cmd';.........const.POST_STATUS
81f20 5f 43 4d 44 20 3d 20 27 70 6f 73 74 2d 73 74 61 74 75 73 2d 63 6d 64 27 3b 0a 0a 0a 0a 0a 0a 0a _CMD.=.'post-status-cmd';.......
81f40 0a 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 ..const.PRE_PACKAGE_INSTALL.=.'p
81f60 72 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 re-package-install';.........con
81f80 73 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 st.POST_PACKAGE_INSTALL.=.'post-
81fa0 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 74 20 package-install';.........const.
81fc0 50 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 PRE_PACKAGE_UPDATE.=.'pre-packag
81fe0 65 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 e-update';.........const.POST_PA
82000 43 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 CKAGE_UPDATE.=.'post-package-upd
82020 61 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 ate';.........const.PRE_PACKAGE_
82040 55 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 UNINSTALL.=.'pre-package-uninsta
82060 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 50 41 43 4b 41 47 45 5f ll';.........const.POST_PACKAGE_
82080 55 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 UNINSTALL.=.'post-package-uninst
820a0 61 6c 6c 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 52 45 5f 41 55 54 4f 4c 4f 41 44 all';.........const.PRE_AUTOLOAD
820c0 5f 44 55 4d 50 20 3d 20 27 70 72 65 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 27 3b 0a 0a 0a 0a _DUMP.=.'pre-autoload-dump';....
820e0 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 20 3d 20 .....const.POST_AUTOLOAD_DUMP.=.
82100 27 70 6f 73 74 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 'post-autoload-dump';.........co
82120 6e 73 74 20 50 4f 53 54 5f 52 4f 4f 54 5f 50 41 43 4b 41 47 45 5f 49 4e 53 54 41 4c 4c 20 3d 20 nst.POST_ROOT_PACKAGE_INSTALL.=.
82140 27 70 6f 73 74 2d 72 6f 6f 74 2d 70 61 63 6b 61 67 65 2d 69 6e 73 74 61 6c 6c 27 3b 0a 0a 0a 0a 'post-root-package-install';....
82160 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 50 4f 53 54 5f 43 52 45 41 54 45 5f 50 52 4f 4a 45 43 54 5f ......const.POST_CREATE_PROJECT_
82180 43 4d 44 20 3d 20 27 70 6f 73 74 2d 63 72 65 61 74 65 2d 70 72 6f 6a 65 63 74 2d 63 6d 64 27 3b CMD.=.'post-create-project-cmd';
821a0 0a 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
821c0 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d omposer\Script;.......class.Comm
821e0 61 6e 64 45 76 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 andEvent.extends.Event.{.}.<?php
82200 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 53 ............namespace.Composer\S
82220 63 72 69 70 74 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 cript;..use.Composer\Composer;.u
82240 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.
82260 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 4f 70 65 72 Composer\DependencyResolver\Oper
82280 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 0a 0a 0a 0a 0a 0a ation\OperationInterface;.......
822a0 63 6c 61 73 73 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 class.PackageEvent.extends.Event
822c0 0a 7b 0a 0a 0a 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 .{....private.$operation;.......
822e0 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(
82300 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 49 4f 49 6e 74 $name,.Composer.$composer,.IOInt
82320 65 72 66 61 63 65 20 24 69 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 4f 70 65 72 61 74 69 6f 6e 49 erface.$io,.$devMode,.OperationI
82340 6e 74 65 72 66 61 63 65 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f nterface.$operation).{.parent::_
82360 5f 63 6f 6e 73 74 72 75 63 74 28 24 6e 61 6d 65 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 69 6f _construct($name,.$composer,.$io
82380 2c 20 24 64 65 76 4d 6f 64 65 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 65 72 61 74 69 6f 6e 20 3d 20 ,.$devMode);.$this->operation.=.
823a0 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 20 66 75 6e 63 74 $operation;.}.......public.funct
823c0 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 6e 20 24 74 68 69 ion.getOperation().{.return.$thi
823e0 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 0a 0a 0a 0a 0a 0a s->operation;.}.}.<?php.........
82400 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 72 3b ...namespace.Composer\Installer;
82420 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 61 6c ..use.Composer\Repository\Instal
82440 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 6d 70 ledRepositoryInterface;.use.Comp
82460 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 0a oser\Package\PackageInterface;..
82480 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 .......class.NoopInstaller.imple
824a0 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 7b 0a 0a 0a 0a 70 75 ments.InstallerInterface.{....pu
824c0 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
824e0 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 63 ype).{.return.true;.}.....public
82500 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 52 .function.isInstalled(InstalledR
82520 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
82540 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 72 eInterface.$package).{.return.$r
82560 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 0a epo->hasPackage($package);.}....
82580 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 6c .public.function.install(Install
825a0 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 63 edRepositoryInterface.$repo,.Pac
825c0 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 24 kageInterface.$package).{.if.(!$
825e0 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 24 72 repo->hasPackage($package)).{.$r
82600 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 29 3b epo->addPackage(clone.$package);
82620 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 75 70 64 61 74 65 28 .}.}.....public.function.update(
82640 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 65 InstalledRepositoryInterface.$re
82660 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 po,.PackageInterface.$initial,.P
82680 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 69 66 20 28 21 ackageInterface.$target).{.if.(!
826a0 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 20 7b 0a 74 $repo->hasPackage($initial)).{.t
826c0 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
826e0 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 27 2e on('Package.is.not.installed:.'.
82700 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 $initial);.}..$repo->removePacka
82720 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 ge($initial);.if.(!$repo->hasPac
82740 6b 61 67 65 28 24 74 61 72 67 65 74 29 29 20 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 kage($target)).{.$repo->addPacka
82760 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 ge(clone.$target);.}.}.....publi
82780 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
827a0 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
827c0 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f Interface.$package).{.if.(!$repo
827e0 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 74 68 72 6f 77 20 ->hasPackage($package)).{.throw.
82800 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
82820 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
82840 61 67 65 29 3b 0a 7d 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 age);.}.$repo->removePackage($pa
82860 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 65 ckage);.}.....public.function.ge
82880 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 70 tInstallPath(PackageInterface.$p
828a0 61 63 6b 61 67 65 29 0a 7b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 24 70 61 63 6b 61 67 65 2d ackage).{.$targetDir.=.$package-
828c0 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 6b 61 67 >getTargetDir();..return.$packag
828e0 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 20 2e 20 28 24 74 61 72 67 65 74 44 69 72 e->getPrettyName()...($targetDir
82900 20 3f 20 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a 7d 0a 7d 0a 3c 3f 70 .?.'/'.$targetDir.:.'');.}.}.<?p
82920 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
82940 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 73 69 \Installer;..use.Composer\Reposi
82960 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 tory\InstalledRepositoryInterfac
82980 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 65 49 e;.use.Composer\Package\PackageI
829a0 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4d 65 74 61 70 61 63 6b 61 67 nterface;.......class.Metapackag
829c0 65 49 6e 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 eInstaller.implements.InstallerI
829e0 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 75 nterface.{....public.function.su
82a00 70 70 6f 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 24 70 pports($packageType).{.return.$p
82a20 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 27 6d 65 74 61 70 61 63 6b 61 67 65 27 3b 0a 7d 0a ackageType.===.'metapackage';.}.
82a40 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 65 64 28 ....public.function.isInstalled(
82a60 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 65 InstalledRepositoryInterface.$re
82a80 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 7b po,.PackageInterface.$package).{
82aa0 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 63 6b 61 .return.$repo->hasPackage($packa
82ac0 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 73 74 61 ge);.}.....public.function.insta
82ae0 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 20 ll(InstalledRepositoryInterface.
82b00 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
82b20 29 0a 7b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 63 6c 6f 6e 65 20 24 70 61 63 ).{.$repo->addPackage(clone.$pac
82b40 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 75 70 64 kage);.}.....public.function.upd
82b60 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
82b80 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
82ba0 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 69 l,.PackageInterface.$target).{.i
82bc0 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 29 f.(!$repo->hasPackage($initial))
82be0 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
82c00 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 eption('Package.is.not.installed
82c20 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 :.'.$initial);.}..$repo->removeP
82c40 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 72 65 70 6f 2d 3e 61 64 64 50 61 63 6b ackage($initial);.$repo->addPack
82c60 61 67 65 28 63 6c 6f 6e 65 20 24 74 61 72 67 65 74 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 age(clone.$target);.}.....public
82c80 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 70 .function.uninstall(InstalledRep
82ca0 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 ositoryInterface.$repo,.PackageI
82cc0 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d nterface.$package).{.if.(!$repo-
82ce0 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e >hasPackage($package)).{.throw.n
82d00 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 ew.\InvalidArgumentException('Pa
82d20 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 61 ckage.is.not.installed:.'.$packa
82d40 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 61 ge);.}..$repo->removePackage($pa
82d60 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 65 ckage);.}.....public.function.ge
82d80 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 70 tInstallPath(PackageInterface.$p
82da0 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 0a ackage).{.return.'';.}.}.<?php..
82dc0 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 73 ..........namespace.Composer\Ins
82de0 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 72 taller;..use.Composer\IO\IOInter
82e00 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 65 face;.use.Composer\Composer;.use
82e20 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 65 .Composer\Downloader\PearPackage
82e40 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 6f Extractor;.use.Composer\Reposito
82e60 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 3b ry\InstalledRepositoryInterface;
82e80 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
82ea0 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 6c erface;........class.PearInstall
82ec0 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 0a er.extends.LibraryInstaller.{...
82ee0 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
82f00 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 70 (IOInterface.$io,.Composer.$comp
82f20 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 0a oser,.$type.=.'pear-library').{.
82f40 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 73 parent::__construct($io,.$compos
82f60 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 6f er,.$type);.}.....public.functio
82f80 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 65 n.update(InstalledRepositoryInte
82fa0 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 69 rface.$repo,.PackageInterface.$i
82fc0 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 74 nitial,.PackageInterface.$target
82fe0 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 69 ).{.$this->uninstall($repo,.$ini
83000 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 61 tial);.$this->install($repo,.$ta
83020 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 73 rget);.}..protected.function.ins
83040 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 61 tallCode(PackageInterface.$packa
83060 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 61 ge).{.parent::installCode($packa
83080 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 3b ge);.parent::initializeBinDir();
830a0 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 44 ..$isWindows.=.defined('PHP_WIND
830c0 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 3b 0a 24 70 68 70 5f 62 69 6e 20 3d 20 OWS_VERSION_BUILD');.$php_bin.=.
830e0 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 2e 20 28 24 69 73 57 69 6e 64 6f 77 73 20 3f 20 27 2f $this->binDir...($isWindows.?.'/
83100 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 27 20 3a 20 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 composer-php.bat'.:.'/composer-p
83120 68 70 27 29 3b 0a 0a 69 66 20 28 21 24 69 73 57 69 6e 64 6f 77 73 29 20 7b 0a 24 70 68 70 5f 62 hp');..if.(!$isWindows).{.$php_b
83140 69 6e 20 3d 20 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 27 20 2e 20 24 70 68 70 5f 62 69 6e 3b in.=.'/usr/bin/env.'...$php_bin;
83160 0a 7d 0a 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 .}..$installPath.=.$this->getIns
83180 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 24 76 61 72 73 20 3d 20 61 72 72 61 tallPath($package);.$vars.=.arra
831a0 79 28 0a 27 6f 73 27 20 3d 3e 20 24 69 73 57 69 6e 64 6f 77 73 20 3f 20 27 77 69 6e 64 6f 77 73 y(.'os'.=>.$isWindows.?.'windows
831c0 27 20 3a 20 27 6c 69 6e 75 78 27 2c 0a 27 70 68 70 5f 62 69 6e 27 20 3d 3e 20 24 70 68 70 5f 62 '.:.'linux',.'php_bin'.=>.$php_b
831e0 69 6e 2c 0a 27 70 65 61 72 5f 70 68 70 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 0a in,.'pear_php'.=>.$installPath,.
83200 27 70 68 70 5f 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2c 0a 27 62 69 6e 5f 'php_dir'.=>.$installPath,.'bin_
83220 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 2e 20 27 2f 62 69 6e 27 2c 0a 27 dir'.=>.$installPath...'/bin',.'
83240 64 61 74 61 5f 64 69 72 27 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 2e 20 27 2f 64 61 data_dir'.=>.$installPath...'/da
83260 74 61 27 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 ta',.'version'.=>.$package->getP
83280 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a 29 3b 0a 0a 24 70 61 63 6b 61 67 65 41 72 63 68 rettyVersion(),.);..$packageArch
832a0 69 76 65 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 ive.=.$this->getInstallPath($pac
832c0 6b 61 67 65 29 2e 27 2f 27 2e 70 61 74 68 69 6e 66 6f 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 kage).'/'.pathinfo($package->get
832e0 44 69 73 74 55 72 6c 28 29 2c 20 50 41 54 48 49 4e 46 4f 5f 42 41 53 45 4e 41 4d 45 29 3b 0a 24 DistUrl(),.PATHINFO_BASENAME);.$
83300 70 65 61 72 45 78 74 72 61 63 74 6f 72 20 3d 20 6e 65 77 20 50 65 61 72 50 61 63 6b 61 67 65 45 pearExtractor.=.new.PearPackageE
83320 78 74 72 61 63 74 6f 72 28 24 70 61 63 6b 61 67 65 41 72 63 68 69 76 65 29 3b 0a 24 70 65 61 72 xtractor($packageArchive);.$pear
83340 45 78 74 72 61 63 74 6f 72 2d 3e 65 78 74 72 61 63 74 54 6f 28 24 74 68 69 73 2d 3e 67 65 74 49 Extractor->extractTo($this->getI
83360 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 2c 20 61 72 72 61 79 28 27 70 68 70 nstallPath($package),.array('php
83380 27 20 3d 3e 20 27 2f 27 2c 20 27 73 63 72 69 70 74 27 20 3d 3e 20 27 2f 62 69 6e 27 2c 20 27 64 '.=>.'/',.'script'.=>.'/bin',.'d
833a0 61 74 61 27 20 3d 3e 20 27 2f 64 61 74 61 27 29 2c 20 24 76 61 72 73 29 3b 0a 0a 69 66 20 28 24 ata'.=>.'/data'),.$vars);..if.($
833c0 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 68 69 73 2d 3e this->io->isVerbose()).{.$this->
833e0 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 43 6c 65 61 6e 69 6e 67 20 75 70 27 29 3b 0a 7d 0a io->write('....Cleaning.up');.}.
83400 75 6e 6c 69 6e 6b 28 24 70 61 63 6b 61 67 65 41 72 63 68 69 76 65 29 3b 0a 7d 0a 0a 70 72 6f 74 unlink($packageArchive);.}..prot
83420 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 ected.function.getBinaries(Packa
83440 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
83460 73 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 70 sPath.=.$this->getInstallPath($p
83480 61 63 6b 61 67 65 29 20 2e 20 27 2f 62 69 6e 2f 27 3b 0a 24 62 69 6e 61 72 69 65 73 20 3d 20 61 ackage)...'/bin/';.$binaries.=.a
834a0 72 72 61 79 28 29 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 62 69 6e 61 72 69 65 rray();.if.(file_exists($binarie
834c0 73 50 61 74 68 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 6e 65 77 20 5c 46 69 6c 65 73 79 73 74 sPath)).{.foreach.(new.\Filesyst
834e0 65 6d 49 74 65 72 61 74 6f 72 28 24 62 69 6e 61 72 69 65 73 50 61 74 68 2c 20 5c 46 69 6c 65 73 emIterator($binariesPath,.\Files
83500 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a 3a 4b 45 59 5f 41 53 5f 46 49 4c 45 4e 41 4d 45 20 7c ystemIterator::KEY_AS_FILENAME.|
83520 20 5c 46 69 6c 65 73 79 73 74 65 6d 49 74 65 72 61 74 6f 72 3a 3a 43 55 52 52 45 4e 54 5f 41 53 .\FilesystemIterator::CURRENT_AS
83540 5f 46 49 4c 45 49 4e 46 4f 29 20 61 73 20 24 66 69 6c 65 4e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 _FILEINFO).as.$fileName.=>.$valu
83560 65 29 20 7b 0a 69 66 20 28 21 24 76 61 6c 75 65 2d 3e 69 73 44 69 72 28 29 29 20 7b 0a 24 62 69 e).{.if.(!$value->isDir()).{.$bi
83580 6e 61 72 69 65 73 5b 5d 20 3d 20 27 62 69 6e 2f 27 2e 24 66 69 6c 65 4e 61 6d 65 3b 0a 7d 0a 7d naries[].=.'bin/'.$fileName;.}.}
835a0 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 69 6e 61 72 69 65 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 .}..return.$binaries;.}..protect
835c0 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 7b ed.function.initializeBinDir().{
835e0 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 3b 0a 66 69 6c .parent::initializeBinDir();.fil
83600 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 e_put_contents($this->binDir.'/c
83620 6f 6d 70 6f 73 65 72 2d 70 68 70 27 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 omposer-php',.$this->generateUni
83640 78 79 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 29 3b 0a 40 63 68 6d 6f 64 28 24 74 68 69 73 2d xyPhpProxyCode());.@chmod($this-
83660 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 27 2c 20 30 37 37 37 29 3b 0a >binDir.'/composer-php',.0777);.
83680 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 62 69 6e 44 69 72 2e file_put_contents($this->binDir.
836a0 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e 62 61 74 27 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 '/composer-php.bat',.$this->gene
836c0 72 61 74 65 57 69 6e 64 6f 77 73 50 68 70 50 72 6f 78 79 43 6f 64 65 28 29 29 3b 0a 40 63 68 6d rateWindowsPhpProxyCode());.@chm
836e0 6f 64 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2e 27 2f 63 6f 6d 70 6f 73 65 72 2d 70 68 70 2e od($this->binDir.'/composer-php.
83700 62 61 74 27 2c 20 30 37 37 37 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 bat',.0777);.}..protected.functi
83720 6f 6e 20 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e on.generateWindowsProxyCode($bin
83740 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
83760 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,
83780 20 24 62 69 6e 29 3b 0a 69 66 20 28 27 2e 62 61 74 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 .$bin);.if.('.bat'.===.substr($b
837a0 69 6e 2c 20 2d 34 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 63 61 6c 6c 27 3b 0a 7d 20 65 in,.-4)).{.$caller.=.'call';.}.e
837c0 6c 73 65 20 7b 0a 24 68 61 6e 64 6c 65 20 3d 20 66 6f 70 65 6e 28 24 62 69 6e 2c 20 27 72 27 29 lse.{.$handle.=.fopen($bin,.'r')
837e0 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 24 68 61 6e 64 6c 65 29 3b 0a 66 63 6c 6f 73 65 ;.$line.=.fgets($handle);.fclose
83800 28 24 68 61 6e 64 6c 65 29 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 23 21 2f ($handle);.if.(preg_match('{^#!/
83820 28 3f 3a 75 73 72 2f 62 69 6e 2f 65 6e 76 20 29 3f 28 3f 3a 5b 5e 2f 5d 2b 2f 29 2a 28 2e 2b 29 (?:usr/bin/env.)?(?:[^/]+/)*(.+)
83840 24 7d 6d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 $}m',.$line,.$match)).{.$caller.
83860 3d 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 61 6c =.trim($match[1]);.}.else.{.$cal
83880 6c 65 72 20 3d 20 27 70 68 70 27 3b 0a 7d 0a 0a 69 66 20 28 24 63 61 6c 6c 65 72 20 3d 3d 3d 20 ler.=.'php';.}..if.($caller.===.
838a0 27 70 68 70 27 29 20 7b 0a 72 65 74 75 72 6e 20 22 40 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 2e 'php').{.return."@echo.off\r\n".
838c0 0a 22 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 ."pushd..\r\n".."cd.%~dp0\r\n"..
838e0 22 73 65 74 20 50 48 50 5f 50 52 4f 58 59 3d 25 43 44 25 5c 5c 63 6f 6d 70 6f 73 65 72 2d 70 68 "set.PHP_PROXY=%CD%\\composer-ph
83900 70 2e 62 61 74 5c 72 5c 6e 22 2e 0a 22 63 64 20 22 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 p.bat\r\n".."cd.".escapeshellarg
83920 28 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 2e 22 5c 72 5c 6e 22 2e 0a 22 73 65 74 (dirname($binPath))."\r\n".."set
83940 20 42 49 4e 5f 54 41 52 47 45 54 3d 25 43 44 25 5c 5c 22 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 .BIN_TARGET=%CD%\\".basename($bi
83960 6e 50 61 74 68 29 2e 22 5c 72 5c 6e 22 2e 0a 22 70 6f 70 64 5c 72 5c 6e 22 2e 0a 22 25 50 48 50 nPath)."\r\n".."popd\r\n".."%PHP
83980 5f 50 52 4f 58 59 25 20 5c 22 25 42 49 4e 5f 54 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e 22 _PROXY%.\"%BIN_TARGET%\".%*\r\n"
839a0 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".."
839c0 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
839e0 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
83a00 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
83a20 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".
83a40 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
83a60 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
83a80 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 68 70 50 72 6f 78 79 43 6f 64 65 tion.generateWindowsPhpProxyCode
83aa0 28 29 0a 7b 0a 24 62 69 6e 54 6f 56 65 6e 64 6f 72 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 ().{.$binToVendor.=.$this->files
83ac0 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 74 68 69 73 2d 3e 62 ystem->findShortestPath($this->b
83ae0 69 6e 44 69 72 2c 20 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 2c 20 74 72 75 65 29 3b 0a inDir,.$this->vendorDir,.true);.
83b00 0a 72 65 74 75 72 6e 0a 22 40 65 63 68 6f 20 6f 66 66 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 6c 6f .return."@echo.off\r\n"..."setlo
83b20 63 61 6c 20 65 6e 61 62 6c 65 64 65 6c 61 79 65 64 65 78 70 61 6e 73 69 6f 6e 5c 72 5c 6e 22 20 cal.enabledelayedexpansion\r\n".
83b40 2e 0a 22 73 65 74 20 42 49 4e 5f 44 49 52 3d 25 7e 64 70 30 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 .."set.BIN_DIR=%~dp0\r\n"..."set
83b60 20 56 45 4e 44 4f 52 5f 44 49 52 3d 25 42 49 4e 5f 44 49 52 25 5c 5c 22 2e 24 62 69 6e 54 6f 56 .VENDOR_DIR=%BIN_DIR%\\".$binToV
83b80 65 6e 64 6f 72 2e 22 5c 72 5c 6e 22 20 2e 0a 22 73 65 74 20 44 49 52 53 3d 2e 5c 72 5c 6e 22 20 endor."\r\n"..."set.DIRS=.\r\n".
83ba0 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 5f 44 49 52 25 5c 5c .."FOR./D.%%V.IN.(%VENDOR_DIR%\\
83bc0 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 25 25 50 20 49 *).DO.(\r\n"..."....FOR./D.%%P.I
83be0 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 20 20 20 20 20 N.(%%V\\*).DO.(\r\n"..."........
83c00 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 2e 0a 22 20 20 set.DIRS=!DIRS!;%%~fP\r\n"..."..
83c20 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 78 65 20 2d 64 ..)\r\n"...")\r\n"..."php.exe.-d
83c40 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 22 3b 0a 7d 0a .include_path=!DIRS!.%*\r\n";.}.
83c60 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 6e 69 78 79 50 .private.function.generateUnixyP
83c80 68 70 50 72 6f 78 79 43 6f 64 65 28 29 0a 7b 0a 24 62 69 6e 54 6f 56 65 6e 64 6f 72 20 3d 20 24 hpProxyCode().{.$binToVendor.=.$
83ca0 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 this->filesystem->findShortestPa
83cc0 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 2c 20 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 th($this->binDir,.$this->vendorD
83ce0 69 72 2c 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 0a 22 23 21 2f 75 73 72 2f 62 69 6e 2f 65 ir,.true);..return."#!/usr/bin/e
83d00 6e 76 20 73 68 5c 6e 22 2e 0a 22 53 52 43 5f 44 49 52 3d 60 70 77 64 60 5c 6e 22 2e 0a 22 42 49 nv.sh\n".."SRC_DIR=`pwd`\n".."BI
83d20 4e 5f 44 49 52 3d 60 64 69 72 6e 61 6d 65 20 24 30 60 5c 6e 22 2e 0a 22 56 45 4e 44 4f 52 5f 44 N_DIR=`dirname.$0`\n".."VENDOR_D
83d40 49 52 3d 5c 24 42 49 4e 5f 44 49 52 2f 22 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 62 IR=\$BIN_DIR/".escapeshellarg($b
83d60 69 6e 54 6f 56 65 6e 64 6f 72 29 2e 22 5c 6e 22 2e 0a 22 44 49 52 53 3d 5c 22 5c 22 5c 6e 22 2e inToVendor)."\n".."DIRS=\"\"\n".
83d80 0a 22 66 6f 72 20 76 65 6e 64 6f 72 20 69 6e 20 5c 24 56 45 4e 44 4f 52 5f 44 49 52 2f 2a 3b 20 ."for.vendor.in.\$VENDOR_DIR/*;.
83da0 64 6f 5c 6e 22 2e 0a 22 20 20 20 20 69 66 20 5b 20 2d 64 20 5c 22 5c 24 76 65 6e 64 6f 72 5c 22 do\n".."....if.[.-d.\"\$vendor\"
83dc0 20 5d 3b 20 74 68 65 6e 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 66 6f 72 20 70 61 63 6b 61 67 .];.then\n".."........for.packag
83de0 65 20 69 6e 20 5c 24 76 65 6e 64 6f 72 2f 2a 3b 20 64 6f 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 e.in.\$vendor/*;.do\n"..".......
83e00 20 20 20 20 20 69 66 20 5b 20 2d 64 20 5c 22 5c 24 70 61 63 6b 61 67 65 5c 22 20 5d 3b 20 74 68 .....if.[.-d.\"\$package\".];.th
83e20 65 6e 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 44 49 52 53 3d 5c 22 5c en\n".."................DIRS=\"\
83e40 24 7b 44 49 52 53 7d 3a 5c 24 7b 70 61 63 6b 61 67 65 7d 5c 22 5c 6e 22 2e 0a 22 20 20 20 20 20 ${DIRS}:\${package}\"\n"..".....
83e60 20 20 20 20 20 20 20 66 69 5c 6e 22 2e 0a 22 20 20 20 20 20 20 20 20 64 6f 6e 65 5c 6e 22 2e 0a .......fi\n".."........done\n"..
83e80 22 20 20 20 20 66 69 5c 6e 22 2e 0a 22 64 6f 6e 65 5c 6e 22 2e 0a 22 70 68 70 20 2d 64 20 69 6e "....fi\n".."done\n".."php.-d.in
83ea0 63 6c 75 64 65 5f 70 61 74 68 3d 5c 22 2e 5c 24 44 49 52 53 5c 22 20 24 40 5c 6e 22 3b 0a 7d 0a clude_path=\".\$DIRS\".$@\n";.}.
83ec0 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
83ee0 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 50 poser\Installer;..use.Composer\P
83f00 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 6d ackage\PackageInterface;.use.Com
83f20 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
83f40 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c ;.use.Composer\Repository\Instal
83f60 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 6d 70 ledRepositoryInterface;.use.Comp
83f80 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 6c 61 oser\Util\Filesystem;........cla
83fa0 73 73 20 50 72 6f 6a 65 63 74 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 ss.ProjectInstaller.implements.I
83fc0 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 nstallerInterface.{.private.$ins
83fe0 74 61 6c 6c 50 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 tallPath;.private.$downloadManag
84000 65 72 3b 0a 70 72 69 76 61 74 65 20 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 70 75 62 6c 69 63 er;.private.$filesystem;..public
84020 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6e 73 74 61 6c 6c 50 61 .function.__construct($installPa
84040 74 68 2c 20 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6d 29 0a 7b 0a 24 74 68 69 73 th,.DownloadManager.$dm).{.$this
84060 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 72 74 72 69 6d 28 73 74 72 74 72 28 24 69 6e 73 ->installPath.=.rtrim(strtr($ins
84080 74 61 6c 6c 50 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a tallPath,.'\\',.'/'),.'/').'/';.
840a0 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 64 6d 3b 0a 24 74 $this->downloadManager.=.$dm;.$t
840c0 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 69 6c 65 73 79 73 74 65 6d his->filesystem.=.new.Filesystem
840e0 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 75 70 70 6f ;.}........public.function.suppo
84100 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;
84120 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
84140 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.
84160 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
84180 29 0a 7b 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 ).{.return.false;.}.....public.f
841a0 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 unction.install(InstalledReposit
841c0 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 oryInterface.$repo,.PackageInter
841e0 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 face.$package).{.$installPath.=.
84200 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 $this->installPath;.if.(file_exi
84220 73 74 73 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 26 26 20 21 24 74 68 69 73 2d 3e 66 69 6c sts($installPath).&&.!$this->fil
84240 65 73 79 73 74 65 6d 2d 3e 69 73 44 69 72 45 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 esystem->isDirEmpty($installPath
84260 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
84280 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 24 69 6e 73 xception("Project.directory.$ins
842a0 74 61 6c 6c 50 61 74 68 20 69 73 20 6e 6f 74 20 65 6d 70 74 79 2e 22 29 3b 0a 7d 0a 69 66 20 28 tallPath.is.not.empty.");.}.if.(
842c0 21 69 73 5f 64 69 72 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 29 20 7b 0a 6d 6b 64 69 72 28 24 !is_dir($installPath)).{.mkdir($
842e0 69 6e 73 74 61 6c 6c 50 61 74 68 2c 20 30 37 37 37 2c 20 74 72 75 65 29 3b 0a 7d 0a 24 74 68 69 installPath,.0777,.true);.}.$thi
84300 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 64 6f 77 6e 6c 6f 61 64 28 24 70 61 s->downloadManager->download($pa
84320 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c ckage,.$installPath);.}.....publ
84340 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 65 70 6f ic.function.update(InstalledRepo
84360 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e sitoryInterface.$repo,.PackageIn
84380 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
843a0 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 ce.$target).{.throw.new.\Invalid
843c0 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 ArgumentException("not.supported
843e0 22 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 6e 69 6e 73 74 ");.}.....public.function.uninst
84400 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
84420 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
84440 65 29 0a 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 e).{.throw.new.\InvalidArgumentE
84460 78 63 65 70 74 69 6f 6e 28 22 6e 6f 74 20 73 75 70 70 6f 72 74 65 64 22 29 3b 0a 7d 0a 0a 0a 0a xception("not.supported");.}....
84480 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 61 ....public.function.getInstallPa
844a0 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 0a th(PackageInterface.$package).{.
844c0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 50 61 74 68 3b 0a 7d 0a 7d 0a 3c return.$this->installPath;.}.}.<
844e0 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
84500 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 43 6f 6d 70 er\Installer;..use.Composer\Comp
84520 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 66 61 63 oser;.use.Composer\IO\IOInterfac
84540 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 49 6e 73 74 61 e;.use.Composer\Repository\Insta
84560 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 6d lledRepositoryInterface;.use.Com
84580 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;.
845a0 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 46 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a use.Composer\Util\Filesystem;...
845c0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 69 62 72 61 72 79 49 6e 73 74 61 6c 6c 65 72 20 69 6d 70 6c .....class.LibraryInstaller.impl
845e0 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 7b 0a 70 72 6f 74 ements.InstallerInterface.{.prot
84600 65 63 74 65 64 20 24 63 6f 6d 70 6f 73 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 6e 64 ected.$composer;.protected.$vend
84620 6f 72 44 69 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 62 69 6e 44 69 72 3b 0a 70 72 6f 74 65 63 orDir;.protected.$binDir;.protec
84640 74 65 64 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 70 72 6f 74 65 63 74 65 64 20 ted.$downloadManager;.protected.
84660 24 69 6f 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 74 79 70 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 $io;.protected.$type;.protected.
84680 24 66 69 6c 65 73 79 73 74 65 6d 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $filesystem;..........public.fun
846a0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 ction.__construct(IOInterface.$i
846c0 6f 2c 20 43 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 2c 20 24 74 79 70 65 20 3d 20 27 o,.Composer.$composer,.$type.=.'
846e0 6c 69 62 72 61 72 79 27 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 73 74 65 6d library',.Filesystem.$filesystem
84700 20 3d 20 6e 75 6c 6c 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 .=.null).{.$this->composer.=.$co
84720 6d 70 6f 73 65 72 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 3d mposer;.$this->downloadManager.=
84740 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 .$composer->getDownloadManager()
84760 3b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 24 69 6f 3b 0a 24 74 68 69 73 2d 3e 74 79 70 65 20 3d ;.$this->io.=.$io;.$this->type.=
84780 20 24 74 79 70 65 3b 0a 0a 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 24 66 69 .$type;..$this->filesystem.=.$fi
847a0 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 24 74 lesystem.?:.new.Filesystem();.$t
847c0 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3d 20 72 74 72 69 6d 28 24 63 6f 6d 70 6f 73 65 72 his->vendorDir.=.rtrim($composer
847e0 2d 3e 67 65 74 43 6f 6e 66 69 67 28 29 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 ->getConfig()->get('vendor-dir')
84800 2c 20 27 2f 27 29 3b 0a 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 3d 20 72 74 72 69 6d 28 24 63 ,.'/');.$this->binDir.=.rtrim($c
84820 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 62 69 6e 2d 64 omposer->getConfig()->get('bin-d
84840 69 72 27 29 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ir'),.'/');.}.....public.functio
84860 6e 20 73 75 70 70 6f 72 74 73 28 24 70 61 63 6b 61 67 65 54 79 70 65 29 0a 7b 0a 72 65 74 75 72 n.supports($packageType).{.retur
84880 6e 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 20 7c n.$packageType.===.$this->type.|
848a0 7c 20 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 |.null.===.$this->type;.}.....pu
848c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c blic.function.isInstalled(Instal
848e0 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
84900 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
84920 6e 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 20 26 26 n.$repo->hasPackage($package).&&
84940 20 69 73 5f 72 65 61 64 61 62 6c 65 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 .is_readable($this->getInstallPa
84960 74 68 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 th($package));.}.....public.func
84980 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 tion.install(InstalledRepository
849a0 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
849c0 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 56 e.$package).{.$this->initializeV
849e0 65 6e 64 6f 72 44 69 72 28 29 3b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 endorDir();.$downloadPath.=.$thi
84a00 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 s->getInstallPath($package);....
84a20 69 66 20 28 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 20 if.(!is_readable($downloadPath).
84a40 26 26 20 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 29 20 &&.$repo->hasPackage($package)).
84a60 7b 0a 24 74 68 69 73 2d 3e 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 {.$this->removeBinaries($package
84a80 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 43 6f 64 65 28 24 70 61 63 6b 61 67 );.}..$this->installCode($packag
84aa0 65 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 28 24 70 61 63 6b e);.$this->installBinaries($pack
84ac0 61 67 65 29 3b 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 age);.if.(!$repo->hasPackage($pa
84ae0 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 6e ckage)).{.$repo->addPackage(clon
84b00 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 63 e.$package);.}.}.....public.func
84b20 74 69 6f 6e 20 75 70 64 61 74 65 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 tion.update(InstalledRepositoryI
84b40 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 nterface.$repo,.PackageInterface
84b60 20 24 69 6e 69 74 69 61 6c 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 .$initial,.PackageInterface.$tar
84b80 67 65 74 29 0a 7b 0a 69 66 20 28 21 24 72 65 70 6f 2d 3e 68 61 73 50 61 63 6b 61 67 65 28 24 69 get).{.if.(!$repo->hasPackage($i
84ba0 6e 69 74 69 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 nitial)).{.throw.new.\InvalidArg
84bc0 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 50 61 63 6b 61 67 65 20 69 73 20 6e 6f 74 20 69 umentException('Package.is.not.i
84be0 6e 73 74 61 6c 6c 65 64 3a 20 27 2e 24 69 6e 69 74 69 61 6c 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d nstalled:.'.$initial);.}..$this-
84c00 3e 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 3b 0a 0a 24 74 68 69 73 2d 3e >initializeVendorDir();..$this->
84c20 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d removeBinaries($initial);.$this-
84c40 3e 75 70 64 61 74 65 43 6f 64 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a >updateCode($initial,.$target);.
84c60 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 24 74 61 72 67 65 74 29 3b $this->installBinaries($target);
84c80 0a 24 72 65 70 6f 2d 3e 72 65 6d 6f 76 65 50 61 63 6b 61 67 65 28 24 69 6e 69 74 69 61 6c 29 3b .$repo->removePackage($initial);
84ca0 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 74 61 72 67 65 74 29 .if.(!$repo->hasPackage($target)
84cc0 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 6e 65 20 24 74 61 72 ).{.$repo->addPackage(clone.$tar
84ce0 67 65 74 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 75 6e get);.}.}.....public.function.un
84d00 69 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 install(InstalledRepositoryInter
84d20 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 face.$repo,.PackageInterface.$pa
84d40 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 67 65 28 ckage).{.if.(!$repo->hasPackage(
84d60 24 70 61 63 6b 61 67 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 $package)).{.throw.new.\InvalidA
84d80 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 20 6e 6f 74 rgumentException('Package.is.not
84da0 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 0a 24 74 68 69 .installed:.'.$package);.}..$thi
84dc0 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 74 68 69 73 2d 3e s->removeCode($package);.$this->
84de0 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 24 72 65 70 6f 2d removeBinaries($package);.$repo-
84e00 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 0a 24 64 6f 77 6e >removePackage($package);..$down
84e20 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 loadPath.=.$this->getPackageBase
84e40 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 70 61 63 6b Path($package);.if.(strpos($pack
84e60 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 27 2f 27 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 age->getName(),.'/')).{.$package
84e80 56 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 64 6f 77 6e 6c 6f 61 64 50 61 74 VendorDir.=.dirname($downloadPat
84ea0 68 29 3b 0a 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 h);.if.(is_dir($packageVendorDir
84ec0 29 20 26 26 20 21 67 6c 6f 62 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 2e 27 2f 2a ).&&.!glob($packageVendorDir.'/*
84ee0 27 29 29 20 7b 0a 40 72 6d 64 69 72 28 24 70 61 63 6b 61 67 65 56 65 6e 64 6f 72 44 69 72 29 3b ')).{.@rmdir($packageVendorDir);
84f00 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e .}.}.}.....public.function.getIn
84f20 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 63 6b stallPath(PackageInterface.$pack
84f40 61 67 65 29 0a 7b 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 age).{.$targetDir.=.$package->ge
84f60 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 tTargetDir();..return.$this->get
84f80 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 20 2e 20 28 24 74 61 PackageBasePath($package)...($ta
84fa0 72 67 65 74 44 69 72 20 3f 20 27 2f 27 2e 24 74 61 72 67 65 74 44 69 72 20 3a 20 27 27 29 3b 0a rgetDir.?.'/'.$targetDir.:.'');.
84fc0 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 63 6b 61 67 65 }..protected.function.getPackage
84fe0 42 61 73 65 50 61 74 68 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 BasePath(PackageInterface.$packa
85000 67 65 29 0a 7b 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 ge).{.$this->initializeVendorDir
85020 28 29 3b 0a 0a 72 65 74 75 72 6e 20 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3f 20 ();..return.($this->vendorDir.?.
85040 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 2e 27 2f 27 20 3a 20 27 27 29 20 2e 20 24 70 61 $this->vendorDir.'/'.:.'')...$pa
85060 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 ckage->getPrettyName();.}..prote
85080 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 43 6f 64 65 28 50 61 63 6b 61 67 cted.function.installCode(Packag
850a0 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 eInterface.$package).{.$download
850c0 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 70 61 Path.=.$this->getInstallPath($pa
850e0 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e ckage);.$this->downloadManager->
85100 64 6f 77 6e 6c 6f 61 64 28 24 70 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 download($package,.$downloadPath
85120 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 43 );.}..protected.function.updateC
85140 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 69 6e 69 74 69 61 6c 2c 20 50 ode(PackageInterface.$initial,.P
85160 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 74 61 72 67 65 74 29 0a 7b 0a 24 69 6e 69 74 ackageInterface.$target).{.$init
85180 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 ialDownloadPath.=.$this->getInst
851a0 61 6c 6c 50 61 74 68 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f allPath($initial);.$targetDownlo
851c0 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($
851e0 74 61 72 67 65 74 29 3b 0a 69 66 20 28 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 target);.if.($targetDownloadPath
85200 20 21 3d 3d 20 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 20 7b 0a 0a 20 0a .!==.$initialDownloadPath).{....
85220 20 69 66 20 28 73 75 62 73 74 72 28 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 .if.(substr($initialDownloadPath
85240 2c 20 30 2c 20 73 74 72 6c 65 6e 28 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 ,.0,.strlen($targetDownloadPath)
85260 29 20 3d 3d 3d 20 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 0a 7c 7c 20 73 75 62 ).===.$targetDownloadPath.||.sub
85280 73 74 72 28 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 2c 20 30 2c 20 73 74 72 6c str($targetDownloadPath,.0,.strl
852a0 65 6e 28 24 69 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 29 29 20 3d 3d 3d 20 24 69 en($initialDownloadPath)).===.$i
852c0 6e 69 74 69 61 6c 44 6f 77 6e 6c 6f 61 64 50 61 74 68 0a 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 nitialDownloadPath.).{.$this->re
852e0 6d 6f 76 65 43 6f 64 65 28 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 moveCode($initial);.$this->insta
85300 6c 6c 43 6f 64 65 28 24 74 61 72 67 65 74 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 llCode($target);..return;.}..$th
85320 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 72 65 6e 61 6d 65 28 24 69 6e 69 74 69 61 6c 44 is->filesystem->rename($initialD
85340 6f 77 6e 6c 6f 61 64 50 61 74 68 2c 20 24 74 61 72 67 65 74 44 6f 77 6e 6c 6f 61 64 50 61 74 68 ownloadPath,.$targetDownloadPath
85360 29 3b 0a 7d 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 75 70 64 );.}.$this->downloadManager->upd
85380 61 74 65 28 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 2c 20 24 74 61 72 67 65 74 44 6f ate($initial,.$target,.$targetDo
853a0 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 wnloadPath);.}..protected.functi
853c0 6f 6e 20 72 65 6d 6f 76 65 43 6f 64 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 on.removeCode(PackageInterface.$
853e0 70 61 63 6b 61 67 65 29 0a 7b 0a 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 20 3d 20 24 74 68 69 73 package).{.$downloadPath.=.$this
85400 2d 3e 67 65 74 50 61 63 6b 61 67 65 42 61 73 65 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a ->getPackageBasePath($package);.
85420 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2d 3e 72 65 6d 6f 76 65 28 24 $this->downloadManager->remove($
85440 70 61 63 6b 61 67 65 2c 20 24 64 6f 77 6e 6c 6f 61 64 50 61 74 68 29 3b 0a 7d 0a 0a 70 72 6f 74 package,.$downloadPath);.}..prot
85460 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 ected.function.getBinaries(Packa
85480 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.$
854a0 70 61 63 6b 61 67 65 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 29 3b 0a 7d 0a 0a 70 72 6f 74 65 package->getBinaries();.}..prote
854c0 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 42 69 6e 61 72 69 65 73 28 50 61 cted.function.installBinaries(Pa
854e0 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 62 69 6e 61 ckageInterface.$package).{.$bina
85500 72 69 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 ries.=.$this->getBinaries($packa
85520 67 65 29 3b 0a 69 66 20 28 21 24 62 69 6e 61 72 69 65 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d ge);.if.(!$binaries).{.return;.}
85540 0a 66 6f 72 65 61 63 68 20 28 24 62 69 6e 61 72 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 .foreach.($binaries.as.$bin).{.$
85560 62 69 6e 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 binPath.=.$this->getInstallPath(
85580 24 70 61 63 6b 61 67 65 29 2e 27 2f 27 2e 24 62 69 6e 3b 0a 69 66 20 28 21 66 69 6c 65 5f 65 78 $package).'/'.$bin;.if.(!file_ex
855a0 69 73 74 73 28 24 62 69 6e 50 61 74 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 ists($binPath)).{.$this->io->wri
855c0 74 65 28 27 20 20 20 20 3c 77 61 72 6e 69 6e 67 3e 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c te('....<warning>Skipped.install
855e0 61 74 69 6f 6e 20 6f 66 20 27 2e 24 62 69 6e 2e 27 20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e ation.of.'.$bin.'.for.package.'.
85600 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 20 66 69 6c 65 20 6e 6f 74 20 $package->getName().':.file.not.
85620 66 6f 75 6e 64 20 69 6e 20 70 61 63 6b 61 67 65 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 63 6f found.in.package</warning>');.co
85640 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 0a 20 24 62 69 6e 50 61 74 68 20 3d 20 72 65 ntinue;.}..........$binPath.=.re
85660 61 6c 70 61 74 68 28 24 62 69 6e 50 61 74 68 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 alpath($binPath);..$this->initia
85680 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 69 73 2d 3e 62 69 6e lizeBinDir();.$link.=.$this->bin
856a0 44 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 29 3b 0a 69 66 20 28 66 69 6c 65 Dir.'/'.basename($bin);.if.(file
856c0 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 6c 69 6e 6b 28 24 6c _exists($link)).{.if.(is_link($l
856e0 69 6e 6b 29 29 20 7b 0a 0a 20 0a 20 0a 20 40 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 ink)).{.......@chmod($link,.0777
85700 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 3e 77 72 69 74 65 .&.~umask());.}.$this->io->write
85720 28 27 20 20 20 20 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 27 2e ('....Skipped.installation.of.'.
85740 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 3e 67 $bin.'.for.package.'.$package->g
85760 65 74 4e 61 6d 65 28 29 2e 27 3a 20 6e 61 6d 65 20 63 6f 6e 66 6c 69 63 74 73 20 77 69 74 68 20 etName().':.name.conflicts.with.
85780 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 7d 0a an.existing.file');.continue;.}.
857a0 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e if.(defined('PHP_WINDOWS_VERSION
857c0 5f 42 55 49 4c 44 27 29 29 20 7b 0a 0a 20 69 66 20 28 27 2e 62 61 74 27 20 21 3d 3d 20 73 75 62 _BUILD')).{...if.('.bat'.!==.sub
857e0 73 74 72 28 24 62 69 6e 50 61 74 68 2c 20 2d 34 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f str($binPath,.-4)).{.file_put_co
85800 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 ntents($link,.$this->generateUni
85820 78 79 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 29 3b 0a 40 xyProxyCode($binPath,.$link));.@
85840 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e 75 6d 61 73 6b 28 29 29 3b 0a 24 chmod($link,.0777.&.~umask());.$
85860 6c 69 6e 6b 20 2e 3d 20 27 2e 62 61 74 27 3b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 link..=.'.bat';.if.(file_exists(
85880 24 6c 69 6e 6b 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 $link)).{.$this->io->write('....
858a0 53 6b 69 70 70 65 64 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 20 6f 66 20 27 2e 24 62 69 6e 2e 27 Skipped.installation.of.'.$bin.'
858c0 2e 62 61 74 20 70 72 6f 78 79 20 66 6f 72 20 70 61 63 6b 61 67 65 20 27 2e 24 70 61 63 6b 61 67 .bat.proxy.for.package.'.$packag
858e0 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 20 61 20 2e 62 61 74 20 70 72 6f 78 79 20 77 61 73 e->getName().':.a..bat.proxy.was
85900 20 61 6c 72 65 61 64 79 20 69 6e 73 74 61 6c 6c 65 64 27 29 3b 0a 7d 0a 7d 0a 69 66 20 28 21 66 .already.installed');.}.}.if.(!f
85920 69 6c 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 29 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f ile_exists($link)).{.file_put_co
85940 6e 74 65 6e 74 73 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 57 69 6e ntents($link,.$this->generateWin
85960 64 6f 77 73 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 29 3b dowsProxyCode($binPath,.$link));
85980 0a 7d 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 72 79 .}.}.else.{.$cwd.=.getcwd();.try
859a0 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 69 6c .{.....$relativeBin.=.$this->fil
859c0 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,
859e0 20 24 62 69 6e 50 61 74 68 29 3b 0a 63 68 64 69 72 28 64 69 72 6e 61 6d 65 28 24 6c 69 6e 6b 29 .$binPath);.chdir(dirname($link)
85a00 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 79 6d 6c 69 6e 6b 28 24 72 65 6c 61 74 69 );.if.(false.===.symlink($relati
85a20 76 65 42 69 6e 2c 20 24 6c 69 6e 6b 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 72 72 6f veBin,.$link)).{.throw.new.\Erro
85a40 72 45 78 63 65 70 74 69 6f 6e 28 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 72 72 6f 72 45 rException();.}.}.catch.(\ErrorE
85a60 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 xception.$e).{.file_put_contents
85a80 28 24 6c 69 6e 6b 2c 20 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 55 6e 69 78 79 50 72 6f 78 ($link,.$this->generateUnixyProx
85aa0 79 43 6f 64 65 28 24 62 69 6e 50 61 74 68 2c 20 24 6c 69 6e 6b 29 29 3b 0a 7d 0a 63 68 64 69 72 yCode($binPath,.$link));.}.chdir
85ac0 28 24 63 77 64 29 3b 0a 7d 0a 40 63 68 6d 6f 64 28 24 6c 69 6e 6b 2c 20 30 37 37 37 20 26 20 7e ($cwd);.}.@chmod($link,.0777.&.~
85ae0 75 6d 61 73 6b 28 29 29 3b 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f umask());.}.}..protected.functio
85b00 6e 20 72 65 6d 6f 76 65 42 69 6e 61 72 69 65 73 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 n.removeBinaries(PackageInterfac
85b20 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 62 69 6e 61 72 69 65 73 20 3d 20 24 74 68 69 73 2d e.$package).{.$binaries.=.$this-
85b40 3e 67 65 74 42 69 6e 61 72 69 65 73 28 24 70 61 63 6b 61 67 65 29 3b 0a 69 66 20 28 21 24 62 69 >getBinaries($package);.if.(!$bi
85b60 6e 61 72 69 65 73 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 62 69 naries).{.return;.}.foreach.($bi
85b80 6e 61 72 69 65 73 20 61 73 20 24 62 69 6e 29 20 7b 0a 24 6c 69 6e 6b 20 3d 20 24 74 68 69 73 2d naries.as.$bin).{.$link.=.$this-
85ba0 3e 62 69 6e 44 69 72 2e 27 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 29 3b 0a 69 66 20 28 >binDir.'/'.basename($bin);.if.(
85bc0 69 73 5f 6c 69 6e 6b 28 24 6c 69 6e 6b 29 20 7c 7c 20 66 69 6c 65 5f 65 78 69 73 74 73 28 24 6c is_link($link).||.file_exists($l
85be0 69 6e 6b 29 29 20 7b 0a 75 6e 6c 69 6e 6b 28 24 6c 69 6e 6b 29 3b 0a 7d 0a 69 66 20 28 66 69 6c ink)).{.unlink($link);.}.if.(fil
85c00 65 5f 65 78 69 73 74 73 28 24 6c 69 6e 6b 2e 27 2e 62 61 74 27 29 29 20 7b 0a 75 6e 6c 69 6e 6b e_exists($link.'.bat')).{.unlink
85c20 28 24 6c 69 6e 6b 2e 27 2e 62 61 74 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 ($link.'.bat');.}.}.}..protected
85c40 20 66 75 6e 63 74 69 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 56 65 6e 64 6f 72 44 69 72 28 29 0a .function.initializeVendorDir().
85c60 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
85c80 74 6f 72 79 45 78 69 73 74 73 28 24 74 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 24 74 toryExists($this->vendorDir);.$t
85ca0 68 69 73 2d 3e 76 65 6e 64 6f 72 44 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d his->vendorDir.=.realpath($this-
85cc0 3e 76 65 6e 64 6f 72 44 69 72 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 >vendorDir);.}..protected.functi
85ce0 6f 6e 20 69 6e 69 74 69 61 6c 69 7a 65 42 69 6e 44 69 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 on.initializeBinDir().{.$this->f
85d00 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 69 73 74 73 ilesystem->ensureDirectoryExists
85d20 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 29 3b 0a 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 20 3d ($this->binDir);.$this->binDir.=
85d40 20 72 65 61 6c 70 61 74 68 28 24 74 68 69 73 2d 3e 62 69 6e 44 69 72 29 3b 0a 7d 0a 0a 70 72 6f .realpath($this->binDir);.}..pro
85d60 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 57 69 6e 64 6f 77 73 50 tected.function.generateWindowsP
85d80 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 0a 7b 0a 24 62 69 6e 50 61 74 68 roxyCode($bin,.$link).{.$binPath
85da0 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 .=.$this->filesystem->findShorte
85dc0 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 69 66 20 28 27 2e 62 61 74 27 20 stPath($link,.$bin);.if.('.bat'.
85de0 3d 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 29 20 7c 7c 20 27 2e 65 78 65 27 20 3d ===.substr($bin,.-4).||.'.exe'.=
85e00 3d 3d 20 73 75 62 73 74 72 28 24 62 69 6e 2c 20 2d 34 29 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d ==.substr($bin,.-4)).{.$caller.=
85e20 20 27 63 61 6c 6c 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 68 61 6e 64 6c 65 20 3d 20 66 6f 70 65 .'call';.}.else.{.$handle.=.fope
85e40 6e 28 24 62 69 6e 2c 20 27 72 27 29 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 24 68 61 6e n($bin,.'r');.$line.=.fgets($han
85e60 64 6c 65 29 3b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 6c 65 29 3b 0a 69 66 20 28 70 72 65 67 5f dle);.fclose($handle);.if.(preg_
85e80 6d 61 74 63 68 28 27 7b 5e 23 21 2f 28 3f 3a 75 73 72 2f 62 69 6e 2f 65 6e 76 20 29 3f 28 3f 3a match('{^#!/(?:usr/bin/env.)?(?:
85ea0 5b 5e 2f 5d 2b 2f 29 2a 28 2e 2b 29 24 7d 6d 27 2c 20 24 6c 69 6e 65 2c 20 24 6d 61 74 63 68 29 [^/]+/)*(.+)$}m',.$line,.$match)
85ec0 29 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 74 72 69 6d 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d ).{.$caller.=.trim($match[1]);.}
85ee0 20 65 6c 73 65 20 7b 0a 24 63 61 6c 6c 65 72 20 3d 20 27 70 68 70 27 3b 0a 7d 0a 7d 0a 0a 72 65 .else.{.$caller.=.'php';.}.}..re
85f00 74 75 72 6e 20 22 40 45 43 48 4f 20 4f 46 46 5c 72 5c 6e 22 2e 0a 22 53 45 54 20 42 49 4e 5f 54 turn."@ECHO.OFF\r\n".."SET.BIN_T
85f20 41 52 47 45 54 3d 25 7e 64 70 30 2f 22 2e 74 72 69 6d 28 65 73 63 61 70 65 73 68 65 6c 6c 61 72 ARGET=%~dp0/".trim(escapeshellar
85f40 67 28 24 62 69 6e 50 61 74 68 29 2c 20 27 22 27 29 2e 22 5c 72 5c 6e 22 2e 0a 22 7b 24 63 61 6c g($binPath),.'"')."\r\n".."{$cal
85f60 6c 65 72 7d 20 5c 22 25 42 49 4e 5f 54 41 52 47 45 54 25 5c 22 20 25 2a 5c 72 5c 6e 22 3b 0a 7d ler}.\"%BIN_TARGET%\".%*\r\n";.}
85f80 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 6e 65 72 61 74 65 55 6e 69 ..protected.function.generateUni
85fa0 78 79 50 72 6f 78 79 43 6f 64 65 28 24 62 69 6e 2c 20 24 6c 69 6e 6b 29 0a 7b 0a 24 62 69 6e 50 xyProxyCode($bin,.$link).{.$binP
85fc0 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 66 69 6c 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f ath.=.$this->filesystem->findSho
85fe0 72 74 65 73 74 50 61 74 68 28 24 6c 69 6e 6b 2c 20 24 62 69 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 rtestPath($link,.$bin);..return.
86000 22 23 21 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 73 68 5c 6e 22 2e 0a 27 53 52 43 5f 44 49 52 3d "#!/usr/bin/env.sh\n"..'SRC_DIR=
86020 22 60 70 77 64 60 22 27 2e 22 5c 6e 22 2e 0a 27 63 64 20 22 60 64 69 72 6e 61 6d 65 20 22 24 30 "`pwd`"'."\n"..'cd."`dirname."$0
86040 22 60 22 27 2e 22 5c 6e 22 2e 0a 27 63 64 20 27 2e 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 "`"'."\n"..'cd.'.escapeshellarg(
86060 64 69 72 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 29 2e 22 5c 6e 22 2e 0a 27 42 49 4e 5f 54 41 dirname($binPath))."\n"..'BIN_TA
86080 52 47 45 54 3d 22 60 70 77 64 60 2f 27 2e 62 61 73 65 6e 61 6d 65 28 24 62 69 6e 50 61 74 68 29 RGET="`pwd`/'.basename($binPath)
860a0 2e 22 5c 22 5c 6e 22 2e 0a 27 63 64 20 22 24 53 52 43 5f 44 49 52 22 27 2e 22 5c 6e 22 2e 0a 27 ."\"\n"..'cd."$SRC_DIR"'."\n"..'
860c0 22 24 42 49 4e 5f 54 41 52 47 45 54 22 20 22 24 40 22 27 2e 22 5c 6e 22 3b 0a 7d 0a 7d 0a 3c 3f "$BIN_TARGET"."$@"'."\n";.}.}.<?
860e0 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
86100 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 50 61 63 6b 61 r\Installer;..use.Composer\Packa
86120 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
86140 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
86160 6f 73 65 72 5c 50 6c 75 67 69 6e 5c 50 6c 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 oser\Plugin\PluginInstaller;.use
86180 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
861a0 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
861c0 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 3b 0a y\InstalledRepositoryInterface;.
861e0 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\
86200 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 75 73 Operation\OperationInterface;.us
86220 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 70 e.Composer\DependencyResolver\Op
86240 65 72 61 74 69 6f 6e 5c 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f eration\InstallOperation;.use.Co
86260 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
86280 69 6f 6e 5c 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 ion\UpdateOperation;.use.Compose
862a0 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 55 r\DependencyResolver\Operation\U
862c0 6e 69 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 ninstallOperation;.use.Composer\
862e0 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 4d 61 72 DependencyResolver\Operation\Mar
86300 6b 41 6c 69 61 73 49 6e 73 74 61 6c 6c 65 64 4f 70 65 72 61 74 69 6f 6e 3b 0a 75 73 65 20 43 6f kAliasInstalledOperation;.use.Co
86320 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
86340 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 72 61 74 69 6f ion\MarkAliasUninstalledOperatio
86360 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 53 74 72 65 61 6d 43 6f 6e 74 65 n;.use.Composer\Util\StreamConte
86380 78 74 46 61 63 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c xtFactory;.........class.Install
863a0 61 74 69 6f 6e 4d 61 6e 61 67 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 73 74 61 6c 6c 65 ationManager.{.private.$installe
863c0 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 61 63 68 65 20 3d 20 61 rs.=.array();.private.$cache.=.a
863e0 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 rray();.private.$notifiablePacka
86400 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ges.=.array();..public.function.
86420 72 65 73 65 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 reset().{.$this->notifiablePacka
86440 67 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 66 75 ges.=.array();.}.......public.fu
86460 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 65 72 49 6e 74 nction.addInstaller(InstallerInt
86480 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 75 6e 73 68 69 erface.$installer).{.array_unshi
864a0 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 61 6c 6c 65 72 ft($this->installers,.$installer
864c0 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 7d 0a 0a 0a 0a );.$this->cache.=.array();.}....
864e0 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 49 6e 73 74 61 6c 6c ...public.function.removeInstall
86500 65 72 28 49 6e 73 74 61 6c 6c 65 72 49 6e 74 65 72 66 61 63 65 20 24 69 6e 73 74 61 6c 6c 65 72 er(InstallerInterface.$installer
86520 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 28 24 6b 65 79 20 3d 20 61 72 72 61 79 5f ).{.if.(false.!==.($key.=.array_
86540 73 65 61 72 63 68 28 24 69 6e 73 74 61 6c 6c 65 72 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c search($installer,.$this->instal
86560 6c 65 72 73 2c 20 74 72 75 65 29 29 29 20 7b 0a 61 72 72 61 79 5f 73 70 6c 69 63 65 28 24 74 68 lers,.true))).{.array_splice($th
86580 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 2c 20 24 6b 65 79 2c 20 31 29 3b 0a 24 74 68 69 73 2d is->installers,.$key,.1);.$this-
865a0 3e 63 61 63 68 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 >cache.=.array();.}.}.........pu
865c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 0a 7b blic.function.disablePlugins().{
865e0 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 72 73 20 61 73 20 24 .foreach.($this->installers.as.$
86600 69 20 3d 3e 20 24 69 6e 73 74 61 6c 6c 65 72 29 20 7b 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c i.=>.$installer).{.if.(!$install
86620 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 50 6c 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 29 20 7b er.instanceof.PluginInstaller).{
86640 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 .continue;.}..unset($this->insta
86660 6c 6c 65 72 73 5b 24 69 5d 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 llers[$i]);.}.}...........public
86680 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 74 79 70 65 29 0a 7b 0a .function.getInstaller($type).{.
866a0 24 74 79 70 65 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 74 79 70 65 29 3b 0a 0a 69 66 20 28 $type.=.strtolower($type);..if.(
866c0 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 5d 29 29 20 7b 0a 72 65 isset($this->cache[$type])).{.re
866e0 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 61 63 68 65 5b 24 74 79 70 65 5d 3b 0a 7d 0a 0a 66 6f 72 turn.$this->cache[$type];.}..for
86700 65 61 63 68 20 28 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 65 72 73 20 61 73 20 24 69 6e 73 74 each.($this->installers.as.$inst
86720 61 6c 6c 65 72 29 20 7b 0a 69 66 20 28 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 73 75 70 70 6f 72 74 aller).{.if.($installer->support
86740 73 28 24 74 79 70 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 61 63 68 65 5b s($type)).{.return.$this->cache[
86760 24 74 79 70 65 5d 20 3d 20 24 69 6e 73 74 61 6c 6c 65 72 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 $type].=.$installer;.}.}..throw.
86780 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 55 new.\InvalidArgumentException('U
867a0 6e 6b 6e 6f 77 6e 20 69 6e 73 74 61 6c 6c 65 72 20 74 79 70 65 3a 20 27 2e 24 74 79 70 65 29 3b nknown.installer.type:.'.$type);
867c0 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 69 73 50 61 .}..........public.function.isPa
867e0 63 6b 61 67 65 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 ckageInstalled(InstalledReposito
86800 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 ryInterface.$repo,.PackageInterf
86820 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 ace.$package).{.if.($package.ins
86840 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b 61 67 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 tanceof.AliasPackage).{.return.$
86860 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 20 26 26 20 24 74 repo->hasPackage($package).&&.$t
86880 68 69 73 2d 3e 69 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 his->isPackageInstalled($repo,.$
868a0 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 0a 0a 72 65 74 75 72 package->getAliasOf());.}..retur
868c0 6e 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e n.$this->getInstaller($package->
868e0 67 65 74 54 79 70 65 28 29 29 2d 3e 69 73 49 6e 73 74 61 6c 6c 65 64 28 24 72 65 70 6f 2c 20 24 getType())->isInstalled($repo,.$
86900 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 package);.}........public.functi
86920 6f 6e 20 65 78 65 63 75 74 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 on.execute(RepositoryInterface.$
86940 72 65 70 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 repo,.OperationInterface.$operat
86960 69 6f 6e 29 0a 7b 0a 24 6d 65 74 68 6f 64 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 ion).{.$method.=.$operation->get
86980 4a 6f 62 54 79 70 65 28 29 3b 0a 24 74 68 69 73 2d 3e 24 6d 65 74 68 6f 64 28 24 72 65 70 6f 2c JobType();.$this->$method($repo,
869a0 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .$operation);.}........public.fu
869c0 6e 63 74 69 6f 6e 20 69 6e 73 74 61 6c 6c 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 nction.install(RepositoryInterfa
869e0 63 65 20 24 72 65 70 6f 2c 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 72 ce.$repo,.InstallOperation.$oper
86a00 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 69 6f 6e 2d 3e ation).{.$package.=.$operation->
86a20 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 getPackage();.$installer.=.$this
86a40 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 65 72 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 ->getInstaller($package->getType
86a60 28 29 29 3b 0a 24 69 6e 73 74 61 6c 6c 65 72 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 ());.$installer->install($repo,.
86a80 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 72 6b 46 6f 72 4e 6f 74 69 66 69 63 $package);.$this->markForNotific
86aa0 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ation($package);.}........public
86ac0 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 61 74 65 28 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 .function.update(RepositoryInter
86ae0 66 61 63 65 20 24 72 65 70 6f 2c 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 20 24 6f 70 65 face.$repo,.UpdateOperation.$ope
86b00 72 61 74 69 6f 6e 29 0a 7b 0a 24 69 6e 69 74 69 61 6c 20 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d ration).{.$initial.=.$operation-
86b20 3e 67 65 74 49 6e 69 74 69 61 6c 50 61 63 6b 61 67 65 28 29 3b 0a 24 74 61 72 67 65 74 20 3d 20 >getInitialPackage();.$target.=.
86b40 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a $operation->getTargetPackage();.
86b60 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 3e 67 65 74 54 79 70 .$initialType.=.$initial->getTyp
86b80 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 67 65 74 54 e();.$targetType.=.$target->getT
86ba0 79 70 65 28 29 3b 0a 0a 69 66 20 28 24 69 6e 69 74 69 61 6c 54 79 70 65 20 3d 3d 3d 20 24 74 61 ype();..if.($initialType.===.$ta
86bc0 72 67 65 74 54 79 70 65 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 20 3d 20 24 74 68 69 73 2d 3e rgetType).{.$installer.=.$this->
86be0 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 3b 0a 24 69 6e 73 getInstaller($initialType);.$ins
86c00 74 61 6c 6c 65 72 2d 3e 75 70 64 61 74 65 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 2c 20 taller->update($repo,.$initial,.
86c20 24 74 61 72 67 65 74 29 3b 0a 24 74 68 69 73 2d 3e 6d 61 72 6b 46 6f 72 4e 6f 74 69 66 69 63 61 $target);.$this->markForNotifica
86c40 74 69 6f 6e 28 24 74 61 72 67 65 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 67 tion($target);.}.else.{.$this->g
86c60 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 3e 75 6e 69 6e 73 etInstaller($initialType)->unins
86c80 74 61 6c 6c 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 29 3b 0a 24 74 68 69 73 2d 3e 67 65 tall($repo,.$initial);.$this->ge
86ca0 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 6e 73 74 61 6c 6c tInstaller($targetType)->install
86cc0 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 0a 0a 0a 70 75 62 ($repo,.$target);.}.}........pub
86ce0 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 6f 73 69 74 6f 72 lic.function.uninstall(Repositor
86d00 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 6c 4f 70 65 72 61 yInterface.$repo,.UninstallOpera
86d20 74 69 6f 6e 20 24 6f 70 65 72 61 74 69 6f 6e 29 0a 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f tion.$operation).{.$package.=.$o
86d40 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 6e 73 74 61 6c 6c peration->getPackage();.$install
86d60 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 61 63 6b 61 67 er.=.$this->getInstaller($packag
86d80 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 3e 75 6e 69 6e 73 e->getType());.$installer->unins
86da0 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 0a 0a 0a 0a 0a 0a tall($repo,.$package);.}........
86dc0 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 6e 73 74 61 6c 6c public.function.markAliasInstall
86de0 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 70 6f 2c 20 4d 61 ed(RepositoryInterface.$repo,.Ma
86e00 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 24 6f 70 65 72 61 rkAliasInstalledOperation.$opera
86e20 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 69 6f 6e 2d 3e 67 tion).{.$package.=.$operation->g
86e40 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 68 61 73 50 61 63 etPackage();..if.(!$repo->hasPac
86e60 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 63 6b kage($package)).{.$repo->addPack
86e80 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 0a 0a 0a age(clone.$package);.}.}........
86ea0 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 6e 69 6e 73 74 61 public.function.markAliasUninsta
86ec0 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 70 6f 2c 20 lled(RepositoryInterface.$repo,.
86ee0 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 24 6f MarkAliasUninstalledOperation.$o
86f00 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 69 6f peration).{.$package.=.$operatio
86f20 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 65 6d 6f 76 65 50 n->getPackage();..$repo->removeP
86f40 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 0a 70 75 62 6c 69 ackage($package);.}........publi
86f60 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 67 c.function.getInstallPath(Packag
86f80 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 73 74 61 6c 6c 65 eInterface.$package).{.$installe
86fa0 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 61 63 6b 61 67 65 r.=.$this->getInstaller($package
86fc0 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 74 61 6c 6c 65 72 ->getType());..return.$installer
86fe0 2d 3e 67 65 74 49 6e 73 74 61 6c 6c 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 70 ->getInstallPath($package);.}..p
87000 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 73 28 29 0a ublic.function.notifyInstalls().
87020 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b {.foreach.($this->notifiablePack
87040 61 67 65 73 20 61 73 20 24 72 65 70 6f 55 72 6c 20 3d 3e 20 24 70 61 63 6b 61 67 65 73 29 20 7b ages.as.$repoUrl.=>.$packages).{
87060 0a 0a 20 69 66 20 28 73 74 72 70 6f 73 28 24 72 65 70 6f 55 72 6c 2c 20 27 25 70 61 63 6b 61 67 ...if.(strpos($repoUrl,.'%packag
87080 65 25 27 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 e%')).{.foreach.($packages.as.$p
870a0 61 63 6b 61 67 65 29 20 7b 0a 24 75 72 6c 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 25 70 ackage).{.$url.=.str_replace('%p
870c0 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 4e 61 6d ackage%',.$package->getPrettyNam
870e0 65 28 29 2c 20 24 72 65 70 6f 55 72 6c 29 3b 0a 0a 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 e(),.$repoUrl);..$params.=.array
87100 28 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 (.'version'.=>.$package->getPret
87120 74 79 56 65 72 73 69 6f 6e 28 29 2c 0a 27 76 65 72 73 69 6f 6e 5f 6e 6f 72 6d 61 6c 69 7a 65 64 tyVersion(),.'version_normalized
87140 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 0a 29 3b 0a '.=>.$package->getVersion(),.);.
87160 24 6f 70 74 73 20 3d 20 61 72 72 61 79 28 27 68 74 74 70 27 20 3d 3e 0a 61 72 72 61 79 28 0a 27 $opts.=.array('http'.=>.array(.'
87180 6d 65 74 68 6f 64 27 20 3d 3e 20 27 50 4f 53 54 27 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 61 method'.=>.'POST',.'header'.=>.a
871a0 72 72 61 79 28 27 43 6f 6e 74 65 6e 74 2d 74 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f rray('Content-type:.application/
871c0 78 2d 77 77 77 2d 66 6f 72 6d 2d 75 72 6c 65 6e 63 6f 64 65 64 27 29 2c 0a 27 63 6f 6e 74 65 6e x-www-form-urlencoded'),.'conten
871e0 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 6d 73 2c 20 t'.=>.http_build_query($params,.
87200 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 29 3b 0a 0a '',.'&'),.'timeout'.=>.3,.).);..
87220 24 63 6f 6e 74 65 78 74 20 3d 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3a $context.=.StreamContextFactory:
87240 3a 67 65 74 43 6f 6e 74 65 78 74 28 24 75 72 6c 2c 20 24 6f 70 74 73 29 3b 0a 40 66 69 6c 65 5f :getContext($url,.$opts);.@file_
87260 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 75 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 6f 6e 74 65 get_contents($url,.false,.$conte
87280 78 74 29 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 70 6f 73 74 44 61 74 61 20 3d xt);.}..continue;.}..$postData.=
872a0 20 61 72 72 61 79 28 27 64 6f 77 6e 6c 6f 61 64 73 27 20 3d 3e 20 61 72 72 61 79 28 29 29 3b 0a .array('downloads'.=>.array());.
872c0 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 foreach.($packages.as.$package).
872e0 7b 0a 24 70 6f 73 74 44 61 74 61 5b 27 64 6f 77 6e 6c 6f 61 64 73 27 5d 5b 5d 20 3d 20 61 72 72 {.$postData['downloads'][].=.arr
87300 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 ay(.'name'.=>.$package->getPrett
87320 79 4e 61 6d 65 28 29 2c 0a 27 76 65 72 73 69 6f 6e 27 20 3d 3e 20 24 70 61 63 6b 61 67 65 2d 3e yName(),.'version'.=>.$package->
87340 67 65 74 56 65 72 73 69 6f 6e 28 29 2c 0a 29 3b 0a 7d 0a 0a 24 6f 70 74 73 20 3d 20 61 72 72 61 getVersion(),.);.}..$opts.=.arra
87360 79 28 27 68 74 74 70 27 20 3d 3e 0a 61 72 72 61 79 28 0a 27 6d 65 74 68 6f 64 27 20 3d 3e 20 27 y('http'.=>.array(.'method'.=>.'
87380 50 4f 53 54 27 2c 0a 27 68 65 61 64 65 72 27 20 3d 3e 20 61 72 72 61 79 28 27 43 6f 6e 74 65 6e POST',.'header'.=>.array('Conten
873a0 74 2d 54 79 70 65 3a 20 61 70 70 6c 69 63 61 74 69 6f 6e 2f 6a 73 6f 6e 27 29 2c 0a 27 63 6f 6e t-Type:.application/json'),.'con
873c0 74 65 6e 74 27 20 3d 3e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 70 6f 73 74 44 61 74 61 29 2c tent'.=>.json_encode($postData),
873e0 0a 27 74 69 6d 65 6f 75 74 27 20 3d 3e 20 36 2c 0a 29 0a 29 3b 0a 0a 24 63 6f 6e 74 65 78 74 20 .'timeout'.=>.6,.).);..$context.
87400 3d 20 53 74 72 65 61 6d 43 6f 6e 74 65 78 74 46 61 63 74 6f 72 79 3a 3a 67 65 74 43 6f 6e 74 65 =.StreamContextFactory::getConte
87420 78 74 28 24 72 65 70 6f 55 72 6c 2c 20 24 6f 70 74 73 29 3b 0a 40 66 69 6c 65 5f 67 65 74 5f 63 xt($repoUrl,.$opts);.@file_get_c
87440 6f 6e 74 65 6e 74 73 28 24 72 65 70 6f 55 72 6c 2c 20 66 61 6c 73 65 2c 20 24 63 6f 6e 74 65 78 ontents($repoUrl,.false,.$contex
87460 74 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 t);.}..$this->reset();.}..privat
87480 65 20 66 75 6e 63 74 69 6f 6e 20 6d 61 72 6b 46 6f 72 4e 6f 74 69 66 69 63 61 74 69 6f 6e 28 50 e.function.markForNotification(P
874a0 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 69 66 20 28 ackageInterface.$package).{.if.(
874c0 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 29 20 $package->getNotificationUrl()).
874e0 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 69 66 69 61 62 6c 65 50 61 63 6b 61 67 65 73 5b 24 70 61 63 {.$this->notifiablePackages[$pac
87500 6b 61 67 65 2d 3e 67 65 74 4e 6f 74 69 66 69 63 61 74 69 6f 6e 55 72 6c 28 29 5d 5b 24 70 61 63 kage->getNotificationUrl()][$pac
87520 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 7d kage->getName()].=.$package;.}.}
87540 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
87560 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\
87580 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 Composer;.use.Composer\Package\P
875a0 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 4f 5c 49 4f 49 6e 74 65 72 66 ackage;.use.Composer\IO\IOInterf
875c0 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 49 6e 73 ace;.use.Composer\Repository\Ins
875e0 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 73 65 20 43 talledRepositoryInterface;.use.C
87600 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 omposer\Package\PackageInterface
87620 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 6c 75 67 69 6e 49 6e 73 74 61 6c 6c 65 72 20 65 ;........class.PluginInstaller.e
87640 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 70 72 69 76 61 74 xtends.LibraryInstaller.{.privat
87660 65 20 24 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 e.$installationManager;.private.
87680 73 74 61 74 69 63 20 24 63 6c 61 73 73 43 6f 75 6e 74 65 72 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a static.$classCounter.=.0;.......
876a0 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 4f ..public.function.__construct(IO
876c0 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 70 6f 73 65 Interface.$io,.Composer.$compose
876e0 72 2c 20 24 74 79 70 65 20 3d 20 27 6c 69 62 72 61 72 79 27 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a r,.$type.=.'library').{.parent::
87700 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 6f 2c 20 24 63 6f 6d 70 6f 73 65 72 2c 20 27 63 6f 6d __construct($io,.$composer,.'com
87720 70 6f 73 65 72 2d 70 6c 75 67 69 6e 27 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 poser-plugin');.$this->installat
87740 69 6f 6e 4d 61 6e 61 67 65 72 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 49 6e 73 74 61 ionManager.=.$composer->getInsta
87760 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 28 29 3b 0a 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 llationManager();..}.....public.
87780 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 65 29 0a function.supports($packageType).
877a0 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 27 63 6f 6d 70 6f {.return.$packageType.===.'compo
877c0 73 65 72 2d 70 6c 75 67 69 6e 27 20 7c 7c 20 24 70 61 63 6b 61 67 65 54 79 70 65 20 3d 3d 3d 20 ser-plugin'.||.$packageType.===.
877e0 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 72 27 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 'composer-installer';.}.....publ
87800 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 52 65 70 ic.function.install(InstalledRep
87820 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 ositoryInterface.$repo,.PackageI
87840 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 65 78 74 72 61 20 3d 20 24 70 nterface.$package).{.$extra.=.$p
87860 61 63 6b 61 67 65 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 ackage->getExtra();.if.(empty($e
87880 78 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 xtra['class'])).{.throw.new.\Une
878a0 78 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 xpectedValueException('Error.whi
878c0 6c 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 le.installing.'.$package->getPre
878e0 74 74 79 4e 61 6d 65 28 29 2e 27 2c 20 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 20 70 61 63 ttyName().',.composer-plugin.pac
87900 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 65 kages.should.have.a.class.define
87920 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 6c d.in.their.extra.key.to.be.usabl
87940 65 2e 27 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 69 6e 73 74 61 6c 6c 28 24 72 65 70 6f 2c 20 e.');.}..parent::install($repo,.
87960 24 70 61 63 6b 61 67 65 29 3b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 $package);.$this->composer->getP
87980 6c 75 67 69 6e 4d 61 6e 61 67 65 72 28 29 2d 3e 72 65 67 69 73 74 65 72 50 61 63 6b 61 67 65 28 luginManager()->registerPackage(
879a0 24 70 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $package);.}.....public.function
879c0 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 65 72 .update(InstalledRepositoryInter
879e0 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 69 6e face.$repo,.PackageInterface.$in
87a00 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 29 itial,.PackageInterface.$target)
87a20 0a 7b 0a 24 65 78 74 72 61 20 3d 20 24 74 61 72 67 65 74 2d 3e 67 65 74 45 78 74 72 61 28 29 3b .{.$extra.=.$target->getExtra();
87a40 0a 69 66 20 28 65 6d 70 74 79 28 24 65 78 74 72 61 5b 27 63 6c 61 73 73 27 5d 29 29 20 7b 0a 74 .if.(empty($extra['class'])).{.t
87a60 68 72 6f 77 20 6e 65 77 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 hrow.new.\UnexpectedValueExcepti
87a80 6f 6e 28 27 45 72 72 6f 72 20 77 68 69 6c 65 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 74 61 on('Error.while.installing.'.$ta
87aa0 72 67 65 74 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 rget->getPrettyName().',.compose
87ac0 72 2d 70 6c 75 67 69 6e 20 70 61 63 6b 61 67 65 73 20 73 68 6f 75 6c 64 20 68 61 76 65 20 61 20 r-plugin.packages.should.have.a.
87ae0 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 65 79 class.defined.in.their.extra.key
87b00 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 75 70 64 .to.be.usable.');.}..parent::upd
87b20 61 74 65 28 24 72 65 70 6f 2c 20 24 69 6e 69 74 69 61 6c 2c 20 24 74 61 72 67 65 74 29 3b 0a 24 ate($repo,.$initial,.$target);.$
87b40 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 6c 75 67 69 6e 4d 61 6e 61 67 65 72 this->composer->getPluginManager
87b60 28 29 2d 3e 72 65 67 69 73 74 65 72 50 61 63 6b 61 67 65 28 24 74 61 72 67 65 74 29 3b 0a 7d 0a ()->registerPackage($target);.}.
87b80 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
87ba0 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 50 poser\Installer;..use.Composer\P
87bc0 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 6d ackage\PackageInterface;.use.Com
87be0 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 6f 73 69 poser\Repository\InstalledReposi
87c00 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 63 65 20 toryInterface;........interface.
87c20 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 62 6c 69 InstallerInterface.{.......publi
87c40 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 65 c.function.supports($packageType
87c60 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 73 49 6e );..........public.function.isIn
87c80 73 74 61 6c 6c 65 64 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 stalled(InstalledRepositoryInter
87ca0 66 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 face.$repo,.PackageInterface.$pa
87cc0 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 6e 20 69 ckage);........public.function.i
87ce0 6e 73 74 61 6c 6c 28 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 nstall(InstalledRepositoryInterf
87d00 61 63 65 20 24 72 65 70 6f 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 ace.$repo,.PackageInterface.$pac
87d20 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 69 6f 6e kage);...........public.function
87d40 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 65 72 .update(InstalledRepositoryInter
87d60 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 69 6e face.$repo,.PackageInterface.$in
87d80 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 29 itial,.PackageInterface.$target)
87da0 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 73 74 61 ;........public.function.uninsta
87dc0 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 20 ll(InstalledRepositoryInterface.
87de0 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
87e00 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 49 6e 73 );........public.function.getIns
87e20 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 63 6b 61 tallPath(PackageInterface.$packa
87e40 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 70 61 63 ge);.}.<?php............namespac
87e60 65 20 43 6f 6d 70 6f 73 65 72 5c 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 e.Composer\Console;..use.Symfony
87e80 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 20 61 \Component\Console\Application.a
87ea0 73 20 42 61 73 65 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 s.BaseApplication;.use.Symfony\C
87ec0 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
87ee0 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
87f00 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
87f20 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
87f40 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
87f60 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 ent\Console\Output\ConsoleOutput
87f80 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\
87fa0 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3b 0a 75 73 65 20 43 Formatter\OutputFormatter;.use.C
87fc0 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 72 5c 43 6f omposer\Command;.use.Composer\Co
87fe0 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 73 65 20 43 mmand\Helper\DialogHelper;.use.C
88000 6f 6d 70 6f 73 65 72 5c 43 6f 6d 70 6f 73 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 46 omposer\Composer;.use.Composer\F
88020 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 74 65 72 66 actory;.use.Composer\IO\IOInterf
88040 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 49 4f 3b 0a ace;.use.Composer\IO\ConsoleIO;.
88060 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 4a 73 6f 6e 5c 4a 73 6f 6e 56 61 6c 69 64 61 74 69 6f 6e use.Composer\Json\JsonValidation
88080 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 55 74 69 6c 5c 45 72 72 Exception;.use.Composer\Util\Err
880a0 6f 72 48 61 6e 64 6c 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 orHandler;.........class.Applica
880c0 74 69 6f 6e 20 65 78 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 tion.extends.BaseApplication.{..
880e0 0a 0a 70 72 6f 74 65 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 ..protected.$composer;.....prote
88100 63 74 65 64 20 24 69 6f 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6c 6f 67 6f 20 cted.$io;..private.static.$logo.
88120 3d 20 27 20 20 20 5f 5f 5f 5f 5f 5f 0a 20 20 2f 20 5f 5f 5f 5f 2f 5f 5f 5f 20 20 5f 5f 5f 5f 20 =.'...______.../.____/___..____.
88140 5f 5f 5f 20 20 5f 5f 5f 5f 20 20 5f 5f 5f 5f 20 20 5f 5f 5f 5f 5f 5f 5f 5f 20 20 5f 5f 5f 5f 5f ___..____..____..________.._____
88160 0a 20 2f 20 2f 20 20 20 2f 20 5f 5f 20 5c 2f 20 5f 5f 20 60 5f 5f 20 5c 2f 20 5f 5f 20 5c 2f 20 .././.../.__.\/.__.`__.\/.__.\/.
88180 5f 5f 20 5c 2f 20 5f 5f 5f 2f 20 5f 20 5c 2f 20 5f 5f 5f 2f 0a 2f 20 2f 5f 5f 5f 2f 20 2f 5f 2f __.\/.___/._.\/.___/././___/./_/
881a0 20 2f 20 2f 20 2f 20 2f 20 2f 20 2f 20 2f 5f 2f 20 2f 20 2f 5f 2f 20 28 5f 5f 20 20 29 20 20 5f ./././././././_/././_/.(__..).._
881c0 5f 2f 20 2f 0a 5c 5f 5f 5f 5f 2f 5c 5f 5f 5f 5f 2f 5f 2f 20 2f 5f 2f 20 2f 5f 2f 20 2e 5f 5f 5f _/./.\____/\____/_/./_/./_/..___
881e0 2f 5c 5f 5f 5f 5f 2f 5f 5f 5f 5f 2f 5c 5f 5f 5f 2f 5f 2f 0a 20 20 20 20 20 20 20 20 20 20 20 20 /\____/____/\___/_/.............
88200 20 20 20 20 20 20 20 20 2f 5f 2f 0a 27 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ......../_/.';..public.function.
88220 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 __construct().{.if.(function_exi
88240 73 74 73 28 27 69 6e 69 5f 73 65 74 27 29 29 20 7b 0a 69 6e 69 5f 73 65 74 28 27 78 64 65 62 75 sts('ini_set')).{.ini_set('xdebu
88260 67 2e 73 68 6f 77 5f 65 78 63 65 70 74 69 6f 6e 5f 74 72 61 63 65 27 2c 20 66 61 6c 73 65 29 3b g.show_exception_trace',.false);
88280 0a 69 6e 69 5f 73 65 74 28 27 78 64 65 62 75 67 2e 73 63 72 65 61 6d 27 2c 20 66 61 6c 73 65 29 .ini_set('xdebug.scream',.false)
882a0 3b 0a 0a 7d 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 64 61 74 65 5f 64 ;..}.if.(function_exists('date_d
882c0 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 73 65 74 27 29 20 26 26 20 66 75 6e 63 74 69 6f efault_timezone_set').&&.functio
882e0 6e 5f 65 78 69 73 74 73 28 27 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f n_exists('date_default_timezone_
88300 67 65 74 27 29 29 20 7b 0a 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 73 get')).{.date_default_timezone_s
88320 65 74 28 40 64 61 74 65 5f 64 65 66 61 75 6c 74 5f 74 69 6d 65 7a 6f 6e 65 5f 67 65 74 28 29 29 et(@date_default_timezone_get())
88340 3b 0a 7d 0a 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 ;.}..ErrorHandler::register();.p
88360 61 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 arent::__construct('Composer',.C
88380 6f 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 omposer::VERSION);.}.....public.
883a0 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 function.run(InputInterface.$inp
883c0 75 74 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 ut.=.null,.OutputInterface.$outp
883e0 75 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6f 75 74 70 75 ut.=.null).{.if.(null.===.$outpu
88400 74 29 20 7b 0a 24 73 74 79 6c 65 73 20 3d 20 46 61 63 74 6f 72 79 3a 3a 63 72 65 61 74 65 41 64 t).{.$styles.=.Factory::createAd
88420 64 69 74 69 6f 6e 61 6c 53 74 79 6c 65 73 28 29 3b 0a 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e ditionalStyles();.$formatter.=.n
88440 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 6e 75 6c 6c 2c 20 24 73 74 79 6c 65 73 ew.OutputFormatter(null,.$styles
88460 29 3b 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 43 );.$output.=.new.ConsoleOutput(C
88480 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 onsoleOutput::VERBOSITY_NORMAL,.
884a0 6e 75 6c 6c 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 70 61 72 null,.$formatter);.}..return.par
884c0 65 6e 74 3a 3a 72 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a ent::run($input,.$output);.}....
884e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 75 6e 28 49 6e 70 75 74 49 6e 74 65 .public.function.doRun(InputInte
88500 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
88520 75 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6f 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 utput).{.$this->io.=.new.Console
88540 49 4f 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e 67 65 74 48 65 IO($input,.$output,.$this->getHe
88560 6c 70 65 72 53 65 74 28 29 29 3b 0a 0a 69 66 20 28 76 65 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 lperSet());..if.(version_compare
88580 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 33 2e 32 27 2c 20 27 3c 27 29 29 20 7b 0a 24 (PHP_VERSION,.'5.3.2',.'<')).{.$
885a0 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 43 6f 6d 70 6f 73 output->writeln('<warning>Compos
885c0 65 72 20 6f 6e 6c 79 20 6f 66 66 69 63 69 61 6c 6c 79 20 73 75 70 70 6f 72 74 73 20 50 48 50 20 er.only.officially.supports.PHP.
885e0 35 2e 33 2e 32 20 61 6e 64 20 61 62 6f 76 65 2c 20 79 6f 75 20 77 69 6c 6c 20 6d 6f 73 74 20 6c 5.3.2.and.above,.you.will.most.l
88600 69 6b 65 6c 79 20 65 6e 63 6f 75 6e 74 65 72 20 70 72 6f 62 6c 65 6d 73 20 77 69 74 68 20 79 6f ikely.encounter.problems.with.yo
88620 75 72 20 50 48 50 20 27 2e 50 48 50 5f 56 45 52 53 49 4f 4e 2e 27 2c 20 75 70 67 72 61 64 69 6e ur.PHP.'.PHP_VERSION.',.upgradin
88640 67 20 69 73 20 73 74 72 6f 6e 67 6c 79 20 72 65 63 6f 6d 6d 65 6e 64 65 64 2e 3c 2f 77 61 72 6e g.is.strongly.recommended.</warn
88660 69 6e 67 3e 27 29 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 69 6e 65 64 28 27 43 4f 4d 50 4f 53 45 52 ing>');.}..if.(defined('COMPOSER
88680 5f 44 45 56 5f 57 41 52 4e 49 4e 47 5f 54 49 4d 45 27 29 20 26 26 20 24 74 68 69 73 2d 3e 67 65 _DEV_WARNING_TIME').&&.$this->ge
886a0 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 24 69 6e 70 75 74 29 20 21 3d 3d 20 27 73 65 6c 66 2d 75 tCommandName($input).!==.'self-u
886c0 70 64 61 74 65 27 20 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 pdate'.&&.$this->getCommandName(
886e0 24 69 6e 70 75 74 29 20 21 3d 3d 20 27 73 65 6c 66 75 70 64 61 74 65 27 29 20 7b 0a 69 66 20 28 $input).!==.'selfupdate').{.if.(
88700 74 69 6d 65 28 29 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 time().>.COMPOSER_DEV_WARNING_TI
88720 4d 45 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 27 ME).{.$output->writeln(sprintf('
88740 3c 77 61 72 6e 69 6e 67 3e 57 61 72 6e 69 6e 67 3a 20 54 68 69 73 20 64 65 76 65 6c 6f 70 6d 65 <warning>Warning:.This.developme
88760 6e 74 20 62 75 69 6c 64 20 6f 66 20 63 6f 6d 70 6f 73 65 72 20 69 73 20 6f 76 65 72 20 33 30 20 nt.build.of.composer.is.over.30.
88780 64 61 79 73 20 6f 6c 64 2e 20 49 74 20 69 73 20 72 65 63 6f 6d 6d 65 6e 64 65 64 20 74 6f 20 75 days.old..It.is.recommended.to.u
887a0 70 64 61 74 65 20 69 74 20 62 79 20 72 75 6e 6e 69 6e 67 20 22 25 73 20 73 65 6c 66 2d 75 70 64 pdate.it.by.running."%s.self-upd
887c0 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 2e 3c ate".to.get.the.latest.version.<
887e0 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 27 5d /warning>',.$_SERVER['PHP_SELF']
88800 29 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 67 65 74 65 6e 76 28 27 43 4f 4d 50 4f 53 45 52 5f 4e 4f ));.}.}..if.(getenv('COMPOSER_NO
88820 5f 49 4e 54 45 52 41 43 54 49 4f 4e 27 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 _INTERACTION')).{.$input->setInt
88840 65 72 61 63 74 69 76 65 28 66 61 6c 73 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 6e 70 75 74 2d 3e eractive(false);.}..if.($input->
88860 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 70 72 6f 66 69 6c 65 27 29 29 hasParameterOption('--profile'))
88880 20 7b 0a 24 73 74 61 72 74 54 69 6d 65 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b .{.$startTime.=.microtime(true);
888a0 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 65 6e 61 62 6c 65 44 65 62 75 67 67 69 6e 67 28 24 73 74 61 .$this->io->enableDebugging($sta
888c0 72 74 54 69 6d 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 6e 65 77 57 6f 72 6b 44 69 72 20 3d 20 24 74 rtTime);.}..if.($newWorkDir.=.$t
888e0 68 69 73 2d 3e 67 65 74 4e 65 77 57 6f 72 6b 69 6e 67 44 69 72 28 24 69 6e 70 75 74 29 29 20 7b his->getNewWorkingDir($input)).{
88900 0a 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 63 68 64 69 .$oldWorkingDir.=.getcwd();.chdi
88920 72 28 24 6e 65 77 57 6f 72 6b 44 69 72 29 3b 0a 7d 0a 0a 24 72 65 73 75 6c 74 20 3d 20 70 61 72 r($newWorkDir);.}..$result.=.par
88940 65 6e 74 3a 3a 64 6f 52 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 ent::doRun($input,.$output);..if
88960 20 28 69 73 73 65 74 28 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 29 29 20 7b 0a 63 68 64 69 72 .(isset($oldWorkingDir)).{.chdir
88980 28 24 6f 6c 64 57 6f 72 6b 69 6e 67 44 69 72 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 ($oldWorkingDir);.}..if.(isset($
889a0 73 74 61 72 74 54 69 6d 65 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 startTime)).{.$output->writeln('
889c0 3c 69 6e 66 6f 3e 4d 65 6d 6f 72 79 20 75 73 61 67 65 3a 20 27 2e 72 6f 75 6e 64 28 6d 65 6d 6f <info>Memory.usage:.'.round(memo
889e0 72 79 5f 67 65 74 5f 75 73 61 67 65 28 29 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 2c 20 32 29 ry_get_usage()./.1024./.1024,.2)
88a00 2e 27 4d 42 20 28 70 65 61 6b 3a 20 27 2e 72 6f 75 6e 64 28 6d 65 6d 6f 72 79 5f 67 65 74 5f 70 .'MB.(peak:.'.round(memory_get_p
88a20 65 61 6b 5f 75 73 61 67 65 28 29 20 2f 20 31 30 32 34 20 2f 20 31 30 32 34 2c 20 32 29 2e 27 4d eak_usage()./.1024./.1024,.2).'M
88a40 42 29 2c 20 74 69 6d 65 3a 20 27 2e 72 6f 75 6e 64 28 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 B),.time:.'.round(microtime(true
88a60 29 20 2d 20 24 73 74 61 72 74 54 69 6d 65 2c 20 32 29 2e 27 73 27 29 3b 0a 7d 0a 0a 72 65 74 75 ).-.$startTime,.2).'s');.}..retu
88a80 72 6e 20 24 72 65 73 75 6c 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 rn.$result;.}......private.funct
88aa0 69 6f 6e 20 67 65 74 4e 65 77 57 6f 72 6b 69 6e 67 44 69 72 28 49 6e 70 75 74 49 6e 74 65 72 66 ion.getNewWorkingDir(InputInterf
88ac0 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 24 77 6f 72 6b 69 6e 67 44 69 72 20 3d 20 24 69 6e 70 ace.$input).{.$workingDir.=.$inp
88ae0 75 74 2d 3e 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d ut->getParameterOption(array('--
88b00 77 6f 72 6b 69 6e 67 2d 64 69 72 27 2c 20 27 2d 64 27 29 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 working-dir',.'-d'));.if.(false.
88b20 21 3d 3d 20 24 77 6f 72 6b 69 6e 67 44 69 72 20 26 26 20 21 69 73 5f 64 69 72 28 24 77 6f 72 6b !==.$workingDir.&&.!is_dir($work
88b40 69 6e 67 44 69 72 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 ingDir)).{.throw.new.\RuntimeExc
88b60 65 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 77 6f 72 6b 69 6e 67 20 64 69 72 65 63 74 6f 72 eption('Invalid.working.director
88b80 79 20 73 70 65 63 69 66 69 65 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 77 6f 72 6b 69 y.specified.');.}..return.$worki
88ba0 6e 67 44 69 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 72 65 6e ngDir;.}.....public.function.ren
88bc0 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 78 63 65 70 74 69 6f 6e 2c 20 24 6f 75 74 70 75 74 derException($exception,.$output
88be0 29 0a 7b 0a 74 72 79 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 ).{.try.{.$composer.=.$this->get
88c00 43 6f 6d 70 6f 73 65 72 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6f 73 65 72 29 20 Composer(false);.if.($composer).
88c20 7b 0a 24 63 6f 6e 66 69 67 20 3d 20 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 67 {.$config.=.$composer->getConfig
88c40 28 29 3b 0a 0a 24 6d 69 6e 53 70 61 63 65 46 72 65 65 20 3d 20 31 30 32 34 2a 31 30 32 34 3b 0a ();..$minSpaceFree.=.1024*1024;.
88c60 69 66 20 28 28 28 24 64 66 20 3d 20 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 if.((($df.=.@disk_free_space($di
88c80 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 68 6f 6d 65 27 29 29 29 20 21 3d 3d 20 66 r.=.$config->get('home'))).!==.f
88ca0 61 6c 73 65 20 26 26 20 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 7c 7c 20 alse.&&.$df.<.$minSpaceFree).||.
88cc0 28 28 24 64 66 20 3d 20 40 64 69 73 6b 5f 66 72 65 65 5f 73 70 61 63 65 28 24 64 69 72 20 3d 20 (($df.=.@disk_free_space($dir.=.
88ce0 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 29 20 21 3d 3d $config->get('vendor-dir'))).!==
88d00 20 66 61 6c 73 65 20 26 26 20 24 64 66 20 3c 20 24 6d 69 6e 53 70 61 63 65 46 72 65 65 29 0a 29 .false.&&.$df.<.$minSpaceFree).)
88d20 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 72 3e 54 68 65 20 .{.$output->writeln('<error>The.
88d40 64 69 73 6b 20 68 6f 73 74 69 6e 67 20 27 2e 24 64 69 72 2e 27 20 69 73 20 66 75 6c 6c 2c 20 74 disk.hosting.'.$dir.'.is.full,.t
88d60 68 69 73 20 6d 61 79 20 62 65 20 74 68 65 20 63 61 75 73 65 20 6f 66 20 74 68 65 20 66 6f 6c 6c his.may.be.the.cause.of.the.foll
88d80 6f 77 69 6e 67 20 65 78 63 65 70 74 69 6f 6e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 7d 0a 7d 0a 7d owing.exception</error>');.}.}.}
88da0 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 7d 0a 0a 72 65 74 75 72 .catch.(\Exception.$e).{}..retur
88dc0 6e 20 70 61 72 65 6e 74 3a 3a 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 78 63 65 70 n.parent::renderException($excep
88de0 74 69 6f 6e 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 tion,.$output);.}........public.
88e00 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.=
88e20 20 74 72 75 65 2c 20 24 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 20 3d 20 66 61 6c 73 65 29 0a .true,.$disablePlugins.=.false).
88e40 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 29 20 {.if.(null.===.$this->composer).
88e60 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 6f 73 65 72 20 3d 20 46 61 63 74 6f 72 {.try.{.$this->composer.=.Factor
88e80 79 3a 3a 63 72 65 61 74 65 28 24 74 68 69 73 2d 3e 69 6f 2c 20 6e 75 6c 6c 2c 20 24 64 69 73 61 y::create($this->io,.null,.$disa
88ea0 62 6c 65 50 6c 75 67 69 6e 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 49 6e 76 61 6c 69 64 41 72 blePlugins);.}.catch.(\InvalidAr
88ec0 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 72 65 71 75 69 gumentException.$e).{.if.($requi
88ee0 72 65 64 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 65 2d 3e 67 65 74 4d red).{.$this->io->write($e->getM
88f00 65 73 73 61 67 65 28 29 29 3b 0a 65 78 69 74 28 31 29 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 4a essage());.exit(1);.}.}.catch.(J
88f20 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 20 7b 0a 24 65 72 sonValidationException.$e).{.$er
88f40 72 6f 72 73 20 3d 20 27 20 2d 20 27 20 2e 20 69 6d 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 20 2e rors.=.'.-.'...implode(PHP_EOL..
88f60 20 27 20 2d 20 27 2c 20 24 65 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 24 6d 65 73 73 61 .'.-.',.$e->getErrors());.$messa
88f80 67 65 20 3d 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 20 2e 20 27 3a 27 20 2e 20 50 48 ge.=.$e->getMessage()...':'...PH
88fa0 50 5f 45 4f 4c 20 2e 20 24 65 72 72 6f 72 73 3b 0a 74 68 72 6f 77 20 6e 65 77 20 4a 73 6f 6e 56 P_EOL...$errors;.throw.new.JsonV
88fc0 61 6c 69 64 61 74 69 6f 6e 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a alidationException($message);.}.
88fe0 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 0a .}..return.$this->composer;.}...
89000 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 4f 28 29 0a 7b 0a 72 65 74 75 ..public.function.getIO().{.retu
89020 72 6e 20 24 74 68 69 73 2d 3e 69 6f 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e rn.$this->io;.}..public.function
89040 20 67 65 74 48 65 6c 70 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 6c 6f 67 6f 20 .getHelp().{.return.self::$logo.
89060 2e 20 70 61 72 65 6e 74 3a 3a 67 65 74 48 65 6c 70 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 ..parent::getHelp();.}.....prote
89080 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
890a0 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
890c0 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
890e0 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
89100 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 43 6f 6e 66 69 67 43 6f 6d 6d 61 6e 64 ds[].=.new.Command\ConfigCommand
89120 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 44 65 ();.$commands[].=.new.Command\De
89140 70 65 6e 64 73 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 pendsCommand();.$commands[].=.ne
89160 77 20 43 6f 6d 6d 61 6e 64 5c 49 6e 69 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e w.Command\InitCommand();.$comman
89180 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 49 6e 73 74 61 6c 6c 43 6f 6d 6d 61 6e ds[].=.new.Command\InstallComman
891a0 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 43 d();.$commands[].=.new.Command\C
891c0 72 65 61 74 65 50 72 6f 6a 65 63 74 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 reateProjectCommand();.$commands
891e0 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 [].=.new.Command\UpdateCommand()
89200 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 53 65 61 72 ;.$commands[].=.new.Command\Sear
89220 63 68 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 chCommand();.$commands[].=.new.C
89240 6f 6d 6d 61 6e 64 5c 56 61 6c 69 64 61 74 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 ommand\ValidateCommand();.$comma
89260 6e 64 73 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 68 6f 77 43 6f 6d 6d 61 6e 64 28 nds[].=.new.Command\ShowCommand(
89280 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 52 65 71 );.$commands[].=.new.Command\Req
892a0 75 69 72 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 uireCommand();.$commands[].=.new
892c0 20 43 6f 6d 6d 61 6e 64 5c 44 75 6d 70 41 75 74 6f 6c 6f 61 64 43 6f 6d 6d 61 6e 64 28 29 3b 0a .Command\DumpAutoloadCommand();.
892e0 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 53 74 61 74 75 73 $commands[].=.new.Command\Status
89300 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 6d Command();.$commands[].=.new.Com
89320 6d 61 6e 64 5c 41 72 63 68 69 76 65 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 73 mand\ArchiveCommand();.$commands
89340 5b 5d 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 44 69 61 67 6e 6f 73 65 43 6f 6d 6d 61 6e 64 [].=.new.Command\DiagnoseCommand
89360 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 52 75 ();.$commands[].=.new.Command\Ru
89380 6e 53 63 72 69 70 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 nScriptCommand();.$commands[].=.
893a0 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 4c 69 63 65 6e 73 65 73 43 6f 6d 6d 61 6e 64 28 29 3b 0a 24 new.Command\LicensesCommand();.$
893c0 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 47 6c 6f 62 61 6c 43 commands[].=.new.Command\GlobalC
893e0 6f 6d 6d 61 6e 64 28 29 3b 0a 0a 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 74 ommand();..if.('phar:'.===.subst
89400 72 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d r(__FILE__,.0,.5)).{.$commands[]
89420 20 3d 20 6e 65 77 20 43 6f 6d 6d 61 6e 64 5c 53 65 6c 66 55 70 64 61 74 65 43 6f 6d 6d 61 6e 64 .=.new.Command\SelfUpdateCommand
89440 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a 70 ();.}..return.$commands;.}.....p
89460 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().
89480 7b 0a 72 65 74 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 {.return.parent::getLongVersion(
894a0 29 20 2e 20 27 20 27 20 2e 20 43 6f 6d 70 6f 73 65 72 3a 3a 52 45 4c 45 41 53 45 5f 44 41 54 45 )...'.'...Composer::RELEASE_DATE
894c0 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 ;.}.....protected.function.getDe
894e0 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 24 64 65 66 69 6e 69 faultInputDefinition().{.$defini
89500 74 69 6f 6e 20 3d 20 70 61 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 tion.=.parent::getDefaultInputDe
89520 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 4f 70 74 69 finition();.$definition->addOpti
89540 6f 6e 28 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 70 72 6f 66 69 6c 65 27 2c 20 on(new.InputOption('--profile',.
89560 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,.'
89580 44 69 73 70 6c 61 79 20 74 69 6d 69 6e 67 20 61 6e 64 20 6d 65 6d 6f 72 79 20 75 73 61 67 65 20 Display.timing.and.memory.usage.
895a0 69 6e 66 6f 72 6d 61 74 69 6f 6e 27 29 29 3b 0a 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 61 64 64 information'));.$definition->add
895c0 4f 70 74 69 6f 6e 28 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 77 6f 72 6b 69 6e Option(new.InputOption('--workin
895e0 67 2d 64 69 72 27 2c 20 27 2d 64 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 g-dir',.'-d',.InputOption::VALUE
89600 5f 52 45 51 55 49 52 45 44 2c 20 27 49 66 20 73 70 65 63 69 66 69 65 64 2c 20 75 73 65 20 74 68 _REQUIRED,.'If.specified,.use.th
89620 65 20 67 69 76 65 6e 20 64 69 72 65 63 74 6f 72 79 20 61 73 20 77 6f 72 6b 69 6e 67 20 64 69 72 e.given.directory.as.working.dir
89640 65 63 74 6f 72 79 2e 27 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b ectory.'));..return.$definition;
89660 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 65 66 .}.....protected.function.getDef
89680 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 24 68 65 6c 70 65 72 53 65 74 20 3d 20 70 aultHelperSet().{.$helperSet.=.p
896a0 61 72 65 6e 74 3a 3a 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 65 72 53 65 74 28 29 3b 0a 0a 24 arent::getDefaultHelperSet();..$
896c0 68 65 6c 70 65 72 53 65 74 2d 3e 73 65 74 28 6e 65 77 20 44 69 61 6c 6f 67 48 65 6c 70 65 72 28 helperSet->set(new.DialogHelper(
896e0 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 68 65 6c 70 65 72 53 65 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 ));..return.$helperSet;.}.}.<?ph
89700 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\
89720 43 6f 6e 73 6f 6c 65 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c Console;..use.Symfony\Component\
89740 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 Console\Formatter\OutputFormatte
89760 72 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 74 6d 6c 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 r;.....class.HtmlOutputFormatter
89780 20 65 78 74 65 6e 64 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 0a 7b 0a 70 72 69 76 61 .extends.OutputFormatter.{.priva
897a0 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f te.static.$availableForegroundCo
897c0 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 33 30 20 3d 3e 20 27 62 6c 61 63 6b 27 2c 0a 33 31 20 lors.=.array(.30.=>.'black',.31.
897e0 3d 3e 20 27 72 65 64 27 2c 0a 33 32 20 3d 3e 20 27 67 72 65 65 6e 27 2c 0a 33 33 20 3d 3e 20 27 =>.'red',.32.=>.'green',.33.=>.'
89800 79 65 6c 6c 6f 77 27 2c 0a 33 34 20 3d 3e 20 27 62 6c 75 65 27 2c 0a 33 35 20 3d 3e 20 27 6d 61 yellow',.34.=>.'blue',.35.=>.'ma
89820 67 65 6e 74 61 27 2c 0a 33 36 20 3d 3e 20 27 63 79 61 6e 27 2c 0a 33 37 20 3d 3e 20 27 77 68 69 genta',.36.=>.'cyan',.37.=>.'whi
89840 74 65 27 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 te'.);.private.static.$available
89860 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 20 3d 20 61 72 72 61 79 28 0a 34 30 20 3d 3e 20 BackgroundColors.=.array(.40.=>.
89880 27 62 6c 61 63 6b 27 2c 0a 34 31 20 3d 3e 20 27 72 65 64 27 2c 0a 34 32 20 3d 3e 20 27 67 72 65 'black',.41.=>.'red',.42.=>.'gre
898a0 65 6e 27 2c 0a 34 33 20 3d 3e 20 27 79 65 6c 6c 6f 77 27 2c 0a 34 34 20 3d 3e 20 27 62 6c 75 65 en',.43.=>.'yellow',.44.=>.'blue
898c0 27 2c 0a 34 35 20 3d 3e 20 27 6d 61 67 65 6e 74 61 27 2c 0a 34 36 20 3d 3e 20 27 63 79 61 6e 27 ',.45.=>.'magenta',.46.=>.'cyan'
898e0 2c 0a 34 37 20 3d 3e 20 27 77 68 69 74 65 27 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 ,.47.=>.'white'.);.private.stati
89900 63 20 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 0a 31 20 3d c.$availableOptions.=.array(.1.=
89920 3e 20 27 62 6f 6c 64 27 2c 0a 34 20 3d 3e 20 27 75 6e 64 65 72 73 63 6f 72 65 27 2c 0a 0a 20 0a >.'bold',.4.=>.'underscore',....
89940 20 0a 20 29 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 ...);.....public.function.__cons
89960 74 72 75 63 74 28 61 72 72 61 79 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b truct(array.$styles.=.array()).{
89980 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 74 72 75 65 2c 20 24 73 74 79 6c .parent::__construct(true,.$styl
899a0 65 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 28 24 es);.}..public.function.format($
899c0 6d 65 73 73 61 67 65 29 0a 7b 0a 24 66 6f 72 6d 61 74 74 65 64 20 3d 20 70 61 72 65 6e 74 3a 3a message).{.$formatted.=.parent::
899e0 66 6f 72 6d 61 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 72 format($message);..return.preg_r
89a00 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 6b 28 22 7b 5c 30 33 33 5c 5b 28 5b 30 2d 39 3b 5d 2b eplace_callback("{\033\[([0-9;]+
89a20 29 6d 28 2e 2a 3f 29 5c 30 33 33 5c 5b 30 6d 7d 73 22 2c 20 61 72 72 61 79 28 24 74 68 69 73 2c )m(.*?)\033\[0m}s",.array($this,
89a40 20 27 66 6f 72 6d 61 74 48 74 6d 6c 27 29 2c 20 24 66 6f 72 6d 61 74 74 65 64 29 3b 0a 7d 0a 0a .'formatHtml'),.$formatted);.}..
89a60 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 48 74 6d 6c 28 24 6d 61 74 private.function.formatHtml($mat
89a80 63 68 65 73 29 0a 7b 0a 24 6f 75 74 20 3d 20 27 3c 73 70 61 6e 20 73 74 79 6c 65 3d 22 27 3b 0a ches).{.$out.=.'<span.style="';.
89aa0 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 3b 27 2c 20 24 6d 61 74 63 68 65 73 5b 31 foreach.(explode(';',.$matches[1
89ac0 5d 29 20 61 73 20 24 63 6f 64 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 ]).as.$code).{.if.(isset(self::$
89ae0 61 76 61 69 6c 61 62 6c 65 46 6f 72 65 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d availableForegroundColors[$code]
89b00 29 29 20 7b 0a 24 6f 75 74 20 2e 3d 20 27 63 6f 6c 6f 72 3a 27 2e 73 65 6c 66 3a 3a 24 61 76 61 )).{.$out..=.'color:'.self::$ava
89b20 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 64 65 5d 2e 27 3b ilableForegroundColors[$code].';
89b40 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 ';.}.elseif.(isset(self::$availa
89b60 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 24 bleBackgroundColors[$code])).{.$
89b80 6f 75 74 20 2e 3d 20 27 62 61 63 6b 67 72 6f 75 6e 64 2d 63 6f 6c 6f 72 3a 27 2e 73 65 6c 66 3a out..=.'background-color:'.self:
89ba0 3a 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f 6c 6f 72 73 5b 24 63 6f 64 :$availableBackgroundColors[$cod
89bc0 65 5d 2e 27 3b 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 61 e].';';.}.elseif.(isset(self::$a
89be0 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 63 6f 64 65 5d 29 29 20 7b 0a 73 77 69 74 63 vailableOptions[$code])).{.switc
89c00 68 20 28 73 65 6c 66 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 63 6f 64 65 h.(self::$availableOptions[$code
89c20 5d 29 20 7b 0a 63 61 73 65 20 27 62 6f 6c 64 27 3a 0a 24 6f 75 74 20 2e 3d 20 27 66 6f 6e 74 2d ]).{.case.'bold':.$out..=.'font-
89c40 77 65 69 67 68 74 3a 62 6f 6c 64 3b 27 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 27 75 6e 64 weight:bold;';.break;..case.'und
89c60 65 72 73 63 6f 72 65 27 3a 0a 24 6f 75 74 20 2e 3d 20 27 74 65 78 74 2d 64 65 63 6f 72 61 74 69 erscore':.$out..=.'text-decorati
89c80 6f 6e 3a 75 6e 64 65 72 6c 69 6e 65 3b 27 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 on:underline;';.break;.}.}.}..re
89ca0 74 75 72 6e 20 24 6f 75 74 20 2e 20 27 22 3e 27 2e 24 6d 61 74 63 68 65 73 5b 32 5d 2e 27 3c 2f turn.$out...'">'.$matches[2].'</
89cc0 73 70 61 6e 3e 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 span>';.}.}.<?php............nam
89ce0 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 20 43 espace.Composer\Autoload;..use.C
89d00 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 45 76 65 omposer\Config;.use.Composer\Eve
89d20 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 75 73 ntDispatcher\EventDispatcher;.us
89d40 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 61 74 69 6f e.Composer\Installer\Installatio
89d60 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 41 nManager;.use.Composer\Package\A
89d80 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 liasPackage;.use.Composer\Packag
89da0 65 5c 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 e\PackageInterface;.use.Composer
89dc0 5c 52 65 70 6f 73 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 \Repository\InstalledRepositoryI
89de0 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
89e00 73 79 73 74 65 6d 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 system;.use.Composer\Script\Scri
89e20 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 75 74 6f 6c 6f 61 64 47 65 6e ptEvents;......class.AutoloadGen
89e40 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 76 65 6e 74 44 69 73 70 61 74 erator.{....private.$eventDispat
89e60 63 68 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 cher;..public.function.__constru
89e80 63 74 28 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 70 61 74 63 ct(EventDispatcher.$eventDispatc
89ea0 68 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 20 3d 20 her).{.$this->eventDispatcher.=.
89ec0 24 65 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $eventDispatcher;.}..public.func
89ee0 74 69 6f 6e 20 64 75 6d 70 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 49 6e 73 74 61 6c tion.dump(Config.$config,.Instal
89f00 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 20 24 6c 6f 63 61 6c 52 65 70 ledRepositoryInterface.$localRep
89f20 6f 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 6b 61 67 65 o,.PackageInterface.$mainPackage
89f40 2c 20 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 ,.InstallationManager.$installat
89f60 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 24 74 61 72 67 65 74 44 69 72 2c 20 24 73 63 61 6e 50 73 72 ionManager,.$targetDir,.$scanPsr
89f80 30 50 61 63 6b 61 67 65 73 20 3d 20 66 61 6c 73 65 2c 20 24 73 75 66 66 69 78 20 3d 20 27 27 29 0Packages.=.false,.$suffix.=.'')
89fa0 0a 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 .{.$this->eventDispatcher->dispa
89fc0 74 63 68 53 63 72 69 70 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 41 55 54 4f tchScript(ScriptEvents::PRE_AUTO
89fe0 4c 4f 41 44 5f 44 55 4d 50 29 3b 0a 0a 24 66 69 6c 65 73 79 73 74 65 6d 20 3d 20 6e 65 77 20 46 LOAD_DUMP);..$filesystem.=.new.F
8a000 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 65 ilesystem();.$filesystem->ensure
8a020 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 65 DirectoryExists($config->get('ve
8a040 6e 64 6f 72 2d 64 69 72 27 29 29 3b 0a 24 62 61 73 65 50 61 74 68 20 3d 20 24 66 69 6c 65 73 79 ndor-dir'));.$basePath.=.$filesy
8a060 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 72 65 61 6c 70 61 74 68 28 67 65 74 stem->normalizePath(realpath(get
8a080 63 77 64 28 29 29 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 20 3d 20 24 66 69 6c 65 73 79 73 74 cwd()));.$vendorPath.=.$filesyst
8a0a0 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 72 65 61 6c 70 61 74 68 28 24 63 6f 6e 66 em->normalizePath(realpath($conf
8a0c0 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 29 29 3b 0a 24 75 73 65 47 6c 6f ig->get('vendor-dir')));.$useGlo
8a0e0 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 28 62 6f 6f 6c 29 20 24 63 6f 6e 66 69 67 2d balIncludePath.=.(bool).$config-
8a100 3e 67 65 74 28 27 75 73 65 2d 69 6e 63 6c 75 64 65 2d 70 61 74 68 27 29 3b 0a 24 70 72 65 70 65 >get('use-include-path');.$prepe
8a120 6e 64 41 75 74 6f 6c 6f 61 64 65 72 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 70 72 65 ndAutoloader.=.$config->get('pre
8a140 70 65 6e 64 2d 61 75 74 6f 6c 6f 61 64 65 72 27 29 20 3d 3d 3d 20 66 61 6c 73 65 20 3f 20 27 66 pend-autoloader').===.false.?.'f
8a160 61 6c 73 65 27 20 3a 20 27 74 72 75 65 27 3b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 24 76 65 alse'.:.'true';.$targetDir.=.$ve
8a180 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 6c 65 73 79 ndorPath.'/'.$targetDir;.$filesy
8a1a0 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 24 74 61 72 stem->ensureDirectoryExists($tar
8a1c0 67 65 74 44 69 72 29 3b 0a 0a 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 20 3d 20 24 66 69 6c getDir);..$vendorPathCode.=.$fil
8a1e0 65 73 79 73 74 65 6d 2d 3e 66 69 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 72 65 esystem->findShortestPathCode(re
8a200 61 6c 70 61 74 68 28 24 74 61 72 67 65 74 44 69 72 29 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c alpath($targetDir),.$vendorPath,
8a220 20 74 72 75 65 29 3b 0a 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 20 3d 20 73 74 72 5f .true);.$vendorPathCode52.=.str_
8a240 72 65 70 6c 61 63 65 28 27 5f 5f 44 49 52 5f 5f 27 2c 20 27 64 69 72 6e 61 6d 65 28 5f 5f 46 49 replace('__DIR__',.'dirname(__FI
8a260 4c 45 5f 5f 29 27 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 29 3b 0a 24 76 65 6e 64 6f LE__)',.$vendorPathCode);.$vendo
8a280 72 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 rPathToTargetDirCode.=.$filesyst
8a2a0 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
8a2c0 50 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 Path,.realpath($targetDir),.true
8a2e0 29 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 );..$appBaseDirCode.=.$filesyste
8a300 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
8a320 61 74 68 2c 20 24 62 61 73 65 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 24 61 70 70 42 61 73 65 44 ath,.$basePath,.true);.$appBaseD
8a340 69 72 43 6f 64 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5f 5f 44 49 52 5f 5f 27 2c 20 irCode.=.str_replace('__DIR__',.
8a360 27 24 76 65 6e 64 6f 72 44 69 72 27 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 3b 0a '$vendorDir',.$appBaseDirCode);.
8a380 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 0a .$namespacesFile.=.<<<EOF.<?php.
8a3a0 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 20 40 67 65 6e .//.autoload_namespaces.php.@gen
8a3c0 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 erated.by.Composer..\$vendorDir.
8a3e0 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d =.$vendorPathCode52;.\$baseDir.=
8a400 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 .$appBaseDirCode;..return.array(
8a420 0a 0a 45 4f 46 3b 0a 0a 24 70 73 72 34 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 68 70 ..EOF;..$psr4File.=.<<<EOF.<?php
8a440 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 70 73 72 34 2e 70 68 70 20 40 67 65 6e 65 72 61 74 65 ..//.autoload_psr4.php.@generate
8a460 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 76 65 d.by.Composer..\$vendorDir.=.$ve
8a480 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 ndorPathCode52;.\$baseDir.=.$app
8a4a0 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 0a 45 4f 46 BaseDirCode;..return.array(..EOF
8a4c0 3b 0a 0a 0a 20 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 ;....$packageMap.=.$this->buildP
8a4e0 61 63 6b 61 67 65 4d 61 70 28 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 ackageMap($installationManager,.
8a500 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 67 65 74 43 61 6e $mainPackage,.$localRepo->getCan
8a520 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 29 3b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d 20 onicalPackages());.$autoloads.=.
8a540 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 24 70 61 63 6b 61 67 65 4d 61 $this->parseAutoloads($packageMa
8a560 70 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 61 p,.$mainPackage);....foreach.($a
8a580 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 61 63 65 20 utoloads['psr-0'].as.$namespace.
8a5a0 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 3d 20 61 72 =>.$paths).{.$exportedPaths.=.ar
8a5c0 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 61 74 68 29 ray();.foreach.($paths.as.$path)
8a5e0 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 3e 67 65 74 .{.$exportedPaths[].=.$this->get
8a600 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c PathCode($filesystem,.$basePath,
8a620 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 7d 0a 24 65 78 70 6f 72 74 65 .$vendorPath,.$path);.}.$exporte
8a640 64 50 72 65 66 69 78 20 3d 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6e 61 6d 65 73 70 61 63 65 2c dPrefix.=.var_export($namespace,
8a660 20 74 72 75 65 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 20 20 20 20 .true);.$namespacesFile..=."....
8a680 24 65 78 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 3e 20 22 3b 0a 24 6e 61 6d 65 73 70 61 63 65 $exportedPrefix.=>.";.$namespace
8a6a0 73 46 69 6c 65 20 2e 3d 20 22 61 72 72 61 79 28 22 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 sFile..=."array(".implode(',.',.
8a6c0 24 65 78 70 6f 72 74 65 64 50 61 74 68 73 29 2e 22 29 2c 5c 6e 22 3b 0a 7d 0a 24 6e 61 6d 65 73 $exportedPaths)."),\n";.}.$names
8a6e0 70 61 63 65 73 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 pacesFile..=.");\n";....foreach.
8a700 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d 34 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 ($autoloads['psr-4'].as.$namespa
8a720 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 3d ce.=>.$paths).{.$exportedPaths.=
8a740 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 61 .array();.foreach.($paths.as.$pa
8a760 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 3e th).{.$exportedPaths[].=.$this->
8a780 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 62 61 73 65 50 61 getPathCode($filesystem,.$basePa
8a7a0 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 0a 24 65 78 70 6f th,.$vendorPath,.$path);.}.$expo
8a7c0 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 61 6d 65 73 70 61 rtedPrefix.=.var_export($namespa
8a7e0 63 65 2c 20 74 72 75 65 29 3b 0a 24 70 73 72 34 46 69 6c 65 20 2e 3d 20 22 20 20 20 20 24 65 78 ce,.true);.$psr4File..=."....$ex
8a800 70 6f 72 74 65 64 50 72 65 66 69 78 20 3d 3e 20 22 3b 0a 24 70 73 72 34 46 69 6c 65 20 2e 3d 20 portedPrefix.=>.";.$psr4File..=.
8a820 22 61 72 72 61 79 28 22 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 65 78 70 6f 72 74 65 64 "array(".implode(',.',.$exported
8a840 50 61 74 68 73 29 2e 22 29 2c 5c 6e 22 3b 0a 7d 0a 24 70 73 72 34 46 69 6c 65 20 2e 3d 20 22 29 Paths)."),\n";.}.$psr4File..=.")
8a860 3b 5c 6e 22 3b 0a 0a 24 63 6c 61 73 73 6d 61 70 46 69 6c 65 20 3d 20 3c 3c 3c 45 4f 46 0a 3c 3f ;\n";..$classmapFile.=.<<<EOF.<?
8a880 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 73 73 6d 61 70 2e 70 68 70 20 40 67 php..//.autoload_classmap.php.@g
8a8a0 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 enerated.by.Composer..\$vendorDi
8a8c0 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 3b 0a 5c 24 62 61 73 65 44 69 72 r.=.$vendorPathCode52;.\$baseDir
8a8e0 20 3d 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 .=.$appBaseDirCode;..return.arra
8a900 79 28 0a 0a 45 4f 46 3b 0a 0a 0a 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 20 3d 20 6e y(..EOF;....$targetDirLoader.=.n
8a920 75 6c 6c 3b 0a 24 6d 61 69 6e 41 75 74 6f 6c 6f 61 64 20 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 ull;.$mainAutoload.=.$mainPackag
8a940 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 66 20 28 24 6d 61 69 6e 50 61 63 6b 61 e->getAutoload();.if.($mainPacka
8a960 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 21 65 6d 70 74 79 28 24 6d 61 ge->getTargetDir().&&.!empty($ma
8a980 69 6e 41 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 30 27 5d 29 29 20 7b 0a 24 6c 65 76 65 6c 73 20 inAutoload['psr-0'])).{.$levels.
8a9a0 3d 20 63 6f 75 6e 74 28 65 78 70 6c 6f 64 65 28 27 2f 27 2c 20 24 66 69 6c 65 73 79 73 74 65 6d =.count(explode('/',.$filesystem
8a9c0 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2d 3e 67 65 ->normalizePath($mainPackage->ge
8a9e0 74 54 61 72 67 65 74 44 69 72 28 29 29 29 29 3b 0a 24 70 72 65 66 69 78 65 73 20 3d 20 69 6d 70 tTargetDir())));.$prefixes.=.imp
8aa00 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 69 6f 6e 20 28 24 lode(',.',.array_map(function.($
8aa20 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 74 28 24 70 72 65 prefix).{.return.var_export($pre
8aa40 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 24 6d 61 69 6e 41 fix,.true);.},.array_keys($mainA
8aa60 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 44 69 72 46 72 6f utoload['psr-0'])));.$baseDirFro
8aa80 6d 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 6d 2d 3e 66 69 mTargetDirCode.=.$filesystem->fi
8aaa0 6e 64 53 68 6f 72 74 65 73 74 50 61 74 68 43 6f 64 65 28 24 74 61 72 67 65 74 44 69 72 2c 20 24 ndShortestPathCode($targetDir,.$
8aac0 62 61 73 65 50 61 74 68 2c 20 74 72 75 65 29 3b 0a 0a 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 basePath,.true);..$targetDirLoad
8aae0 65 72 20 3d 20 3c 3c 3c 45 4f 46 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 er.=.<<<EOF......public.static.f
8ab00 75 6e 63 74 69 6f 6e 20 61 75 74 6f 6c 6f 61 64 28 5c 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a unction.autoload(\$class).....{.
8ab20 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 54 61 72 67 ........\$dir.=.$baseDirFromTarg
8ab40 65 74 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 etDirCode...'/';.........\$prefi
8ab60 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);.........
8ab80 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)
8aba0 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(
8abc0 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)).{...........
8abe0 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;.............}...
8ac00 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
8ac20 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('\\\
8ac40 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';.
8ac60 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
8ac80 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)).{
8aca0 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;..
8acc0 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
8ace0 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
8ad00 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 45 4f 46 3b 0a 7d 0a 0a 0a 20 24 63 e;.........}.....}..EOF;.}....$c
8ad20 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 24 73 63 61 6e 50 73 72 30 lassMap.=.array();.if.($scanPsr0
8ad40 50 61 63 6b 61 67 65 73 29 20 7b 0a 0a 20 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 28 27 70 73 Packages).{...foreach.(array('ps
8ad60 72 2d 30 27 2c 20 27 70 73 72 2d 34 27 29 20 61 73 20 24 70 73 72 54 79 70 65 29 20 7b 0a 66 6f r-0',.'psr-4').as.$psrType).{.fo
8ad80 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 24 70 73 72 54 79 70 65 5d 20 61 73 20 24 reach.($autoloads[$psrType].as.$
8ada0 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 namespace.=>.$paths).{.foreach.(
8adc0 24 70 61 74 68 73 20 61 73 20 24 64 69 72 29 20 7b 0a 24 64 69 72 20 3d 20 24 66 69 6c 65 73 79 $paths.as.$dir).{.$dir.=.$filesy
8ade0 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 66 69 6c 65 73 79 73 74 65 6d 2d stem->normalizePath($filesystem-
8ae00 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 64 69 72 29 20 3f 20 24 64 69 72 20 3a 20 24 >isAbsolutePath($dir).?.$dir.:.$
8ae20 62 61 73 65 50 61 74 68 2e 27 2f 27 2e 24 64 69 72 29 3b 0a 69 66 20 28 21 69 73 5f 64 69 72 28 basePath.'/'.$dir);.if.(!is_dir(
8ae40 24 64 69 72 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 77 68 69 74 65 6c 69 73 74 20 $dir)).{.continue;.}.$whitelist.
8ae60 3d 20 73 70 72 69 6e 74 66 28 0a 27 7b 25 73 2f 25 73 2e 2b 28 3f 3c 21 28 3f 3c 21 2f 29 54 65 =.sprintf(.'{%s/%s.+(?<!(?<!/)Te
8ae80 73 74 5c 2e 70 68 70 29 24 7d 27 2c 0a 70 72 65 67 5f 71 75 6f 74 65 28 24 64 69 72 29 2c 0a 28 st\.php)$}',.preg_quote($dir),.(
8aea0 24 70 73 72 54 79 70 65 20 3d 3d 3d 20 27 70 73 72 2d 34 27 20 7c 7c 20 73 74 72 70 6f 73 28 24 $psrType.===.'psr-4'.||.strpos($
8aec0 6e 61 6d 65 73 70 61 63 65 2c 20 27 5f 27 29 20 3d 3d 3d 20 66 61 6c 73 65 29 20 3f 20 70 72 65 namespace,.'_').===.false).?.pre
8aee0 67 5f 71 75 6f 74 65 28 73 74 72 74 72 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 5c 5c 27 2c 20 g_quote(strtr($namespace,.'\\',.
8af00 27 2f 27 29 29 20 3a 20 27 27 0a 29 3b 0a 66 6f 72 65 61 63 68 20 28 43 6c 61 73 73 4d 61 70 47 '/')).:.''.);.foreach.(ClassMapG
8af20 65 6e 65 72 61 74 6f 72 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 2c 20 24 77 68 69 74 65 enerator::createMap($dir,.$white
8af40 6c 69 73 74 29 20 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 69 66 20 28 list).as.$class.=>.$path).{.if.(
8af60 27 27 20 3d 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f ''.===.$namespace.||.0.===.strpo
8af80 73 28 24 63 6c 61 73 73 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 29 20 7b 0a 69 66 20 28 21 69 73 s($class,.$namespace)).{.if.(!is
8afa0 73 65 74 28 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 29 29 20 7b 0a 24 70 61 74 68 20 set($classMap[$class])).{.$path.
8afc0 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d =.$this->getPathCode($filesystem
8afe0 2c 20 24 62 61 73 65 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 ,.$basePath,.$vendorPath,.$path)
8b000 3b 0a 24 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 24 70 61 74 68 2e 22 2c 5c 6e ;.$classMap[$class].=.$path.",\n
8b020 22 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 27 63 6c ";.}.}.}.}.}.}.}..$autoloads['cl
8b040 61 73 73 6d 61 70 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 assmap'].=.new.\RecursiveIterato
8b060 72 49 74 65 72 61 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 rIterator(new.\RecursiveArrayIte
8b080 72 61 74 6f 72 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 29 29 3b 0a rator($autoloads['classmap']));.
8b0a0 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 63 6c 61 73 73 6d 61 70 27 5d 20 foreach.($autoloads['classmap'].
8b0c0 61 73 20 24 64 69 72 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 43 6c 61 73 73 4d 61 70 47 65 6e 65 as.$dir).{.foreach.(ClassMapGene
8b0e0 72 61 74 6f 72 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 29 20 61 73 20 24 63 6c 61 73 73 rator::createMap($dir).as.$class
8b100 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 50 .=>.$path).{.$path.=.$this->getP
8b120 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 athCode($filesystem,.$basePath,.
8b140 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 68 29 3b 0a 24 63 6c 61 73 73 4d 61 70 5b 24 $vendorPath,.$path);.$classMap[$
8b160 63 6c 61 73 73 5d 20 3d 20 24 70 61 74 68 2e 22 2c 5c 6e 22 3b 0a 7d 0a 7d 0a 0a 6b 73 6f 72 74 class].=.$path.",\n";.}.}..ksort
8b180 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6c 61 73 73 4d 61 70 20 ($classMap);.foreach.($classMap.
8b1a0 61 73 20 24 63 6c 61 73 73 20 3d 3e 20 24 63 6f 64 65 29 20 7b 0a 24 63 6c 61 73 73 6d 61 70 46 as.$class.=>.$code).{.$classmapF
8b1c0 69 6c 65 20 2e 3d 20 27 20 20 20 20 27 2e 76 61 72 5f 65 78 70 6f 72 74 28 24 63 6c 61 73 73 2c ile..=.'....'.var_export($class,
8b1e0 20 74 72 75 65 29 2e 27 20 3d 3e 20 27 2e 24 63 6f 64 65 3b 0a 7d 0a 24 63 6c 61 73 73 6d 61 70 .true).'.=>.'.$code;.}.$classmap
8b200 46 69 6c 65 20 2e 3d 20 22 29 3b 5c 6e 22 3b 0a 0a 69 66 20 28 21 24 73 75 66 66 69 78 29 20 7b File..=.");\n";..if.(!$suffix).{
8b220 0a 24 73 75 66 66 69 78 20 3d 20 24 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 61 75 74 6f 6c 6f 61 .$suffix.=.$config->get('autoloa
8b240 64 65 72 2d 73 75 66 66 69 78 27 29 20 3f 3a 20 6d 64 35 28 75 6e 69 71 69 64 28 27 27 2c 20 74 der-suffix').?:.md5(uniqid('',.t
8b260 72 75 65 29 29 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 rue));.}..file_put_contents($tar
8b280 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
8b2a0 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
8b2c0 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 70 73 72 ntents($targetDir.'/autoload_psr
8b2e0 34 2e 70 68 70 27 2c 20 24 70 73 72 34 46 69 6c 65 29 3b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 4.php',.$psr4File);.file_put_con
8b300 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 73 tents($targetDir.'/autoload_clas
8b320 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 24 smap.php',.$classmapFile);.if.($
8b340 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 6c includePathFile.=.$this->getIncl
8b360 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 73 udePathsFile($packageMap,.$files
8b380 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 ystem,.$basePath,.$vendorPath,.$
8b3a0 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 35 32 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 vendorPathCode52,.$appBaseDirCod
8b3c0 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 67 65 74 44 e)).{.file_put_contents($targetD
8b3e0 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 63 6c 75 64 ir.'/include_paths.php',.$includ
8b400 65 50 61 74 68 46 69 6c 65 29 3b 0a 7d 0a 69 66 20 28 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 46 ePathFile);.}.if.($includeFilesF
8b420 69 6c 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 ile.=.$this->getIncludeFilesFile
8b440 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 66 69 6c 65 73 27 5d 2c 20 24 66 69 6c 65 73 79 73 74 65 ($autoloads['files'],.$filesyste
8b460 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 65 6e 64 m,.$basePath,.$vendorPath,.$vend
8b480 6f 72 50 61 74 68 43 6f 64 65 35 32 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 29 20 orPathCode52,.$appBaseDirCode)).
8b4a0 7b 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 {.file_put_contents($targetDir.'
8b4c0 2f 61 75 74 6f 6c 6f 61 64 5f 66 69 6c 65 73 2e 70 68 70 27 2c 20 24 69 6e 63 6c 75 64 65 46 69 /autoload_files.php',.$includeFi
8b4e0 6c 65 73 46 69 6c 65 29 3b 0a 7d 0a 66 69 6c 65 5f 70 75 74 5f 63 6f 6e 74 65 6e 74 73 28 24 76 lesFile);.}.file_put_contents($v
8b500 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 20 24 74 68 69 73 endorPath.'/autoload.php',.$this
8b520 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 61 74 68 54 6f 54 ->getAutoloadFile($vendorPathToT
8b540 61 72 67 65 74 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 29 29 3b 0a 66 69 6c 65 5f 70 75 argetDirCode,.$suffix));.file_pu
8b560 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 61 72 67 65 74 44 69 72 2e 27 2f 61 75 74 6f 6c 6f 61 64 t_contents($targetDir.'/autoload
8b580 5f 72 65 61 6c 2e 70 68 70 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 52 65 _real.php',.$this->getAutoloadRe
8b5a0 61 6c 46 69 6c 65 28 74 72 75 65 2c 20 28 62 6f 6f 6c 29 20 24 69 6e 63 6c 75 64 65 50 61 74 68 alFile(true,.(bool).$includePath
8b5c0 46 69 6c 65 2c 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 28 62 6f 6f 6c 29 20 24 File,.$targetDirLoader,.(bool).$
8b5e0 69 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 includeFilesFile,.$vendorPathCod
8b600 65 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 2c 20 24 75 73 e,.$appBaseDirCode,.$suffix,.$us
8b620 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 50 61 74 68 2c 20 24 70 72 65 70 65 6e 64 41 75 74 6f eGlobalIncludePath,.$prependAuto
8b640 6c 6f 61 64 65 72 29 29 3b 0a 0a 0a 20 0a 20 24 73 6f 75 72 63 65 4c 6f 61 64 65 72 20 3d 20 66 loader));......$sourceLoader.=.f
8b660 6f 70 65 6e 28 5f 5f 44 49 52 5f 5f 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 2c open(__DIR__.'/ClassLoader.php',
8b680 20 27 72 27 29 3b 0a 24 74 61 72 67 65 74 4c 6f 61 64 65 72 20 3d 20 66 6f 70 65 6e 28 24 74 61 .'r');.$targetLoader.=.fopen($ta
8b6a0 72 67 65 74 44 69 72 2e 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 2c 20 27 77 2b 27 rgetDir.'/ClassLoader.php',.'w+'
8b6c0 29 3b 0a 73 74 72 65 61 6d 5f 63 6f 70 79 5f 74 6f 5f 73 74 72 65 61 6d 28 24 73 6f 75 72 63 65 );.stream_copy_to_stream($source
8b6e0 4c 6f 61 64 65 72 2c 20 24 74 61 72 67 65 74 4c 6f 61 64 65 72 29 3b 0a 66 63 6c 6f 73 65 28 24 Loader,.$targetLoader);.fclose($
8b700 73 6f 75 72 63 65 4c 6f 61 64 65 72 29 3b 0a 66 63 6c 6f 73 65 28 24 74 61 72 67 65 74 4c 6f 61 sourceLoader);.fclose($targetLoa
8b720 64 65 72 29 3b 0a 75 6e 73 65 74 28 24 73 6f 75 72 63 65 4c 6f 61 64 65 72 2c 20 24 74 61 72 67 der);.unset($sourceLoader,.$targ
8b740 65 74 4c 6f 61 64 65 72 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 76 65 6e 74 44 69 73 70 61 74 63 68 etLoader);..$this->eventDispatch
8b760 65 72 2d 3e 64 69 73 70 61 74 63 68 53 63 72 69 70 74 28 53 63 72 69 70 74 45 76 65 6e 74 73 3a er->dispatchScript(ScriptEvents:
8b780 3a 50 4f 53 54 5f 41 55 54 4f 4c 4f 41 44 5f 44 55 4d 50 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 :POST_AUTOLOAD_DUMP);.}..public.
8b7a0 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 74 61 6c 6c function.buildPackageMap(Install
8b7c0 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 67 65 ationManager.$installationManage
8b7e0 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 6b 61 67 65 r,.PackageInterface.$mainPackage
8b800 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 61 67 65 4d ,.array.$packages).{...$packageM
8b820 61 70 20 3d 20 61 72 72 61 79 28 61 72 72 61 79 28 24 6d 61 69 6e 50 61 63 6b 61 67 65 2c 20 27 ap.=.array(array($mainPackage,.'
8b840 27 29 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 70 61 63 '));..foreach.($packages.as.$pac
8b860 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 kage).{.if.($package.instanceof.
8b880 41 6c 69 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 24 74 68 69 AliasPackage).{.continue;.}.$thi
8b8a0 73 2d 3e 76 61 6c 69 64 61 74 65 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 29 3b 0a 0a 24 s->validatePackage($package);..$
8b8c0 70 61 63 6b 61 67 65 4d 61 70 5b 5d 20 3d 20 61 72 72 61 79 28 0a 24 70 61 63 6b 61 67 65 2c 0a packageMap[].=.array(.$package,.
8b8e0 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 67 65 74 49 6e 73 74 61 6c 6c $installationManager->getInstall
8b900 50 61 74 68 28 24 70 61 63 6b 61 67 65 29 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 61 63 Path($package).);.}..return.$pac
8b920 6b 61 67 65 4d 61 70 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 kageMap;.}.......protected.funct
8b940 69 6f 6e 20 76 61 6c 69 64 61 74 65 50 61 63 6b 61 67 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 ion.validatePackage(PackageInter
8b960 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a 7b 0a 24 61 75 74 6f 6c 6f 61 64 20 3d 20 24 70 61 face.$package).{.$autoload.=.$pa
8b980 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 ckage->getAutoload();.if.(!empty
8b9a0 28 24 61 75 74 6f 6c 6f 61 64 5b 27 70 73 72 2d 34 27 5d 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d ($autoload['psr-4']).&&.null.!==
8b9c0 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 24 6e 61 .$package->getTargetDir()).{.$na
8b9e0 6d 65 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 70 61 63 6b 61 me.=.$package->getName();.$packa
8ba00 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 ge->getTargetDir();.throw.new.\I
8ba20 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 50 53 52 2d 34 20 61 nvalidArgumentException("PSR-4.a
8ba40 75 74 6f 6c 6f 61 64 69 6e 67 20 69 73 20 69 6e 63 6f 6d 70 61 74 69 62 6c 65 20 77 69 74 68 20 utoloading.is.incompatible.with.
8ba60 74 68 65 20 74 61 72 67 65 74 2d 64 69 72 20 70 72 6f 70 65 72 74 79 2c 20 72 65 6d 6f 76 65 20 the.target-dir.property,.remove.
8ba80 74 68 65 20 74 61 72 67 65 74 2d 64 69 72 20 69 6e 20 70 61 63 6b 61 67 65 20 27 24 6e 61 6d 65 the.target-dir.in.package.'$name
8baa0 27 2e 22 29 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 61 75 74 6f 6c 6f 61 64 5b 27 70 73 '.");.}.if.(!empty($autoload['ps
8bac0 72 2d 34 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 5b 27 70 73 r-4'])).{.foreach.($autoload['ps
8bae0 72 2d 34 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a r-4'].as.$namespace.=>.$dirs).{.
8bb00 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 20 21 3d 3d 20 27 27 20 26 26 20 27 5c 5c 27 20 21 3d if.($namespace.!==.''.&&.'\\'.!=
8bb20 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 2d 31 29 29 20 7b 0a 74 68 72 6f =.substr($namespace,.-1)).{.thro
8bb40 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(
8bb60 22 70 73 72 2d 34 20 6e 61 6d 65 73 70 61 63 65 73 20 6d 75 73 74 20 65 6e 64 20 77 69 74 68 20 "psr-4.namespaces.must.end.with.
8bb80 61 20 6e 61 6d 65 73 70 61 63 65 20 73 65 70 61 72 61 74 6f 72 2c 20 27 24 6e 61 6d 65 73 70 61 a.namespace.separator,.'$namespa
8bba0 63 65 27 20 64 6f 65 73 20 6e 6f 74 2c 20 75 73 65 20 27 24 6e 61 6d 65 73 70 61 63 65 5c 5c 27 ce'.does.not,.use.'$namespace\\'
8bbc0 2e 22 29 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .");.}.}.}.}.........public.func
8bbe0 74 69 6f 6e 20 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 28 61 72 72 61 79 20 24 70 61 63 6b 61 tion.parseAutoloads(array.$packa
8bc00 67 65 4d 61 70 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 geMap,.PackageInterface.$mainPac
8bc20 6b 61 67 65 29 0a 7b 0a 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 5f kage).{.$mainPackageMap.=.array_
8bc40 73 68 69 66 74 28 24 70 61 63 6b 61 67 65 4d 61 70 29 3b 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 shift($packageMap);.$sortedPacka
8bc60 67 65 4d 61 70 20 3d 20 24 74 68 69 73 2d 3e 73 6f 72 74 50 61 63 6b 61 67 65 4d 61 70 28 24 70 geMap.=.$this->sortPackageMap($p
8bc80 61 63 6b 61 67 65 4d 61 70 29 3b 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 5b 5d 20 ackageMap);.$sortedPackageMap[].
8bca0 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 3b 0a 61 72 72 61 79 5f 75 6e 73 68 69 66 74 =.$mainPackageMap;.array_unshift
8bcc0 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 4d 61 70 29 3b 0a ($packageMap,.$mainPackageMap);.
8bce0 0a 24 70 73 72 30 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 .$psr0.=.$this->parseAutoloadsTy
8bd00 70 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 27 70 73 72 2d 30 27 2c 20 24 6d 61 69 6e 50 61 pe($packageMap,.'psr-0',.$mainPa
8bd20 63 6b 61 67 65 29 3b 0a 24 70 73 72 34 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f ckage);.$psr4.=.$this->parseAuto
8bd40 6c 6f 61 64 73 54 79 70 65 28 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 27 70 73 72 2d 34 27 2c 20 loadsType($packageMap,.'psr-4',.
8bd60 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 24 63 6c 61 73 73 6d 61 70 20 3d 20 24 74 68 69 73 $mainPackage);.$classmap.=.$this
8bd80 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 24 73 6f 72 74 65 64 50 61 63 6b ->parseAutoloadsType($sortedPack
8bda0 61 67 65 4d 61 70 2c 20 27 63 6c 61 73 73 6d 61 70 27 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 ageMap,.'classmap',.$mainPackage
8bdc0 29 3b 0a 24 66 69 6c 65 73 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 );.$files.=.$this->parseAutoload
8bde0 73 54 79 70 65 28 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 2c 20 27 66 69 6c 65 73 27 sType($sortedPackageMap,.'files'
8be00 2c 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 3b 0a 0a 6b 72 73 6f 72 74 28 24 70 73 72 30 29 3b ,.$mainPackage);..krsort($psr0);
8be20 0a 6b 72 73 6f 72 74 28 24 70 73 72 34 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 70 .krsort($psr4);..return.array('p
8be40 73 72 2d 30 27 20 3d 3e 20 24 70 73 72 30 2c 20 27 70 73 72 2d 34 27 20 3d 3e 20 24 70 73 72 34 sr-0'.=>.$psr0,.'psr-4'.=>.$psr4
8be60 2c 20 27 63 6c 61 73 73 6d 61 70 27 20 3d 3e 20 24 63 6c 61 73 73 6d 61 70 2c 20 27 66 69 6c 65 ,.'classmap'.=>.$classmap,.'file
8be80 73 27 20 3d 3e 20 24 66 69 6c 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 s'.=>.$files);.}........public.f
8bea0 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4c 6f 61 64 65 72 28 61 72 72 61 79 20 24 61 75 74 6f unction.createLoader(array.$auto
8bec0 6c 6f 61 64 73 29 0a 7b 0a 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 43 6c 61 73 73 4c 6f 61 64 loads).{.$loader.=.new.ClassLoad
8bee0 65 72 28 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 er();..if.(isset($autoloads['psr
8bf00 2d 30 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 -0'])).{.foreach.($autoloads['ps
8bf20 72 2d 30 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a r-0'].as.$namespace.=>.$path).{.
8bf40 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 3b $loader->add($namespace,.$path);
8bf60 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 2d .}.}..if.(isset($autoloads['psr-
8bf80 34 27 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 73 5b 27 70 73 72 4'])).{.foreach.($autoloads['psr
8bfa0 2d 34 27 5d 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 24 -4'].as.$namespace.=>.$path).{.$
8bfc0 6c 6f 61 64 65 72 2d 3e 61 64 64 50 73 72 34 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 61 74 loader->addPsr4($namespace,.$pat
8bfe0 68 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a 7d 0a 0a 70 72 6f 74 h);.}.}..return.$loader;.}..prot
8c000 65 63 74 65 64 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 46 69 ected.function.getIncludePathsFi
8c020 6c 65 28 61 72 72 61 79 20 24 70 61 63 6b 61 67 65 4d 61 70 2c 20 46 69 6c 65 73 79 73 74 65 6d le(array.$packageMap,.Filesystem
8c040 20 24 66 69 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 .$filesystem,.$basePath,.$vendor
8c060 50 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 Path,.$vendorPathCode,.$appBaseD
8c080 69 72 43 6f 64 65 29 0a 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 irCode).{.$includePaths.=.array(
8c0a0 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4d 61 70 20 61 73 20 24 69 74 65 );..foreach.($packageMap.as.$ite
8c0c0 6d 29 20 7b 0a 6c 69 73 74 28 24 70 61 63 6b 61 67 65 2c 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 m).{.list($package,.$installPath
8c0e0 29 20 3d 20 24 69 74 65 6d 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 ).=.$item;..if.(null.!==.$packag
8c100 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 73 74 72 6c 65 6e 28 24 70 61 63 e->getTargetDir().&&.strlen($pac
8c120 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 20 3e 20 30 29 20 7b 0a 24 69 6e kage->getTargetDir()).>.0).{.$in
8c140 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 74 68 2c stallPath.=.substr($installPath,
8c160 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 54 61 72 .0,.-strlen('/'.$package->getTar
8c180 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 61 67 65 getDir()));.}..foreach.($package
8c1a0 2d 3e 67 65 74 49 6e 63 6c 75 64 65 50 61 74 68 73 28 29 20 61 73 20 24 69 6e 63 6c 75 64 65 50 ->getIncludePaths().as.$includeP
8c1c0 61 74 68 29 20 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 74 72 69 6d 28 24 69 6e 63 6c ath).{.$includePath.=.trim($incl
8c1e0 75 64 65 50 61 74 68 2c 20 27 2f 27 29 3b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 5b 5d 20 3d udePath,.'/');.$includePaths[].=
8c200 20 65 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 20 3f 20 24 69 6e 63 6c 75 64 65 50 .empty($installPath).?.$includeP
8c220 61 74 68 20 3a 20 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 69 6e 63 6c 75 64 65 50 ath.:.$installPath.'/'.$includeP
8c240 61 74 68 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 63 6c 75 64 65 50 61 74 68 73 29 20 7b 0a ath;.}.}..if.(!$includePaths).{.
8c260 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 43 6f 64 65 20 3d 20 27 return;.}..$includePathsCode.=.'
8c280 27 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 61 73 20 24 70 61 ';.foreach.($includePaths.as.$pa
8c2a0 74 68 29 20 7b 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 43 6f 64 65 20 2e 3d 20 22 20 20 20 20 th).{.$includePathsCode..=."....
8c2c0 22 20 2e 20 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 43 6f 64 65 28 24 66 69 6c 65 73 79 73 74 "...$this->getPathCode($filesyst
8c2e0 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 70 61 74 em,.$basePath,.$vendorPath,.$pat
8c300 68 29 20 2e 20 22 2c 5c 6e 22 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 h)...",\n";.}..return.<<<EOF.<?p
8c320 68 70 0a 0a 2f 2f 20 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 20 40 67 65 6e 65 72 61 hp..//.include_paths.php.@genera
8c340 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 24 ted.by.Composer..\$vendorDir.=.$
8c360 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 70 vendorPathCode;.\$baseDir.=.$app
8c380 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 69 6e 63 BaseDirCode;..return.array(.$inc
8c3a0 6c 75 64 65 50 61 74 68 73 43 6f 64 65 29 3b 0a 0a 45 4f 46 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 ludePathsCode);..EOF;.}..protect
8c3c0 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 6c 75 64 65 46 69 6c 65 73 46 69 6c 65 28 ed.function.getIncludeFilesFile(
8c3e0 61 72 72 61 79 20 24 66 69 6c 65 73 2c 20 46 69 6c 65 73 79 73 74 65 6d 20 24 66 69 6c 65 73 79 array.$files,.Filesystem.$filesy
8c400 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 76 stem,.$basePath,.$vendorPath,.$v
8c420 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 2c 20 24 61 70 70 42 61 73 65 44 69 72 43 6f 64 65 29 0a endorPathCode,.$appBaseDirCode).
8c440 7b 0a 24 66 69 6c 65 73 43 6f 64 65 20 3d 20 27 27 3b 0a 24 66 69 6c 65 73 20 3d 20 6e 65 77 20 {.$filesCode.=.'';.$files.=.new.
8c460 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 28 6e 65 77 20 5c \RecursiveIteratorIterator(new.\
8c480 52 65 63 75 72 73 69 76 65 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 24 66 69 6c 65 73 29 29 3b RecursiveArrayIterator($files));
8c4a0 0a 66 6f 72 65 61 63 68 20 28 24 66 69 6c 65 73 20 61 73 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c .foreach.($files.as.$functionFil
8c4c0 65 29 20 7b 0a 24 66 69 6c 65 73 43 6f 64 65 20 2e 3d 20 27 20 20 20 20 27 2e 24 74 68 69 73 2d e).{.$filesCode..=.'....'.$this-
8c4e0 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 62 61 73 65 50 >getPathCode($filesystem,.$baseP
8c500 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2c 20 24 66 75 6e 63 74 69 6f 6e 46 69 6c 65 29 ath,.$vendorPath,.$functionFile)
8c520 2e 22 2c 5c 6e 22 3b 0a 7d 0a 0a 69 66 20 28 21 24 66 69 6c 65 73 43 6f 64 65 29 20 7b 0a 72 65 .",\n";.}..if.(!$filesCode).{.re
8c540 74 75 72 6e 20 46 41 4c 53 45 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 3c 3c 3c 45 4f 46 0a 3c 3f 70 turn.FALSE;.}..return.<<<EOF.<?p
8c560 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 66 69 6c 65 73 2e 70 68 70 20 40 67 65 6e 65 72 hp..//.autoload_files.php.@gener
8c580 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 5c 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 ated.by.Composer..\$vendorDir.=.
8c5a0 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 5c 24 62 61 73 65 44 69 72 20 3d 20 24 61 70 $vendorPathCode;.\$baseDir.=.$ap
8c5c0 70 42 61 73 65 44 69 72 43 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 24 66 69 pBaseDirCode;..return.array(.$fi
8c5e0 6c 65 73 43 6f 64 65 29 3b 0a 0a 45 4f 46 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e lesCode);..EOF;.}..protected.fun
8c600 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 66 69 ction.getPathCode(Filesystem.$fi
8c620 6c 65 73 79 73 74 65 6d 2c 20 24 62 61 73 65 50 61 74 68 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 lesystem,.$basePath,.$vendorPath
8c640 2c 20 24 70 61 74 68 29 0a 7b 0a 69 66 20 28 21 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 41 ,.$path).{.if.(!$filesystem->isA
8c660 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 62 bsolutePath($path)).{.$path.=.$b
8c680 61 73 65 50 61 74 68 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 24 70 61 74 68 20 3d asePath...'/'...$path;.}.$path.=
8c6a0 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 68 28 24 70 61 74 .$filesystem->normalizePath($pat
8c6c0 68 29 3b 0a 0a 24 62 61 73 65 44 69 72 20 3d 20 27 27 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 h);..$baseDir.=.'';.if.(strpos($
8c6e0 70 61 74 68 2e 27 2f 27 2c 20 24 76 65 6e 64 6f 72 50 61 74 68 2e 27 2f 27 29 20 3d 3d 3d 20 30 path.'/',.$vendorPath.'/').===.0
8c700 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 20 73 74 72 6c 65 6e ).{.$path.=.substr($path,.strlen
8c720 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 3d 20 27 24 76 65 6e ($vendorPath));.$baseDir.=.'$ven
8c740 64 6f 72 44 69 72 27 3b 0a 0a 69 66 20 28 24 70 61 74 68 20 21 3d 3d 20 66 61 6c 73 65 29 20 7b dorDir';..if.($path.!==.false).{
8c760 0a 24 62 61 73 65 44 69 72 20 2e 3d 20 22 20 2e 20 22 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 .$baseDir..=."...";.}.}.else.{.$
8c780 70 61 74 68 20 3d 20 24 66 69 6c 65 73 79 73 74 65 6d 2d 3e 6e 6f 72 6d 61 6c 69 7a 65 50 61 74 path.=.$filesystem->normalizePat
8c7a0 68 28 24 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 h($filesystem->findShortestPath(
8c7c0 24 62 61 73 65 50 61 74 68 2c 20 24 70 61 74 68 2c 20 74 72 75 65 29 29 3b 0a 69 66 20 28 21 24 $basePath,.$path,.true));.if.(!$
8c7e0 66 69 6c 65 73 79 73 74 65 6d 2d 3e 69 73 41 62 73 6f 6c 75 74 65 50 61 74 68 28 24 70 61 74 68 filesystem->isAbsolutePath($path
8c800 29 29 20 7b 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 24 )).{.$baseDir.=.'$baseDir...';.$
8c820 70 61 74 68 20 3d 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 70 72 65 path.=.'/'...$path;.}.}..if.(pre
8c840 67 5f 6d 61 74 63 68 28 27 2f 5c 2e 70 68 61 72 24 2f 27 2c 20 24 70 61 74 68 29 29 20 7b 0a 24 g_match('/\.phar$/',.$path)).{.$
8c860 62 61 73 65 44 69 72 20 3d 20 22 27 70 68 61 72 3a 2f 2f 27 20 2e 20 22 20 2e 20 24 62 61 73 65 baseDir.=."'phar://'..."...$base
8c880 44 69 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 62 61 73 65 44 69 72 20 2e 20 28 28 24 70 61 74 Dir;.}..return.$baseDir...(($pat
8c8a0 68 20 21 3d 3d 20 66 61 6c 73 65 29 20 3f 20 76 61 72 5f 65 78 70 6f 72 74 28 24 70 61 74 68 2c h.!==.false).?.var_export($path,
8c8c0 20 74 72 75 65 29 20 3a 20 22 22 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 .true).:."");.}..protected.funct
8c8e0 69 6f 6e 20 67 65 74 41 75 74 6f 6c 6f 61 64 46 69 6c 65 28 24 76 65 6e 64 6f 72 50 61 74 68 54 ion.getAutoloadFile($vendorPathT
8c900 6f 54 61 72 67 65 74 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 29 0a 7b 0a 72 65 74 75 72 oTargetDirCode,.$suffix).{.retur
8c920 6e 20 3c 3c 3c 41 55 54 4f 4c 4f 41 44 0a 3c 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 n.<<<AUTOLOAD.<?php..//.autoload
8c940 2e 70 68 70 20 40 67 65 6e 65 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 72 65 71 .php.@generated.by.Composer..req
8c960 75 69 72 65 5f 6f 6e 63 65 20 24 76 65 6e 64 6f 72 50 61 74 68 54 6f 54 61 72 67 65 74 44 69 72 uire_once.$vendorPathToTargetDir
8c980 43 6f 64 65 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 27 3b 0a 0a 72 65 Code...'/autoload_real.php';..re
8c9a0 74 75 72 6e 20 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 turn.ComposerAutoloaderInit$suff
8c9c0 69 78 3a 3a 67 65 74 4c 6f 61 64 65 72 28 29 3b 0a 0a 41 55 54 4f 4c 4f 41 44 3b 0a 7d 0a 0a 70 ix::getLoader();..AUTOLOAD;.}..p
8c9e0 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 52 65 61 rotected.function.getAutoloadRea
8ca00 6c 46 69 6c 65 28 24 75 73 65 43 6c 61 73 73 4d 61 70 2c 20 24 75 73 65 49 6e 63 6c 75 64 65 50 lFile($useClassMap,.$useIncludeP
8ca20 61 74 68 2c 20 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 2c 20 24 75 73 65 49 6e 63 6c 75 ath,.$targetDirLoader,.$useInclu
8ca40 64 65 46 69 6c 65 73 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 deFiles,.$vendorPathCode,.$appBa
8ca60 73 65 44 69 72 43 6f 64 65 2c 20 24 73 75 66 66 69 78 2c 20 24 75 73 65 47 6c 6f 62 61 6c 49 6e seDirCode,.$suffix,.$useGlobalIn
8ca80 63 6c 75 64 65 50 61 74 68 2c 20 24 70 72 65 70 65 6e 64 41 75 74 6f 6c 6f 61 64 65 72 29 0a 7b cludePath,.$prependAutoloader).{
8caa0 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 0a 24 66 69 6c 65 20 3d 20 3c 3c 3c 48 45 41 44 45 52 0a 3c .............$file.=.<<<HEADER.<
8cac0 3f 70 68 70 0a 0a 2f 2f 20 61 75 74 6f 6c 6f 61 64 5f 72 65 61 6c 2e 70 68 70 20 40 67 65 6e 65 ?php..//.autoload_real.php.@gene
8cae0 72 61 74 65 64 20 62 79 20 43 6f 6d 70 6f 73 65 72 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 rated.by.Composer..class.Compose
8cb00 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 78 0a 7b 0a 20 20 20 20 70 72 69 rAutoloaderInit$suffix.{.....pri
8cb20 76 61 74 65 20 73 74 61 74 69 63 20 5c 24 6c 6f 61 64 65 72 3b 0a 0a 20 20 20 20 70 75 62 6c 69 vate.static.\$loader;......publi
8cb40 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 c.static.function.loadClassLoade
8cb60 72 28 5c 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 27 43 6f r(\$class).....{.........if.('Co
8cb80 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 72 27 20 3d mposer\\Autoload\\ClassLoader'.=
8cba0 3d 3d 20 5c 24 63 6c 61 73 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 71 75 69 72 ==.\$class).{.............requir
8cbc0 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 70 27 3b 0a e.__DIR__...'/ClassLoader.php';.
8cbe0 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 73 74 61 74 ........}.....}......public.stat
8cc00 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4c 6f 61 64 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 ic.function.getLoader().....{...
8cc20 20 20 20 20 20 20 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 ......if.(null.!==.self::\$loade
8cc40 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 5c 24 r).{.............return.self::\$
8cc60 6c 6f 61 64 65 72 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 loader;.........}..........spl_a
8cc80 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 utoload_register(array('Composer
8cca0 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 78 27 2c 20 27 6c 6f 61 64 43 6c 61 AutoloaderInit$suffix',.'loadCla
8ccc0 73 73 4c 6f 61 64 65 72 27 29 2c 20 74 72 75 65 2c 20 24 70 72 65 70 65 6e 64 41 75 74 6f 6c 6f ssLoader'),.true,.$prependAutolo
8cce0 61 64 65 72 29 3b 0a 20 20 20 20 20 20 20 20 73 65 6c 66 3a 3a 5c 24 6c 6f 61 64 65 72 20 3d 20 ader);.........self::\$loader.=.
8cd00 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 5c 41 75 74 6f 6c \$loader.=.new.\\Composer\\Autol
8cd20 6f 61 64 5c 5c 43 6c 61 73 73 4c 6f 61 64 65 72 28 29 3b 0a 20 20 20 20 20 20 20 20 73 70 6c 5f oad\\ClassLoader();.........spl_
8cd40 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 27 43 6f 6d 70 6f autoload_unregister(array('Compo
8cd60 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 78 27 2c 20 27 6c 6f 61 64 serAutoloaderInit$suffix',.'load
8cd80 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 29 3b 0a 0a 20 20 20 20 20 20 20 20 5c 24 76 65 6e 64 6f ClassLoader'));..........\$vendo
8cda0 72 44 69 72 20 3d 20 24 76 65 6e 64 6f 72 50 61 74 68 43 6f 64 65 3b 0a 20 20 20 20 20 20 20 20 rDir.=.$vendorPathCode;.........
8cdc0 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 0a 0a 0a 48 \$baseDir.=.$appBaseDirCode;...H
8cde0 45 41 44 45 52 3b 0a 0a 69 66 20 28 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 29 20 7b 0a 24 EADER;..if.($useIncludePath).{.$
8ce00 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 49 4e 43 4c 55 44 45 5f 50 41 54 48 27 0a 20 20 20 20 20 20 file..=.<<<'INCLUDE_PATH'.......
8ce20 20 20 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f ..$includePaths.=.require.__DIR_
8ce40 5f 20 2e 20 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 _...'/include_paths.php';.......
8ce60 20 20 61 72 72 61 79 5f 70 75 73 68 28 24 69 6e 63 6c 75 64 65 50 61 74 68 73 2c 20 67 65 74 5f ..array_push($includePaths,.get_
8ce80 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 29 29 3b 0a 20 20 20 20 20 20 20 20 73 65 74 5f 69 6e 63 include_path());.........set_inc
8cea0 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 54 4f 52 2c 20 24 lude_path(join(PATH_SEPARATOR,.$
8cec0 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 50 41 54 48 3b 0a includePaths));...INCLUDE_PATH;.
8cee0 7d 0a 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 50 53 52 30 27 0a 20 20 20 20 20 20 20 20 24 6d }..$file..=.<<<'PSR0'.........$m
8cf00 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 ap.=.require.__DIR__...'/autoloa
8cf20 64 5f 6e 61 6d 65 73 70 61 63 65 73 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 d_namespaces.php';.........forea
8cf40 63 68 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 ch.($map.as.$namespace.=>.$path)
8cf60 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 73 65 74 28 24 6e 61 6d .{.............$loader->set($nam
8cf80 65 73 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 50 53 52 30 espace,.$path);.........}...PSR0
8cfa0 3b 0a 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 50 53 52 34 27 0a 20 20 20 20 20 20 20 20 24 6d ;..$file..=.<<<'PSR4'.........$m
8cfc0 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 ap.=.require.__DIR__...'/autoloa
8cfe0 64 5f 70 73 72 34 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 6d d_psr4.php';.........foreach.($m
8d000 61 70 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 29 20 7b 0a 20 20 20 ap.as.$namespace.=>.$path).{....
8d020 20 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 73 65 74 50 73 72 34 28 24 6e 61 6d 65 73 .........$loader->setPsr4($names
8d040 70 61 63 65 2c 20 24 70 61 74 68 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 50 53 52 34 3b 0a pace,.$path);.........}...PSR4;.
8d060 0a 69 66 20 28 24 75 73 65 43 6c 61 73 73 4d 61 70 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c .if.($useClassMap).{.$file..=.<<
8d080 3c 27 43 4c 41 53 53 4d 41 50 27 0a 20 20 20 20 20 20 20 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 <'CLASSMAP'.........$classMap.=.
8d0a0 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 63 6c 61 require.__DIR__...'/autoload_cla
8d0c0 73 73 6d 61 70 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 69 66 20 28 24 63 6c 61 73 73 4d 61 ssmap.php';.........if.($classMa
8d0e0 70 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 61 64 64 43 6c 61 p).{.............$loader->addCla
8d100 73 73 4d 61 70 28 24 63 6c 61 73 73 4d 61 70 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 43 4c ssMap($classMap);.........}...CL
8d120 41 53 53 4d 41 50 3b 0a 7d 0a 0a 69 66 20 28 24 75 73 65 47 6c 6f 62 61 6c 49 6e 63 6c 75 64 65 ASSMAP;.}..if.($useGlobalInclude
8d140 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 50 41 54 48 Path).{.$file..=.<<<'INCLUDEPATH
8d160 27 0a 20 20 20 20 20 20 20 20 24 6c 6f 61 64 65 72 2d 3e 73 65 74 55 73 65 49 6e 63 6c 75 64 65 '.........$loader->setUseInclude
8d180 50 61 74 68 28 74 72 75 65 29 3b 0a 0a 49 4e 43 4c 55 44 45 50 41 54 48 3b 0a 7d 0a 0a 69 66 20 Path(true);..INCLUDEPATH;.}..if.
8d1a0 28 24 74 61 72 67 65 74 44 69 72 4c 6f 61 64 65 72 29 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c ($targetDirLoader).{.$file..=.<<
8d1c0 3c 52 45 47 49 53 54 45 52 5f 41 55 54 4f 4c 4f 41 44 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 <REGISTER_AUTOLOAD.........spl_a
8d1e0 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 27 43 6f 6d 70 6f 73 65 72 utoload_register(array('Composer
8d200 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 24 73 75 66 66 69 78 27 2c 20 27 61 75 74 6f 6c 6f 61 AutoloaderInit$suffix',.'autoloa
8d220 64 27 29 2c 20 74 72 75 65 2c 20 74 72 75 65 29 3b 0a 0a 0a 52 45 47 49 53 54 45 52 5f 41 55 54 d'),.true,.true);...REGISTER_AUT
8d240 4f 4c 4f 41 44 3b 0a 0a 7d 0a 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 52 45 47 49 53 54 45 52 5f OLOAD;..}..$file..=.<<<REGISTER_
8d260 4c 4f 41 44 45 52 0a 20 20 20 20 20 20 20 20 5c 24 6c 6f 61 64 65 72 2d 3e 72 65 67 69 73 74 65 LOADER.........\$loader->registe
8d280 72 28 24 70 72 65 70 65 6e 64 41 75 74 6f 6c 6f 61 64 65 72 29 3b 0a 0a 0a 52 45 47 49 53 54 45 r($prependAutoloader);...REGISTE
8d2a0 52 5f 4c 4f 41 44 45 52 3b 0a 0a 69 66 20 28 24 75 73 65 49 6e 63 6c 75 64 65 46 69 6c 65 73 29 R_LOADER;..if.($useIncludeFiles)
8d2c0 20 7b 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 27 49 4e 43 4c 55 44 45 5f 46 49 4c 45 53 27 0a 20 .{.$file..=.<<<'INCLUDE_FILES'..
8d2e0 20 20 20 20 20 20 20 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 20 3d 20 72 65 71 75 69 72 65 20 5f .......$includeFiles.=.require._
8d300 5f 44 49 52 5f 5f 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 66 69 6c 65 73 2e 70 68 70 27 3b 0a _DIR__...'/autoload_files.php';.
8d320 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 69 6e 63 6c 75 64 65 46 69 6c 65 73 20 61 ........foreach.($includeFiles.a
8d340 73 20 24 66 69 6c 65 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 72 65 71 75 69 72 65 20 24 s.$file).{.............require.$
8d360 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 0a 49 4e 43 4c 55 44 45 5f 46 49 4c 45 53 3b file;.........}...INCLUDE_FILES;
8d380 0a 0a 7d 0a 0a 24 66 69 6c 65 20 2e 3d 20 3c 3c 3c 4d 45 54 48 4f 44 5f 46 4f 4f 54 45 52 0a 20 ..}..$file..=.<<<METHOD_FOOTER..
8d3a0 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 5c 24 6c 6f 61 64 65 72 3b 0a 20 20 20 20 7d 0a 0a 4d .......return.\$loader;.....}..M
8d3c0 45 54 48 4f 44 5f 46 4f 4f 54 45 52 3b 0a 0a 24 66 69 6c 65 20 2e 3d 20 24 74 61 72 67 65 74 44 ETHOD_FOOTER;..$file..=.$targetD
8d3e0 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
8d400 54 45 52 0a 7d 0a 0a 46 4f 4f 54 45 52 3b 0a 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e TER.}..FOOTER;..}..protected.fun
8d420 63 74 69 6f 6e 20 70 61 72 73 65 41 75 74 6f 6c 6f 61 64 73 54 79 70 65 28 61 72 72 61 79 20 24 ction.parseAutoloadsType(array.$
8d440 70 61 63 6b 61 67 65 4d 61 70 2c 20 24 74 79 70 65 2c 20 50 61 63 6b 61 67 65 49 6e 74 65 72 66 packageMap,.$type,.PackageInterf
8d460 61 63 65 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 29 0a 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 20 3d ace.$mainPackage).{.$autoloads.=
8d480 20 61 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 4d 61 70 20 .array();..foreach.($packageMap.
8d4a0 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 69 6e 73 74 as.$item).{.list($package,.$inst
8d4c0 61 6c 6c 50 61 74 68 29 20 3d 20 24 69 74 65 6d 3b 0a 0a 24 61 75 74 6f 6c 6f 61 64 20 3d 20 24 allPath).=.$item;..$autoload.=.$
8d4e0 70 61 63 6b 61 67 65 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 28 29 3b 0a 0a 0a 20 69 66 20 28 21 package->getAutoload();....if.(!
8d500 69 73 73 65 74 28 24 61 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 29 20 7c 7c 20 21 69 73 5f 61 isset($autoload[$type]).||.!is_a
8d520 72 72 61 79 28 24 61 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e rray($autoload[$type])).{.contin
8d540 75 65 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 ue;.}.if.(null.!==.$package->get
8d560 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 24 70 61 63 6b 61 67 65 20 21 3d 3d 20 24 6d 61 69 TargetDir().&&.$package.!==.$mai
8d580 6e 50 61 63 6b 61 67 65 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 50 61 74 68 20 3d 20 73 75 62 73 74 nPackage).{.$installPath.=.subst
8d5a0 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 2f 27 2e 24 r($installPath,.0,.-strlen('/'.$
8d5c0 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 0a 0a 66 6f package->getTargetDir()));.}..fo
8d5e0 72 65 61 63 68 20 28 24 61 75 74 6f 6c 6f 61 64 5b 24 74 79 70 65 5d 20 61 73 20 24 6e 61 6d 65 reach.($autoload[$type].as.$name
8d600 73 70 61 63 65 20 3d 3e 20 24 70 61 74 68 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 space.=>.$paths).{.foreach.((arr
8d620 61 79 29 20 24 70 61 74 68 73 20 61 73 20 24 70 61 74 68 29 20 7b 0a 0a 20 69 66 20 28 24 74 79 ay).$paths.as.$path).{...if.($ty
8d640 70 65 20 3d 3d 3d 20 27 66 69 6c 65 73 27 20 26 26 20 24 70 61 63 6b 61 67 65 20 3d 3d 3d 20 24 pe.===.'files'.&&.$package.===.$
8d660 6d 61 69 6e 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 mainPackage.&&.$package->getTarg
8d680 65 74 44 69 72 28 29 20 26 26 20 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 69 6e 73 74 61 6c 6c etDir().&&.!is_readable($install
8d6a0 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 29 29 20 7b 0a 24 74 61 72 67 65 74 44 69 72 20 3d 20 Path.'/'.$path)).{.$targetDir.=.
8d6c0 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 3c 64 69 72 73 65 70 5c 5c 3e 27 2c 20 27 5b 5c 5c str_replace('\\<dirsep\\>',.'[\\
8d6e0 5c 5c 2f 5d 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 \\/]',.preg_quote(str_replace(ar
8d700 72 61 79 28 27 2f 27 2c 20 27 5c 5c 27 29 2c 20 27 3c 64 69 72 73 65 70 3e 27 2c 20 24 70 61 63 ray('/',.'\\'),.'<dirsep>',.$pac
8d720 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 29 29 29 3b 0a 24 70 61 74 68 20 3d kage->getTargetDir())));.$path.=
8d740 20 6c 74 72 69 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 27 2e 24 74 61 72 67 65 74 .ltrim(preg_replace('{^'.$target
8d760 44 69 72 2e 27 7d 27 2c 20 27 27 2c 20 6c 74 72 69 6d 28 24 70 61 74 68 2c 20 27 5c 5c 2f 27 29 Dir.'}',.'',.ltrim($path,.'\\/')
8d780 29 2c 20 27 5c 5c 2f 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 66 ),.'\\/');.}....if.($type.===.'f
8d7a0 69 6c 65 73 27 20 26 26 20 24 70 61 63 6b 61 67 65 20 21 3d 3d 20 24 6d 61 69 6e 50 61 63 6b 61 iles'.&&.$package.!==.$mainPacka
8d7c0 67 65 20 26 26 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 20 26 ge.&&.$package->getTargetDir().&
8d7e0 26 20 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e &.!is_readable($installPath.'/'.
8d800 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 $path)).{.$path.=.$package->getT
8d820 61 72 67 65 74 44 69 72 28 29 20 2e 20 27 2f 27 20 2e 20 24 70 61 74 68 3b 0a 7d 0a 0a 0a 20 69 argetDir()...'/'...$path;.}....i
8d840 66 20 28 24 74 79 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 20 26 26 20 24 70 61 63 6b f.($type.===.'classmap'.&&.$pack
8d860 61 67 65 20 3d 3d 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 age.===.$mainPackage.&&.$package
8d880 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 26 26 20 21 69 73 5f 72 65 61 64 61 62 6c 65 ->getTargetDir().&&.!is_readable
8d8a0 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 29 29 20 7b 0a 24 74 61 72 ($installPath.'/'.$path)).{.$tar
8d8c0 67 65 74 44 69 72 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 3c 64 69 72 73 65 70 5c getDir.=.str_replace('\\<dirsep\
8d8e0 5c 3e 27 2c 20 27 5b 5c 5c 5c 5c 2f 5d 27 2c 20 70 72 65 67 5f 71 75 6f 74 65 28 73 74 72 5f 72 \>',.'[\\\\/]',.preg_quote(str_r
8d900 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 2f 27 2c 20 27 5c 5c 27 29 2c 20 27 3c 64 69 72 73 65 eplace(array('/',.'\\'),.'<dirse
8d920 70 3e 27 2c 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 29 29 p>',.$package->getTargetDir())))
8d940 3b 0a 24 70 61 74 68 20 3d 20 6c 74 72 69 6d 28 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e ;.$path.=.ltrim(preg_replace('{^
8d960 27 2e 24 74 61 72 67 65 74 44 69 72 2e 27 7d 27 2c 20 27 27 2c 20 6c 74 72 69 6d 28 24 70 61 74 '.$targetDir.'}',.'',.ltrim($pat
8d980 68 2c 20 27 5c 5c 2f 27 29 29 2c 20 27 5c 5c 2f 27 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 74 79 h,.'\\/')),.'\\/');.}....if.($ty
8d9a0 70 65 20 3d 3d 3d 20 27 63 6c 61 73 73 6d 61 70 27 20 26 26 20 24 70 61 63 6b 61 67 65 20 21 3d pe.===.'classmap'.&&.$package.!=
8d9c0 3d 20 24 6d 61 69 6e 50 61 63 6b 61 67 65 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 =.$mainPackage.&&.$package->getT
8d9e0 61 72 67 65 74 44 69 72 28 29 20 26 26 20 21 69 73 5f 72 65 61 64 61 62 6c 65 28 24 69 6e 73 74 argetDir().&&.!is_readable($inst
8da00 61 6c 6c 50 61 74 68 2e 27 2f 27 2e 24 70 61 74 68 29 29 20 7b 0a 24 70 61 74 68 20 3d 20 24 70 allPath.'/'.$path)).{.$path.=.$p
8da20 61 63 6b 61 67 65 2d 3e 67 65 74 54 61 72 67 65 74 44 69 72 28 29 20 2e 20 27 2f 27 20 2e 20 24 ackage->getTargetDir()...'/'...$
8da40 70 61 74 68 3b 0a 7d 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 69 6e 73 74 61 6c 6c 50 61 74 68 29 path;.}..if.(empty($installPath)
8da60 29 20 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 24 6e 61 6d 65 73 70 61 63 65 5d 5b 5d 20 3d 20 65 ).{.$autoloads[$namespace][].=.e
8da80 6d 70 74 79 28 24 70 61 74 68 29 20 3f 20 27 2e 27 20 3a 20 24 70 61 74 68 3b 0a 7d 20 65 6c 73 mpty($path).?.'.'.:.$path;.}.els
8daa0 65 20 7b 0a 24 61 75 74 6f 6c 6f 61 64 73 5b 24 6e 61 6d 65 73 70 61 63 65 5d 5b 5d 20 3d 20 24 e.{.$autoloads[$namespace][].=.$
8dac0 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 0a 7d 0a 7d 0a 0a installPath.'/'.$path;.}.}.}.}..
8dae0 72 65 74 75 72 6e 20 24 61 75 74 6f 6c 6f 61 64 73 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 return.$autoloads;.}..protected.
8db00 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 50 61 63 6b 61 67 65 4d 61 70 28 61 72 72 61 79 20 24 70 function.sortPackageMap(array.$p
8db20 61 63 6b 61 67 65 4d 61 70 29 0a 7b 0a 24 70 6f 73 69 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 ackageMap).{.$positions.=.array(
8db40 29 3b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 69 6e 64 65 78 65 73 20 3d 20 );.$names.=.array();.$indexes.=.
8db60 61 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 4d 61 70 20 61 array();..foreach.($packageMap.a
8db80 73 20 24 70 6f 73 69 74 69 6f 6e 20 3d 3e 20 24 69 74 65 6d 29 20 7b 0a 24 6d 61 69 6e 4e 61 6d s.$position.=>.$item).{.$mainNam
8dba0 65 20 3d 20 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 6e 61 6d 65 73 20 e.=.$item[0]->getName();.$names.
8dbc0 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 5f 66 69 6c 6c 5f 6b 65 79 73 28 24 69 =.array_merge(array_fill_keys($i
8dbe0 74 65 6d 5b 30 5d 2d 3e 67 65 74 4e 61 6d 65 73 28 29 2c 20 24 6d 61 69 6e 4e 61 6d 65 29 2c 20 tem[0]->getNames(),.$mainName),.
8dc00 24 6e 61 6d 65 73 29 3b 0a 24 6e 61 6d 65 73 5b 24 6d 61 69 6e 4e 61 6d 65 5d 20 3d 20 24 6d 61 $names);.$names[$mainName].=.$ma
8dc20 69 6e 4e 61 6d 65 3b 0a 24 69 6e 64 65 78 65 73 5b 24 6d 61 69 6e 4e 61 6d 65 5d 20 3d 20 24 70 inName;.$indexes[$mainName].=.$p
8dc40 6f 73 69 74 69 6f 6e 73 5b 24 6d 61 69 6e 4e 61 6d 65 5d 20 3d 20 24 70 6f 73 69 74 69 6f 6e 3b ositions[$mainName].=.$position;
8dc60 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 4d 61 70 20 61 73 20 24 69 74 65 .}..foreach.($packageMap.as.$ite
8dc80 6d 29 20 7b 0a 24 70 6f 73 69 74 69 6f 6e 20 3d 20 24 70 6f 73 69 74 69 6f 6e 73 5b 24 69 74 65 m).{.$position.=.$positions[$ite
8dca0 6d 5b 30 5d 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 3b 0a 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 m[0]->getName()];.foreach.(array
8dcc0 5f 6d 65 72 67 65 28 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 20 _merge($item[0]->getRequires(),.
8dce0 24 69 74 65 6d 5b 30 5d 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 61 73 20 24 $item[0]->getDevRequires()).as.$
8dd00 6c 69 6e 6b 29 20 7b 0a 24 74 61 72 67 65 74 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 link).{.$target.=.$link->getTarg
8dd20 65 74 28 29 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 6e 61 6d 65 73 5b 24 74 61 72 67 65 74 5d et();.if.(!isset($names[$target]
8dd40 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 74 61 72 67 65 74 20 3d 20 24 6e 61 6d )).{.continue;.}..$target.=.$nam
8dd60 65 73 5b 24 74 61 72 67 65 74 5d 3b 0a 69 66 20 28 24 70 6f 73 69 74 69 6f 6e 73 5b 24 74 61 72 es[$target];.if.($positions[$tar
8dd80 67 65 74 5d 20 3c 3d 20 24 70 6f 73 69 74 69 6f 6e 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d get].<=.$position).{.continue;.}
8dda0 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 6f 73 69 74 69 6f 6e 73 20 61 73 20 24 6b 65 79 20 3d 3e ..foreach.($positions.as.$key.=>
8ddc0 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 24 76 61 6c 75 65 20 3e 3d 20 24 70 6f 73 69 74 69 .$value).{.if.($value.>=.$positi
8dde0 6f 6e 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 24 70 6f 73 69 74 69 6f 6e 73 5b 24 6b 65 79 5d 2d on).{.break;.}.$positions[$key]-
8de00 2d 3b 0a 7d 0a 0a 24 70 6f 73 69 74 69 6f 6e 73 5b 24 74 61 72 67 65 74 5d 20 3d 20 24 70 6f 73 -;.}..$positions[$target].=.$pos
8de20 69 74 69 6f 6e 20 2d 20 31 3b 0a 7d 0a 61 73 6f 72 74 28 24 70 6f 73 69 74 69 6f 6e 73 29 3b 0a ition.-.1;.}.asort($positions);.
8de40 7d 0a 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 65 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a }..$sortedPackageMap.=.array();.
8de60 66 6f 72 65 61 63 68 20 28 61 72 72 61 79 5f 6b 65 79 73 28 24 70 6f 73 69 74 69 6f 6e 73 29 20 foreach.(array_keys($positions).
8de80 61 73 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 29 20 7b 0a 24 73 6f 72 74 65 64 50 61 63 6b 61 67 as.$packageName).{.$sortedPackag
8dea0 65 4d 61 70 5b 5d 20 3d 20 24 70 61 63 6b 61 67 65 4d 61 70 5b 24 69 6e 64 65 78 65 73 5b 24 70 eMap[].=.$packageMap[$indexes[$p
8dec0 61 63 6b 61 67 65 4e 61 6d 65 5d 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 73 6f 72 74 65 64 50 ackageName]];.}..return.$sortedP
8dee0 61 63 6b 61 67 65 4d 61 70 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ackageMap;.}.}.<?php............
8df00 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 75 73 .namespace.Composer\Autoload;.us
8df20 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 46 69 6e 64 65 e.Symfony\Component\Finder\Finde
8df40 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6c 61 73 73 4d 61 70 47 65 6e 65 72 61 74 6f 72 r;.......class.ClassMapGenerator
8df60 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 .{.......public.static.function.
8df80 64 75 6d 70 28 24 64 69 72 73 2c 20 24 66 69 6c 65 29 0a 7b 0a 24 6d 61 70 73 20 3d 20 61 72 72 dump($dirs,.$file).{.$maps.=.arr
8dfa0 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b ay();..foreach.($dirs.as.$dir).{
8dfc0 0a 24 6d 61 70 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6d 61 70 73 2c 20 73 74 61 74 .$maps.=.array_merge($maps,.stat
8dfe0 69 63 3a 3a 63 72 65 61 74 65 4d 61 70 28 24 64 69 72 29 29 3b 0a 7d 0a 0a 66 69 6c 65 5f 70 75 ic::createMap($dir));.}..file_pu
8e000 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c 65 2c 20 73 70 72 69 6e 74 66 28 27 3c 3f 70 68 70 t_contents($file,.sprintf('<?php
8e020 20 72 65 74 75 72 6e 20 25 73 3b 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6d 61 70 73 2c 20 .return.%s;',.var_export($maps,.
8e040 74 72 75 65 29 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 true)));.}............public.sta
8e060 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 4d 61 70 28 24 70 61 74 68 2c 20 24 77 tic.function.createMap($path,.$w
8e080 68 69 74 65 6c 69 73 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 69 73 5f 73 74 72 69 6e 67 hitelist.=.null).{.if.(is_string
8e0a0 28 24 70 61 74 68 29 29 20 7b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 70 61 74 68 29 29 20 7b ($path)).{.if.(is_file($path)).{
8e0c0 0a 24 70 61 74 68 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 28 .$path.=.array(new.\SplFileInfo(
8e0e0 24 70 61 74 68 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 $path));.}.elseif.(is_dir($path)
8e100 29 20 7b 0a 24 70 61 74 68 20 3d 20 46 69 6e 64 65 72 3a 3a 63 72 65 61 74 65 28 29 2d 3e 66 69 ).{.$path.=.Finder::create()->fi
8e120 6c 65 73 28 29 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 29 2d 3e 6e 61 6d 65 28 27 2f 5c 2e 28 les()->followLinks()->name('/\.(
8e140 70 68 70 7c 69 6e 63 29 24 2f 27 29 2d 3e 69 6e 28 24 70 61 74 68 29 3b 0a 7d 20 65 6c 73 65 20 php|inc)$/')->in($path);.}.else.
8e160 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 0a 27 {.throw.new.\RuntimeException(.'
8e180 43 6f 75 6c 64 20 6e 6f 74 20 73 63 61 6e 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 73 69 64 Could.not.scan.for.classes.insid
8e1a0 65 20 22 27 2e 24 70 61 74 68 2e 0a 27 22 20 77 68 69 63 68 20 64 6f 65 73 20 6e 6f 74 20 61 70 e."'.$path..'".which.does.not.ap
8e1c0 70 65 61 72 20 74 6f 20 62 65 20 61 20 66 69 6c 65 20 6e 6f 72 20 61 20 66 6f 6c 64 65 72 27 0a pear.to.be.a.file.nor.a.folder'.
8e1e0 29 3b 0a 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 );.}.}..$map.=.array();..foreach
8e200 20 28 24 70 61 74 68 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 66 69 6c 65 50 61 74 68 20 3d 20 .($path.as.$file).{.$filePath.=.
8e220 24 66 69 6c 65 2d 3e 67 65 74 52 65 61 6c 50 61 74 68 28 29 3b 0a 0a 69 66 20 28 21 69 6e 5f 61 $file->getRealPath();..if.(!in_a
8e240 72 72 61 79 28 70 61 74 68 69 6e 66 6f 28 24 66 69 6c 65 50 61 74 68 2c 20 50 41 54 48 49 4e 46 rray(pathinfo($filePath,.PATHINF
8e260 4f 5f 45 58 54 45 4e 53 49 4f 4e 29 2c 20 61 72 72 61 79 28 27 70 68 70 27 2c 20 27 69 6e 63 27 O_EXTENSION),.array('php',.'inc'
8e280 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 77 68 69 74 65 6c 69 73 ))).{.continue;.}..if.($whitelis
8e2a0 74 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 24 77 68 69 74 65 6c 69 73 74 2c 20 73 74 72 t.&&.!preg_match($whitelist,.str
8e2c0 74 72 28 24 66 69 6c 65 50 61 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 29 29 20 7b 0a 63 6f 6e tr($filePath,.'\\',.'/'))).{.con
8e2e0 74 69 6e 75 65 3b 0a 7d 0a 0a 24 63 6c 61 73 73 65 73 20 3d 20 73 65 6c 66 3a 3a 66 69 6e 64 43 tinue;.}..$classes.=.self::findC
8e300 6c 61 73 73 65 73 28 24 66 69 6c 65 50 61 74 68 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 63 6c lasses($filePath);..foreach.($cl
8e320 61 73 73 65 73 20 61 73 20 24 63 6c 61 73 73 29 20 7b 0a 24 6d 61 70 5b 24 63 6c 61 73 73 5d 20 asses.as.$class).{.$map[$class].
8e340 3d 20 24 66 69 6c 65 50 61 74 68 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 70 3b 0a 7d =.$filePath;.}.}..return.$map;.}
8e360 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 63 74 69 6f 6e .........private.static.function
8e380 20 66 69 6e 64 43 6c 61 73 73 65 73 28 24 70 61 74 68 29 0a 7b 0a 24 74 72 61 69 74 73 20 3d 20 .findClasses($path).{.$traits.=.
8e3a0 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 35 2e version_compare(PHP_VERSION,.'5.
8e3c0 34 27 2c 20 27 3c 27 29 20 3f 20 27 27 20 3a 20 27 7c 74 72 61 69 74 27 3b 0a 0a 74 72 79 20 7b 4',.'<').?.''.:.'|trait';..try.{
8e3e0 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 68 70 5f 73 74 72 69 70 5f 77 68 69 74 65 73 70 61 63 .$contents.=.php_strip_whitespac
8e400 65 28 24 70 61 74 68 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 e($path);.}.catch.(\Exception.$e
8e420 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(
8e440 27 43 6f 75 6c 64 20 6e 6f 74 20 73 63 61 6e 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 73 69 'Could.not.scan.for.classes.insi
8e460 64 65 20 27 2e 24 70 61 74 68 2e 22 3a 20 5c 6e 22 2e 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 de.'.$path.":.\n".$e->getMessage
8e480 28 29 2c 20 30 2c 20 24 65 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 (),.0,.$e);.}....if.(!preg_match
8e4a0 28 27 7b 5c 62 28 3f 3a 63 6c 61 73 73 7c 69 6e 74 65 72 66 61 63 65 27 2e 24 74 72 61 69 74 73 ('{\b(?:class|interface'.$traits
8e4c0 2e 27 29 5c 73 7d 69 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 .')\s}i',.$contents)).{.return.a
8e4e0 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 rray();.}....$contents.=.preg_re
8e500 70 6c 61 63 65 28 27 7b 3c 3c 3c 5c 27 3f 28 5c 77 2b 29 5c 27 3f 28 3f 3a 5c 72 5c 6e 7c 5c 6e place('{<<<\'?(\w+)\'?(?:\r\n|\n
8e520 7c 5c 72 29 28 3f 3a 2e 2a 3f 29 28 3f 3a 5c 72 5c 6e 7c 5c 6e 7c 5c 72 29 5c 5c 31 28 3f 3d 5c |\r)(?:.*?)(?:\r\n|\n|\r)\\1(?=\
8e540 72 5c 6e 7c 5c 6e 7c 5c 72 7c 3b 29 7d 73 27 2c 20 27 6e 75 6c 6c 27 2c 20 24 63 6f 6e 74 65 6e r\n|\n|\r|;)}s',.'null',.$conten
8e560 74 73 29 3b 0a 0a 20 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 ts);...$contents.=.preg_replace(
8e580 27 7b 22 5b 5e 22 5c 5c 5c 5c 5d 2a 28 5c 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d 2a 29 2a 22 7c 5c '{"[^"\\\\]*(\\\\.[^"\\\\]*)*"|\
8e5a0 27 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 28 5c 5c 5c 5c 2e 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 29 2a 5c 27 7d '[^\'\\\\]*(\\\\.[^\'\\\\]*)*\'}
8e5c0 73 27 2c 20 27 6e 75 6c 6c 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 20 69 66 20 28 73 75 s',.'null',.$contents);...if.(su
8e5e0 62 73 74 72 28 24 63 6f 6e 74 65 6e 74 73 2c 20 30 2c 20 32 29 20 21 3d 3d 20 27 3c 3f 27 29 20 bstr($contents,.0,.2).!==.'<?').
8e600 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5e 2e 2b {.$contents.=.preg_replace('{^.+
8e620 3f 3c 5c 3f 7d 73 27 2c 20 27 3c 3f 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 7d 0a 0a 20 24 ?<\?}s',.'<?',.$contents);.}...$
8e640 63 6f 6e 74 65 6e 74 73 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 7b 5c 3f 3e 2e 2b 3c contents.=.preg_replace('{\?>.+<
8e660 5c 3f 7d 73 27 2c 20 27 3f 3e 3c 3f 27 2c 20 24 63 6f 6e 74 65 6e 74 73 29 3b 0a 0a 20 24 70 6f \?}s',.'?><?',.$contents);...$po
8e680 73 20 3d 20 73 74 72 72 70 6f 73 28 24 63 6f 6e 74 65 6e 74 73 2c 20 27 3f 3e 27 29 3b 0a 69 66 s.=.strrpos($contents,.'?>');.if
8e6a0 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 .(false.!==.$pos.&&.false.===.st
8e6c0 72 70 6f 73 28 73 75 62 73 74 72 28 24 63 6f 6e 74 65 6e 74 73 2c 20 24 70 6f 73 29 2c 20 27 3c rpos(substr($contents,.$pos),.'<
8e6e0 3f 27 29 29 20 7b 0a 24 63 6f 6e 74 65 6e 74 73 20 3d 20 73 75 62 73 74 72 28 24 63 6f 6e 74 65 ?')).{.$contents.=.substr($conte
8e700 6e 74 73 2c 20 30 2c 20 24 70 6f 73 29 3b 0a 7d 0a 0a 70 72 65 67 5f 6d 61 74 63 68 5f 61 6c 6c nts,.0,.$pos);.}..preg_match_all
8e720 28 27 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 28 3f 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 ('{.............(?:.............
8e740 20 20 20 20 20 5c 62 28 3f 3c 21 5b 5c 24 3a 3e 5d 29 28 3f 50 3c 74 79 70 65 3e 63 6c 61 73 73 .....\b(?<![\$:>])(?P<type>class
8e760 7c 69 6e 74 65 72 66 61 63 65 27 2e 24 74 72 61 69 74 73 2e 27 29 20 5c 73 2b 20 28 3f 50 3c 6e |interface'.$traits.').\s+.(?P<n
8e780 61 6d 65 3e 5b 61 2d 7a 41 2d 5a 5f 5c 78 37 66 2d 5c 78 66 66 5d 5b 61 2d 7a 41 2d 5a 30 2d 39 ame>[a-zA-Z_\x7f-\xff][a-zA-Z0-9
8e7a0 5f 5c 78 37 66 2d 5c 78 66 66 5d 2a 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7c 20 5c _\x7f-\xff]*)................|.\
8e7c0 62 28 3f 3c 21 5b 5c 24 3a 3e 5d 29 28 3f 50 3c 6e 73 3e 6e 61 6d 65 73 70 61 63 65 29 20 28 3f b(?<![\$:>])(?P<ns>namespace).(?
8e7e0 50 3c 6e 73 6e 61 6d 65 3e 5c 73 2b 5b 61 2d 7a 41 2d 5a 5f 5c 78 37 66 2d 5c 78 66 66 5d 5b 61 P<nsname>\s+[a-zA-Z_\x7f-\xff][a
8e800 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 37 66 2d 5c 78 66 66 5d 2a 28 3f 3a 5c 73 2a 5c 5c 5c 5c 5c 73 -zA-Z0-9_\x7f-\xff]*(?:\s*\\\\\s
8e820 2a 5b 61 2d 7a 41 2d 5a 5f 5c 78 37 66 2d 5c 78 66 66 5d 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 5c 78 *[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x
8e840 37 66 2d 5c 78 66 66 5d 2a 29 2a 29 3f 20 5c 73 2a 5b 5c 7b 3b 5d 0a 20 20 20 20 20 20 20 20 20 7f-\xff]*)*)?.\s*[\{;]..........
8e860 20 20 20 29 0a 20 20 20 20 20 20 20 20 7d 69 78 27 2c 20 24 63 6f 6e 74 65 6e 74 73 2c 20 24 6d ...).........}ix',.$contents,.$m
8e880 61 74 63 68 65 73 29 3b 0a 0a 24 63 6c 61 73 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6e atches);..$classes.=.array();.$n
8e8a0 61 6d 65 73 70 61 63 65 20 3d 20 27 27 3b 0a 0a 66 6f 72 20 28 24 69 20 3d 20 30 2c 20 24 6c 65 amespace.=.'';..for.($i.=.0,.$le
8e8c0 6e 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 5b 27 74 79 70 65 27 5d 29 3b 20 24 69 20 n.=.count($matches['type']);.$i.
8e8e0 3c 20 24 6c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 6d 61 74 63 <.$len;.$i++).{.if.(!empty($matc
8e900 68 65 73 5b 27 6e 73 27 5d 5b 24 69 5d 29 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 73 hes['ns'][$i])).{.$namespace.=.s
8e920 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 27 20 27 2c 20 22 5c 74 22 2c 20 22 5c 72 22 tr_replace(array('.',."\t",."\r"
8e940 2c 20 22 5c 6e 22 29 2c 20 27 27 2c 20 24 6d 61 74 63 68 65 73 5b 27 6e 73 6e 61 6d 65 27 5d 5b ,."\n"),.'',.$matches['nsname'][
8e960 24 69 5d 29 20 2e 20 27 5c 5c 27 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 6c 61 73 73 65 73 5b 5d $i])...'\\';.}.else.{.$classes[]
8e980 20 3d 20 6c 74 72 69 6d 28 24 6e 61 6d 65 73 70 61 63 65 20 2e 20 24 6d 61 74 63 68 65 73 5b 27 .=.ltrim($namespace...$matches['
8e9a0 6e 61 6d 65 27 5d 5b 24 69 5d 2c 20 27 5c 5c 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 name'][$i],.'\\');.}.}..return.$
8e9c0 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 0a 6e 61 classes;.}.}.<?php............na
8e9e0 6d 65 73 70 61 63 65 20 43 6f 6d 70 6f 73 65 72 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c mespace.Composer;..use.Composer\
8ea00 41 75 74 6f 6c 6f 61 64 5c 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 75 73 65 20 Autoload\AutoloadGenerator;.use.
8ea20 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 65 66 61 Composer\DependencyResolver\Defa
8ea40 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 64 65 6e ultPolicy;.use.Composer\Dependen
8ea60 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 65 72 61 cyResolver\Operation\UpdateOpera
8ea80 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 52 65 73 tion;.use.Composer\DependencyRes
8eaa0 6f 6c 76 65 72 5c 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 olver\Operation\InstallOperation
8eac0 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
8eae0 72 5c 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 3b 0a r\Operation\UninstallOperation;.
8eb00 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\
8eb20 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 75 73 Operation\OperationInterface;.us
8eb40 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 50 6f e.Composer\DependencyResolver\Po
8eb60 6f 6c 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 ol;.use.Composer\DependencyResol
8eb80 76 65 72 5c 52 65 71 75 65 73 74 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 44 65 70 65 6e 64 ver\Request;.use.Composer\Depend
8eba0 65 6e 63 79 52 65 73 6f 6c 76 65 72 5c 52 75 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c encyResolver\Rule;.use.Composer\
8ebc0 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 75 73 65 20 43 DependencyResolver\Solver;.use.C
8ebe0 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 53 6f 6c 76 65 omposer\DependencyResolver\Solve
8ec00 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 70 6f 73 65 72 rProblemsException;.use.Composer
8ec20 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
8ec40 20 43 6f 6d 70 6f 73 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 .Composer\EventDispatcher\EventD
8ec60 69 73 70 61 74 63 68 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c 65 ispatcher;.use.Composer\Installe
8ec80 72 5c 49 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f r\InstallationManager;.use.Compo
8eca0 73 65 72 5c 43 6f 6e 66 69 67 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 6e 73 74 61 6c 6c ser\Config;.use.Composer\Install
8ecc0 65 72 5c 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 49 er\NoopInstaller;.use.Composer\I
8ece0 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 4a 73 6f 6e O\IOInterface;.use.Composer\Json
8ed00 5c 4a 73 6f 6e 46 69 6c 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c \JsonFile;.use.Composer\Package\
8ed20 41 6c 69 61 73 50 61 63 6b 61 67 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 AliasPackage;.use.Composer\Packa
8ed40 67 65 5c 4c 69 6e 6b 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 69 ge\Link;.use.Composer\Package\Li
8ed60 6e 6b 43 6f 6e 73 74 72 61 69 6e 74 5c 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 3b 0a nkConstraint\VersionConstraint;.
8ed80 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 4c 6f 63 6b 65 72 3b 0a 75 73 65 use.Composer\Package\Locker;.use
8eda0 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
8edc0 63 65 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 50 61 63 6b 61 67 65 5c 52 6f 6f 74 50 61 63 ce;.use.Composer\Package\RootPac
8ede0 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 52 65 70 6f kageInterface;.use.Composer\Repo
8ee00 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.
8ee20 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 41 72 72 Composer\Repository\InstalledArr
8ee40 61 79 52 65 70 6f 73 69 74 6f 72 79 3b 0a 75 73 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 ayRepository;.use.Composer\Repos
8ee60 69 74 6f 72 79 5c 49 6e 73 74 61 6c 6c 65 64 46 69 6c 65 73 79 73 74 65 6d 52 65 70 6f 73 69 74 itory\InstalledFilesystemReposit
8ee80 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 6c 61 ory;.use.Composer\Repository\Pla
8eea0 74 66 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 tformRepository;.use.Composer\Re
8eec0 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 pository\RepositoryInterface;.us
8eee0 65 20 43 6f 6d 70 6f 73 65 72 5c 52 65 70 6f 73 69 74 6f 72 79 5c 52 65 70 6f 73 69 74 6f 72 79 e.Composer\Repository\Repository
8ef00 4d 61 6e 61 67 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 Manager;.use.Composer\Script\Scr
8ef20 69 70 74 45 76 65 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 73 74 61 6c 6c 65 iptEvents;........class.Installe
8ef40 72 0a 7b 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 r.{....protected.$io;.....protec
8ef60 74 65 64 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 ted.$config;.....protected.$pack
8ef80 61 67 65 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 age;.....protected.$downloadMana
8efa0 67 65 72 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 ger;.....protected.$repositoryMa
8efc0 6e 61 67 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 nager;.....protected.$locker;...
8efe0 0a 0a 70 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 ..protected.$installationManager
8f000 3b 0a 0a 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 ;.....protected.$eventDispatcher
8f020 3b 0a 0a 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 ;.....protected.$autoloadGenerat
8f040 6f 72 3b 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 or;..protected.$preferSource.=.f
8f060 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 66 61 alse;.protected.$preferDist.=.fa
8f080 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 lse;.protected.$optimizeAutoload
8f0a0 65 72 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 76 4d 6f 64 65 20 3d er.=.false;.protected.$devMode.=
8f0c0 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 72 79 52 75 6e 20 3d 20 66 61 6c 73 .false;.protected.$dryRun.=.fals
8f0e0 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 76 65 72 62 6f 73 65 20 3d 20 66 61 6c 73 65 3b 0a 70 e;.protected.$verbose.=.false;.p
8f100 72 6f 74 65 63 74 65 64 20 24 75 70 64 61 74 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 6f 74 65 63 rotected.$update.=.false;.protec
8f120 74 65 64 20 24 72 75 6e 53 63 72 69 70 74 73 20 3d 20 74 72 75 65 3b 0a 70 72 6f 74 65 63 74 65 ted.$runScripts.=.true;.protecte
8f140 64 20 24 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 3d 20 6e 75 6c 6c 3b 0a 70 72 6f 74 65 d.$updateWhitelist.=.null;.prote
8f160 63 74 65 64 20 24 77 68 69 74 65 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 20 3d 20 66 61 cted.$whitelistDependencies.=.fa
8f180 6c 73 65 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 75 67 67 65 73 74 65 64 50 61 63 lse;.....protected.$suggestedPac
8f1a0 6b 61 67 65 73 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 61 64 64 69 74 69 6f 6e 61 6c kages;.....protected.$additional
8f1c0 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a InstalledRepository;............
8f1e0 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
8f200 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 2c 20 OInterface.$io,.Config.$config,.
8f220 52 6f 6f 74 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 44 RootPackageInterface.$package,.D
8f240 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 2c ownloadManager.$downloadManager,
8f260 20 52 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 24 72 65 70 6f 73 69 74 6f 72 79 4d 61 .RepositoryManager.$repositoryMa
8f280 6e 61 67 65 72 2c 20 4c 6f 63 6b 65 72 20 24 6c 6f 63 6b 65 72 2c 20 49 6e 73 74 61 6c 6c 61 74 nager,.Locker.$locker,.Installat
8f2a0 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 67 65 72 2c ionManager.$installationManager,
8f2c0 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 70 61 74 63 68 65 .EventDispatcher.$eventDispatche
8f2e0 72 2c 20 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 24 61 75 74 6f 6c 6f 61 64 47 65 r,.AutoloadGenerator.$autoloadGe
8f300 6e 65 72 61 74 6f 72 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 nerator).{.$this->io.=.$io;.$thi
8f320 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 3e 70 61 63 6b s->config.=.$config;.$this->pack
8f340 61 67 65 20 3d 20 24 70 61 63 6b 61 67 65 3b 0a 24 74 68 69 73 2d 3e 64 6f 77 6e 6c 6f 61 64 4d age.=.$package;.$this->downloadM
8f360 61 6e 61 67 65 72 20 3d 20 24 64 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 anager.=.$downloadManager;.$this
8f380 2d 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 20 3d 20 24 72 65 70 6f 73 69 74 6f 72 ->repositoryManager.=.$repositor
8f3a0 79 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 20 3d 20 24 6c 6f 63 6b 65 yManager;.$this->locker.=.$locke
8f3c0 72 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 20 r;.$this->installationManager.=.
8f3e0 24 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 3b 0a 24 74 68 69 73 2d 3e 65 76 65 $installationManager;.$this->eve
8f400 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 65 72 3b ntDispatcher.=.$eventDispatcher;
8f420 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 20 3d 20 24 61 75 74 .$this->autoloadGenerator.=.$aut
8f440 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 oloadGenerator;.}.......public.f
8f460 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 2d 3e 64 72 79 52 75 unction.run().{.if.($this->dryRu
8f480 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 65 3b 0a 24 74 68 69 n).{.$this->verbose.=.true;.$thi
8f4a0 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 68 69 73 2d 3e 69 6e s->runScripts.=.false;.$this->in
8f4c0 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 74 61 6c 6c 65 72 28 stallationManager->addInstaller(
8f4e0 6e 65 77 20 4e 6f 6f 70 49 6e 73 74 61 6c 6c 65 72 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 63 6b 4c new.NoopInstaller);.$this->mockL
8f500 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 24 74 68 69 73 2d 3e 72 65 70 6f 73 69 74 6f ocalRepositories($this->reposito
8f520 72 79 4d 61 6e 61 67 65 72 29 3b 0a 7d 0a 0a 0a 20 0a 20 24 64 65 76 52 65 70 6f 20 3d 20 6e 65 ryManager);.}......$devRepo.=.ne
8f540 77 20 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 w.InstalledFilesystemRepository(
8f560 6e 65 77 20 4a 73 6f 6e 46 69 6c 65 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 new.JsonFile($this->config->get(
8f580 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 'vendor-dir').'/composer/install
8f5a0 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 29 3b 0a 69 66 20 28 24 64 65 76 52 65 70 6f 2d 3e 67 65 ed_dev.json'));.if.($devRepo->ge
8f5c0 74 50 61 63 6b 61 67 65 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 tPackages()).{.$this->io->write(
8f5e0 27 3c 77 61 72 6e 69 6e 67 3e 42 43 20 4e 6f 74 69 63 65 3a 20 52 65 6d 6f 76 69 6e 67 20 6f 6c '<warning>BC.Notice:.Removing.ol
8f600 64 20 64 65 76 20 70 61 63 6b 61 67 65 73 20 74 6f 20 6d 69 67 72 61 74 65 20 74 6f 20 74 68 65 d.dev.packages.to.migrate.to.the
8f620 20 6e 65 77 20 72 65 71 75 69 72 65 2d 64 65 76 20 68 61 6e 64 6c 69 6e 67 2e 3c 2f 77 61 72 6e .new.require-dev.handling.</warn
8f640 69 6e 67 3e 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 76 52 65 70 6f 2d 3e 67 65 74 50 61 ing>');.foreach.($devRepo->getPa
8f660 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 74 68 69 ckages().as.$package).{.if.($thi
8f680 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 69 73 50 61 63 6b 61 67 s->installationManager->isPackag
8f6a0 65 49 6e 73 74 61 6c 6c 65 64 28 24 64 65 76 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 29 20 eInstalled($devRepo,.$package)).
8f6c0 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 75 6e {.$this->installationManager->un
8f6e0 69 6e 73 74 61 6c 6c 28 24 64 65 76 52 65 70 6f 2c 20 6e 65 77 20 55 6e 69 6e 73 74 61 6c 6c 4f install($devRepo,.new.UninstallO
8f700 70 65 72 61 74 69 6f 6e 28 24 70 61 63 6b 61 67 65 29 29 3b 0a 7d 0a 7d 0a 75 6e 6c 69 6e 6b 28 peration($package));.}.}.unlink(
8f720 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2d 3e 67 65 74 28 27 76 65 6e 64 6f 72 2d 64 69 72 27 29 $this->config->get('vendor-dir')
8f740 2e 27 2f 63 6f 6d 70 6f 73 65 72 2f 69 6e 73 74 61 6c 6c 65 64 5f 64 65 76 2e 6a 73 6f 6e 27 29 .'/composer/installed_dev.json')
8f760 3b 0a 7d 0a 75 6e 73 65 74 28 24 64 65 76 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 3b 0a 0a ;.}.unset($devRepo,.$package);..
8f780 0a 69 66 20 28 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 0a 20 24 65 76 65 .if.($this->runScripts).{...$eve
8f7a0 6e 74 4e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3f 20 53 63 72 69 70 74 45 ntName.=.$this->update.?.ScriptE
8f7c0 76 65 6e 74 73 3a 3a 50 52 45 5f 55 50 44 41 54 45 5f 43 4d 44 20 3a 20 53 63 72 69 70 74 45 76 vents::PRE_UPDATE_CMD.:.ScriptEv
8f7e0 65 6e 74 73 3a 3a 50 52 45 5f 49 4e 53 54 41 4c 4c 5f 43 4d 44 3b 0a 24 74 68 69 73 2d 3e 65 76 ents::PRE_INSTALL_CMD;.$this->ev
8f800 65 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 43 6f 6d 6d 61 6e 64 45 76 entDispatcher->dispatchCommandEv
8f820 65 6e 74 28 24 65 76 65 6e 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 3b ent($eventName,.$this->devMode);
8f840 0a 7d 0a 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 73 65 74 50 .}..$this->downloadManager->setP
8f860 72 65 66 65 72 53 6f 75 72 63 65 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 53 6f 75 72 63 65 29 referSource($this->preferSource)
8f880 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 73 65 74 50 72 65 ;.$this->downloadManager->setPre
8f8a0 66 65 72 44 69 73 74 28 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 29 3b 0a 0a 0a 20 0a ferDist($this->preferDist);.....
8f8c0 20 0a 20 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 20 3d 20 63 6c 6f 6e 65 ...$installedRootPackage.=.clone
8f8e0 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 3b 0a 24 69 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 .$this->package;.$installedRootP
8f900 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 71 75 69 72 65 73 28 61 72 72 61 79 28 29 29 3b 0a 24 69 ackage->setRequires(array());.$i
8f920 6e 73 74 61 6c 6c 65 64 52 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 73 65 74 44 65 76 52 65 71 75 69 nstalledRootPackage->setDevRequi
8f940 72 65 73 28 61 72 72 61 79 28 29 29 3b 0a 0a 0a 20 24 6c 6f 63 61 6c 52 65 70 6f 20 3d 20 24 74 res(array());....$localRepo.=.$t
8f960 68 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 his->repositoryManager->getLocal
8f980 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 20 3d 20 6e 65 Repository();.$platformRepo.=.ne
8f9a0 77 20 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 28 29 3b 0a 24 72 65 70 6f 73 20 3d w.PlatformRepository();.$repos.=
8f9c0 20 61 72 72 61 79 28 0a 24 6c 6f 63 61 6c 52 65 70 6f 2c 0a 6e 65 77 20 49 6e 73 74 61 6c 6c 65 .array(.$localRepo,.new.Installe
8f9e0 64 41 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 dArrayRepository(array($installe
8fa00 64 52 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 dRootPackage)),.$platformRepo,.)
8fa20 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
8fa40 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
8fa60 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).{.
8fa80 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
8faa0 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
8fac0 72 79 29 3b 0a 7d 0a 0a 24 61 6c 69 61 73 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 6f 6f ry);.}..$aliases.=.$this->getRoo
8fae0 74 41 6c 69 61 73 65 73 28 29 3b 0a 24 74 68 69 73 2d 3e 61 6c 69 61 73 50 6c 61 74 66 6f 72 6d tAliases();.$this->aliasPlatform
8fb00 50 61 63 6b 61 67 65 73 28 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 Packages($platformRepo,.$aliases
8fb20 29 3b 0a 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 );..try.{.$this->suggestedPackag
8fb40 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 72 65 73 20 3d 20 24 74 68 69 73 2d 3e 64 6f 49 6e es.=.array();.$res.=.$this->doIn
8fb60 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 65 70 6f stall($localRepo,.$installedRepo
8fb80 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 2c 20 24 74 68 69 73 ,.$platformRepo,.$aliases,.$this
8fba0 2d 3e 64 65 76 4d 6f 64 65 29 3b 0a 69 66 20 28 24 72 65 73 20 21 3d 3d 20 30 29 20 7b 0a 72 65 ->devMode);.if.($res.!==.0).{.re
8fbc0 74 75 72 6e 20 24 72 65 73 3b 0a 7d 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e turn.$res;.}.}.catch.(\Exception
8fbe0 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 4d 61 6e 61 67 65 .$e).{.$this->installationManage
8fc00 72 2d 3e 6e 6f 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 3b 0a 0a 74 68 72 6f 77 20 24 65 3b 0a r->notifyInstalls();..throw.$e;.
8fc20 7d 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 6e 6f }.$this->installationManager->no
8fc40 74 69 66 79 49 6e 73 74 61 6c 6c 73 28 29 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 tifyInstalls();....foreach.($thi
8fc60 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 73 75 67 67 65 73 74 s->suggestedPackages.as.$suggest
8fc80 69 6f 6e 29 20 7b 0a 24 74 61 72 67 65 74 20 3d 20 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 74 61 ion).{.$target.=.$suggestion['ta
8fca0 72 67 65 74 27 5d 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d rget'];.foreach.($installedRepo-
8fcc0 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 >getPackages().as.$package).{.if
8fce0 20 28 69 6e 5f 61 72 72 61 79 28 24 74 61 72 67 65 74 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 .(in_array($target,.$package->ge
8fd00 74 4e 61 6d 65 73 28 29 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 7d 0a 0a 24 74 tNames())).{.continue.2;.}.}..$t
8fd20 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 73 75 67 67 65 73 74 69 6f 6e 5b 27 73 6f 75 72 his->io->write($suggestion['sour
8fd40 63 65 27 5d 2e 27 20 73 75 67 67 65 73 74 73 20 69 6e 73 74 61 6c 6c 69 6e 67 20 27 2e 24 73 75 ce'].'.suggests.installing.'.$su
8fd60 67 67 65 73 74 69 6f 6e 5b 27 74 61 72 67 65 74 27 5d 2e 27 20 28 27 2e 24 73 75 67 67 65 73 74 ggestion['target'].'.('.$suggest
8fd80 69 6f 6e 5b 27 72 65 61 73 6f 6e 27 5d 2e 27 29 27 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 ion['reason'].')');.}..if.(!$thi
8fda0 73 2d 3e 64 72 79 52 75 6e 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 s->dryRun).{...if.($this->update
8fdc0 20 7c 7c 20 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 .||.!$this->locker->isLocked()).
8fde0 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 72 65 6c 6f 61 64 28 29 3b 0a 0a 0a 20 0a 20 24 64 65 {.$localRepo->reload();......$de
8fe00 76 50 61 63 6b 61 67 65 73 20 3d 20 28 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 7c 7c 20 21 vPackages.=.($this->devMode.||.!
8fe20 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 28 29 $this->package->getDevRequires()
8fe40 29 20 3f 20 61 72 72 61 79 28 29 20 3a 20 6e 75 6c 6c 3b 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 ).?.array().:.null;....if.($this
8fe60 2d 3e 64 65 76 4d 6f 64 65 20 26 26 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 ->devMode.&&.$this->package->get
8fe80 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 7b 0a 24 70 6f 6c 69 63 79 20 3d 20 24 74 68 69 73 DevRequires()).{.$policy.=.$this
8fea0 2d 3e 63 72 65 61 74 65 50 6f 6c 69 63 79 28 29 3b 0a 24 70 6f 6f 6c 20 3d 20 24 74 68 69 73 2d ->createPolicy();.$pool.=.$this-
8fec0 3e 63 72 65 61 74 65 50 6f 6f 6c 28 74 72 75 65 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 >createPool(true);.$pool->addRep
8fee0 6f 73 69 74 6f 72 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 ository($installedRepo,.$aliases
8ff00 29 3b 0a 0a 0a 20 24 72 65 71 75 65 73 74 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 );....$request.=.$this->createRe
8ff20 71 75 65 73 74 28 24 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 70 6c quest($pool,.$this->package,.$pl
8ff40 61 74 66 6f 72 6d 52 65 70 6f 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 75 70 64 61 74 65 41 6c 6c atformRepo);.$request->updateAll
8ff60 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 ();.foreach.($this->package->get
8ff80 52 65 71 75 69 72 65 73 28 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d Requires().as.$link).{.$request-
8ffa0 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2c 20 24 6c 69 >install($link->getTarget(),.$li
8ffc0 6e 6b 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 0a 24 73 6f 6c 76 65 72 nk->getConstraint());.}..$solver
8ffe0 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 20 24 69 .=.new.Solver($policy,.$pool,.$i
90000 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 24 6f 70 73 20 3d 20 24 73 6f 6c 76 65 72 2d 3e 73 nstalledRepo);.$ops.=.$solver->s
90020 6f 6c 76 65 28 24 72 65 71 75 65 73 74 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 73 20 61 73 olve($request);.foreach.($ops.as
90040 20 24 6f 70 29 20 7b 0a 69 66 20 28 24 6f 70 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 20 3d 3d .$op).{.if.($op->getJobType().==
90060 3d 20 27 75 6e 69 6e 73 74 61 6c 6c 27 29 20 7b 0a 24 64 65 76 50 61 63 6b 61 67 65 73 5b 5d 20 =.'uninstall').{.$devPackages[].
90080 3d 20 24 6f 70 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 70 6c 61 =.$op->getPackage();.}.}.}..$pla
900a0 74 66 6f 72 6d 52 65 71 73 20 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 74 50 6c 61 74 66 6f tformReqs.=.$this->extractPlatfo
900c0 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 rmRequirements($this->package->g
900e0 65 74 52 65 71 75 69 72 65 73 28 29 29 3b 0a 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 71 73 20 etRequires());.$platformDevReqs.
90100 3d 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 20 3f 20 24 74 68 69 73 2d 3e 65 78 74 72 61 63 =.$this->devMode.?.$this->extrac
90120 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e 70 61 63 tPlatformRequirements($this->pac
90140 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 20 3a 20 61 72 72 61 79 28 kage->getDevRequires()).:.array(
90160 29 3b 0a 0a 24 75 70 64 61 74 65 64 4c 6f 63 6b 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 );..$updatedLock.=.$this->locker
90180 2d 3e 73 65 74 4c 6f 63 6b 44 61 74 61 28 0a 61 72 72 61 79 5f 64 69 66 66 28 24 6c 6f 63 61 6c ->setLockData(.array_diff($local
901a0 52 65 70 6f 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 2c 20 28 61 Repo->getCanonicalPackages(),.(a
901c0 72 72 61 79 29 20 24 64 65 76 50 61 63 6b 61 67 65 73 29 2c 0a 24 64 65 76 50 61 63 6b 61 67 65 rray).$devPackages),.$devPackage
901e0 73 2c 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 2c 0a 24 70 6c 61 74 66 6f 72 6d 44 65 76 52 65 s,.$platformReqs,.$platformDevRe
90200 71 73 2c 0a 24 61 6c 69 61 73 65 73 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 qs,.$aliases,.$this->package->ge
90220 74 4d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 28 29 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b tMinimumStability(),.$this->pack
90240 61 67 65 2d 3e 67 65 74 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 0a 29 3b 0a 69 66 20 28 age->getStabilityFlags().);.if.(
90260 24 75 70 64 61 74 65 64 4c 6f 63 6b 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 $updatedLock).{.$this->io->write
90280 28 27 3c 69 6e 66 6f 3e 57 72 69 74 69 6e 67 20 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e ('<info>Writing.lock.file</info>
902a0 27 29 3b 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e ');.}.}....$this->io->write('<in
902c0 66 6f 3e 47 65 6e 65 72 61 74 69 6e 67 20 61 75 74 6f 6c 6f 61 64 20 66 69 6c 65 73 3c 2f 69 6e fo>Generating.autoload.files</in
902e0 66 6f 3e 27 29 3b 0a 24 74 68 69 73 2d 3e 61 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 2d fo>');.$this->autoloadGenerator-
90300 3e 64 75 6d 70 28 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 2c 20 24 6c 6f 63 61 6c 52 65 70 6f 2c >dump($this->config,.$localRepo,
90320 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 .$this->package,.$this->installa
90340 74 69 6f 6e 4d 61 6e 61 67 65 72 2c 20 27 63 6f 6d 70 6f 73 65 72 27 2c 20 24 74 68 69 73 2d 3e tionManager,.'composer',.$this->
90360 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d optimizeAutoloader);..if.($this-
90380 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 20 24 74 >runScripts).{...$eventName.=.$t
903a0 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 4f 53 54 his->update.?.ScriptEvents::POST
903c0 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 4f 53 54 _UPDATE_CMD.:.ScriptEvents::POST
903e0 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 74 _INSTALL_CMD;.$this->eventDispat
90400 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 6e cher->dispatchCommandEvent($even
90420 74 4e 61 6d 65 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 tName,.$this->devMode);.}.}..ret
90440 75 72 6e 20 30 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 49 urn.0;.}..protected.function.doI
90460 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 65 70 nstall($localRepo,.$installedRep
90480 6f 2c 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 2c 20 24 77 69 74 o,.$platformRepo,.$aliases,.$wit
904a0 68 44 65 76 52 65 71 73 29 0a 7b 0a 0a 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 hDevReqs).{...$lockedRepository.
904c0 3d 20 6e 75 6c 6c 3b 0a 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a =.null;.$repositories.=.null;...
904e0 20 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 21 .$installFromLock.=.false;.if.(!
90500 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e $this->update.&&.$this->locker->
90520 69 73 4c 6f 63 6b 65 64 28 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 20 3d isLocked()).{.$installFromLock.=
90540 20 74 72 75 65 3b 0a 74 72 79 20 7b 0a 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d .true;.try.{.$lockedRepository.=
90560 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 .$this->locker->getLockedReposit
90580 6f 72 79 28 24 77 69 74 68 44 65 76 52 65 71 73 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 52 75 6e ory($withDevReqs);.}.catch.(\Run
905a0 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d timeException.$e).{...if.($this-
905c0 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 29 20 7b 0a 74 68 >package->getDevRequires()).{.th
905e0 72 6f 77 20 24 65 3b 0a 7d 0a 0a 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 20 3d 20 row.$e;.}...$lockedRepository.=.
90600 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f $this->locker->getLockedReposito
90620 72 79 28 29 3b 0a 7d 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 ry();.}.}..$this->whitelistUpdat
90640 65 44 65 70 65 6e 64 65 6e 63 69 65 73 28 0a 24 6c 6f 63 61 6c 52 65 70 6f 2c 0a 24 77 69 74 68 eDependencies(.$localRepo,.$with
90660 44 65 76 52 65 71 73 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 DevReqs,.$this->package->getRequ
90680 69 72 65 73 28 29 2c 0a 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 ires(),.$this->package->getDevRe
906a0 71 75 69 72 65 73 28 29 0a 29 3b 0a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c quires().);..$this->io->write('<
906c0 69 6e 66 6f 3e 4c 6f 61 64 69 6e 67 20 63 6f 6d 70 6f 73 65 72 20 72 65 70 6f 73 69 74 6f 72 69 info>Loading.composer.repositori
906e0 65 73 20 77 69 74 68 20 70 61 63 6b 61 67 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 3c 2f 69 6e 66 es.with.package.information</inf
90700 6f 3e 27 29 3b 0a 0a 0a 20 24 70 6f 6c 69 63 79 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 o>');....$policy.=.$this->create
90720 50 6f 6c 69 63 79 28 29 3b 0a 24 70 6f 6f 6c 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 50 Policy();.$pool.=.$this->createP
90740 6f 6f 6c 28 24 77 69 74 68 44 65 76 52 65 71 73 29 3b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 ool($withDevReqs);.$pool->addRep
90760 6f 73 69 74 6f 72 79 28 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 ository($installedRepo,.$aliases
90780 29 3b 0a 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 70 6f 6f 6c );.if.($installFromLock).{.$pool
907a0 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 ->addRepository($lockedRepositor
907c0 79 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 y,.$aliases);.}..if.(!$installFr
907e0 6f 6d 4c 6f 63 6b 29 20 7b 0a 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 3d 20 24 74 68 69 73 2d omLock).{.$repositories.=.$this-
90800 3e 72 65 70 6f 73 69 74 6f 72 79 4d 61 6e 61 67 65 72 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 >repositoryManager->getRepositor
90820 69 65 73 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 65 70 6f 73 69 74 6f 72 69 65 73 20 61 73 ies();.foreach.($repositories.as
90840 20 24 72 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 .$repository).{.$pool->addReposi
90860 74 6f 72 79 28 24 72 65 70 6f 73 69 74 6f 72 79 2c 20 24 61 6c 69 61 73 65 73 29 3b 0a 7d 0a 7d tory($repository,.$aliases);.}.}
90880 0a 0a 0a 20 24 72 65 71 75 65 73 74 20 3d 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 52 65 71 75 ....$request.=.$this->createRequ
908a0 65 73 74 28 24 70 6f 6f 6c 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2c 20 24 70 6c 61 74 est($pool,.$this->package,.$plat
908c0 66 6f 72 6d 52 65 70 6f 29 3b 0a 0a 69 66 20 28 21 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 formRepo);..if.(!$installFromLoc
908e0 6b 29 20 7b 0a 0a 20 24 72 65 6d 6f 76 65 64 55 6e 73 74 61 62 6c 65 50 61 63 6b 61 67 65 73 20 k).{...$removedUnstablePackages.
90900 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e =.array();.foreach.($localRepo->
90920 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 getPackages().as.$package).{.if.
90940 28 0a 21 24 70 6f 6f 6c 2d 3e 69 73 50 61 63 6b 61 67 65 41 63 63 65 70 74 61 62 6c 65 28 24 70 (.!$pool->isPackageAcceptable($p
90960 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 73 28 29 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 ackage->getNames(),.$package->ge
90980 74 53 74 61 62 69 6c 69 74 79 28 29 29 0a 26 26 20 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 tStability()).&&.$this->installa
909a0 74 69 6f 6e 4d 61 6e 61 67 65 72 2d 3e 69 73 50 61 63 6b 61 67 65 49 6e 73 74 61 6c 6c 65 64 28 tionManager->isPackageInstalled(
909c0 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 61 63 6b 61 67 65 29 0a 29 20 7b 0a 24 72 65 6d 6f 76 $localRepo,.$package).).{.$remov
909e0 65 64 55 6e 73 74 61 62 6c 65 50 61 63 6b 61 67 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 edUnstablePackages[$package->get
90a00 4e 61 6d 65 28 29 5d 20 3d 20 74 72 75 65 3b 0a 24 72 65 71 75 65 73 74 2d 3e 72 65 6d 6f 76 65 Name()].=.true;.$request->remove
90a20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 65 77 20 56 65 72 73 69 6f ($package->getName(),.new.Versio
90a40 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
90a60 72 73 69 6f 6e 28 29 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 rsion()));.}.}.}..if.($this->upd
90a80 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 55 ate).{.$this->io->write('<info>U
90aa0 70 64 61 74 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2e 28 24 77 69 74 68 44 65 76 52 pdating.dependencies'.($withDevR
90ac0 65 71 73 3f 27 20 28 69 6e 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d 64 65 76 29 27 3a 27 eqs?'.(including.require-dev)':'
90ae0 27 29 2e 27 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a 24 72 65 71 75 65 73 74 2d 3e 75 70 64 61 74 65 ').'</info>');..$request->update
90b00 41 6c 6c 28 29 3b 0a 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 24 6c 69 6e All();..if.($withDevReqs).{.$lin
90b20 6b 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d ks.=.array_merge($this->package-
90b40 3e 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e >getRequires(),.$this->package->
90b60 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c 69 6e getDevRequires());.}.else.{.$lin
90b80 6b 73 20 3d 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 ks.=.$this->package->getRequires
90ba0 28 29 3b 0a 7d 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 ();.}..foreach.($links.as.$link)
90bc0 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 .{.$request->install($link->getT
90be0 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 74 28 29 29 arget(),.$link->getConstraint())
90c00 3b 0a 7d 0a 0a 0a 20 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 ;.}......if.($this->updateWhitel
90c20 69 73 74 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b ist).{.if.($this->locker->isLock
90c40 65 64 28 29 29 20 7b 0a 74 72 79 20 7b 0a 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 3d ed()).{.try.{.$currentPackages.=
90c60 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 .$this->locker->getLockedReposit
90c80 6f 72 79 28 24 77 69 74 68 44 65 76 52 65 71 73 29 2d 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 ory($withDevReqs)->getPackages()
90ca0 3b 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 24 65 29 ;.}.catch.(\RuntimeException.$e)
90cc0 20 7b 0a 0a 20 24 63 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 .{...$currentPackages.=.$this->l
90ce0 6f 63 6b 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 28 29 2d 3e 67 65 ocker->getLockedRepository()->ge
90d00 74 50 61 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 75 72 72 65 6e 74 tPackages();.}.}.else.{.$current
90d20 50 61 63 6b 61 67 65 73 20 3d 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 2d 3e 67 65 74 50 61 Packages.=.$installedRepo->getPa
90d40 63 6b 61 67 65 73 28 29 3b 0a 7d 0a 0a 0a 20 24 63 61 6e 64 69 64 61 74 65 73 20 3d 20 61 72 72 ckages();.}....$candidates.=.arr
90d60 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 6b 73 20 61 73 20 24 6c 69 6e 6b 29 20 ay();.foreach.($links.as.$link).
90d80 7b 0a 24 63 61 6e 64 69 64 61 74 65 73 5b 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 72 67 65 74 28 29 {.$candidates[$link->getTarget()
90da0 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f 2d ].=.true;.}.foreach.($localRepo-
90dc0 3e 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 63 >getPackages().as.$package).{.$c
90de0 61 6e 64 69 64 61 74 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d andidates[$package->getName()].=
90e00 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 63 61 6e 64 69 64 61 74 65 73 .true;.}....foreach.($candidates
90e20 20 61 73 20 24 63 61 6e 64 69 64 61 74 65 20 3d 3e 20 24 64 75 6d 6d 79 29 20 7b 0a 66 6f 72 65 .as.$candidate.=>.$dummy).{.fore
90e40 61 63 68 20 28 24 63 75 72 72 65 6e 74 50 61 63 6b 61 67 65 73 20 61 73 20 24 63 75 72 50 61 63 ach.($currentPackages.as.$curPac
90e60 6b 61 67 65 29 20 7b 0a 69 66 20 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 kage).{.if.($curPackage->getName
90e80 28 29 20 3d 3d 3d 20 24 63 61 6e 64 69 64 61 74 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d ().===.$candidate).{.if.(!$this-
90ea0 3e 69 73 55 70 64 61 74 65 61 62 6c 65 28 24 63 75 72 50 61 63 6b 61 67 65 29 20 26 26 20 21 69 >isUpdateable($curPackage).&&.!i
90ec0 73 73 65 74 28 24 72 65 6d 6f 76 65 64 55 6e 73 74 61 62 6c 65 50 61 63 6b 61 67 65 73 5b 24 63 sset($removedUnstablePackages[$c
90ee0 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 63 6f 6e 73 74 urPackage->getName()])).{.$const
90f00 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 27 3d raint.=.new.VersionConstraint('=
90f20 27 2c 20 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 24 ',.$curPackage->getVersion());.$
90f40 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 63 75 72 50 61 63 6b 61 67 65 2d 3e 67 65 request->install($curPackage->ge
90f60 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 62 72 65 61 6b 3b 0a tName(),.$constraint);.}.break;.
90f80 7d 0a 7d 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f }.}.}.}.}.elseif.($installFromLo
90fa0 63 6b 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 49 6e ck).{.$this->io->write('<info>In
90fc0 73 74 61 6c 6c 69 6e 67 20 64 65 70 65 6e 64 65 6e 63 69 65 73 27 2e 28 24 77 69 74 68 44 65 76 stalling.dependencies'.($withDev
90fe0 52 65 71 73 3f 27 20 28 69 6e 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d 64 65 76 29 27 3a Reqs?'.(including.require-dev)':
91000 27 27 29 2e 27 20 66 72 6f 6d 20 6c 6f 63 6b 20 66 69 6c 65 3c 2f 69 6e 66 6f 3e 27 29 3b 0a 0a '').'.from.lock.file</info>');..
91020 69 66 20 28 21 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 46 72 65 73 68 28 29 29 20 7b if.(!$this->locker->isFresh()).{
91040 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 6e 69 6e 67 3e 57 61 72 6e .$this->io->write('<warning>Warn
91060 69 6e 67 3a 20 54 68 65 20 6c 6f 63 6b 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 75 70 20 74 6f 20 ing:.The.lock.file.is.not.up.to.
91080 64 61 74 65 20 77 69 74 68 20 74 68 65 20 6c 61 74 65 73 74 20 63 68 61 6e 67 65 73 20 69 6e 20 date.with.the.latest.changes.in.
910a0 63 6f 6d 70 6f 73 65 72 2e 6a 73 6f 6e 2e 20 59 6f 75 20 6d 61 79 20 62 65 20 67 65 74 74 69 6e composer.json..You.may.be.gettin
910c0 67 20 6f 75 74 64 61 74 65 64 20 64 65 70 65 6e 64 65 6e 63 69 65 73 2e 20 52 75 6e 20 75 70 64 g.outdated.dependencies..Run.upd
910e0 61 74 65 20 74 6f 20 75 70 64 61 74 65 20 74 68 65 6d 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b ate.to.update.them.</warning>');
91100 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e .}..foreach.($lockedRepository->
91120 67 65 74 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 76 65 getPackages().as.$package).{.$ve
91140 72 73 69 6f 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 rsion.=.$package->getVersion();.
91160 69 66 20 28 69 73 73 65 74 28 24 61 6c 69 61 73 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 if.(isset($aliases[$package->get
91180 4e 61 6d 65 28 29 5d 5b 24 76 65 72 73 69 6f 6e 5d 29 29 20 7b 0a 24 76 65 72 73 69 6f 6e 20 3d Name()][$version])).{.$version.=
911a0 20 24 61 6c 69 61 73 65 73 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 5b 24 .$aliases[$package->getName()][$
911c0 76 65 72 73 69 6f 6e 5d 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 3b 0a 7d 0a version]['alias_normalized'];.}.
911e0 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 $constraint.=.new.VersionConstra
91200 69 6e 74 28 27 3d 27 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d int('=',.$version);.$constraint-
91220 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 >setPrettyString($package->getPr
91240 65 74 74 79 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 6c ettyVersion());.$request->instal
91260 6c 28 24 70 61 63 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 l($package->getName(),.$constrai
91280 6e 74 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e nt);.}..foreach.($this->locker->
912a0 67 65 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 77 69 74 68 44 65 76 getPlatformRequirements($withDev
912c0 52 65 71 73 29 20 61 73 20 24 6c 69 6e 6b 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 Reqs).as.$link).{.$request->inst
912e0 61 6c 6c 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 all($link->getTarget(),.$link->g
91300 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 etConstraint());.}.}.else.{.$thi
91320 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 69 6e 66 6f 3e 49 6e 73 74 61 6c 6c 69 6e 67 20 64 s->io->write('<info>Installing.d
91340 65 70 65 6e 64 65 6e 63 69 65 73 27 2e 28 24 77 69 74 68 44 65 76 52 65 71 73 3f 27 20 28 69 6e ependencies'.($withDevReqs?'.(in
91360 63 6c 75 64 69 6e 67 20 72 65 71 75 69 72 65 2d 64 65 76 29 27 3a 27 27 29 2e 27 3c 2f 69 6e 66 cluding.require-dev)':'').'</inf
91380 6f 3e 27 29 3b 0a 0a 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 24 6c 69 6e 6b o>');..if.($withDevReqs).{.$link
913a0 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e s.=.array_merge($this->package->
913c0 67 65 74 52 65 71 75 69 72 65 73 28 29 2c 20 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 getRequires(),.$this->package->g
913e0 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6c 69 6e 6b etDevRequires());.}.else.{.$link
91400 73 20 3d 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 28 s.=.$this->package->getRequires(
91420 29 3b 0a 7d 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 );.}..foreach.($links.as.$link).
91440 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 6c 69 6e 6b 2d 3e 67 65 74 54 61 {.$request->install($link->getTa
91460 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());
91480 0a 7d 0a 7d 0a 0a 0a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 44 65 76 50 61 63 6b 61 67 65 .}.}....$this->processDevPackage
914a0 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c 20 24 72 s($localRepo,.$pool,.$policy,.$r
914c0 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 epositories,.$lockedRepository,.
914e0 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 2c 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 29 $installFromLock,.'force-links')
91500 3b 0a 0a 0a 20 24 73 6f 6c 76 65 72 20 3d 20 6e 65 77 20 53 6f 6c 76 65 72 28 24 70 6f 6c 69 63 ;....$solver.=.new.Solver($polic
91520 79 2c 20 24 70 6f 6f 6c 2c 20 24 69 6e 73 74 61 6c 6c 65 64 52 65 70 6f 29 3b 0a 74 72 79 20 7b y,.$pool,.$installedRepo);.try.{
91540 0a 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 73 6f 6c 76 65 72 2d 3e 73 6f 6c 76 65 28 24 72 .$operations.=.$solver->solve($r
91560 65 71 75 65 73 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 53 6f 6c 76 65 72 50 72 6f 62 6c 65 6d 73 equest);.}.catch.(SolverProblems
91580 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 Exception.$e).{.$this->io->write
915a0 28 27 3c 65 72 72 6f 72 3e 59 6f 75 72 20 72 65 71 75 69 72 65 6d 65 6e 74 73 20 63 6f 75 6c 64 ('<error>Your.requirements.could
915c0 20 6e 6f 74 20 62 65 20 72 65 73 6f 6c 76 65 64 20 74 6f 20 61 6e 20 69 6e 73 74 61 6c 6c 61 62 .not.be.resolved.to.an.installab
915e0 6c 65 20 73 65 74 20 6f 66 20 70 61 63 6b 61 67 65 73 2e 3c 2f 65 72 72 6f 72 3e 27 29 3b 0a 24 le.set.of.packages.</error>');.$
91600 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 this->io->write($e->getMessage()
91620 29 3b 0a 0a 72 65 74 75 72 6e 20 6d 61 78 28 31 2c 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 29 );..return.max(1,.$e->getCode())
91640 3b 0a 7d 0a 0a 0a 20 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 ;.}....$operations.=.$this->proc
91660 65 73 73 44 65 76 50 61 63 6b 61 67 65 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6f 6f 6c essDevPackages($localRepo,.$pool
91680 2c 20 24 70 6f 6c 69 63 79 2c 20 24 72 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 24 6c 6f 63 6b 65 ,.$policy,.$repositories,.$locke
916a0 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 2c 20 27 dRepository,.$installFromLock,.'
916c0 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 2c 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 0a 0a force-updates',.$operations);...
916e0 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 6f 2d 3e .if.(!$operations).{.$this->io->
91700 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 75 70 64 write('Nothing.to.install.or.upd
91720 61 74 65 27 29 3b 0a 7d 0a 0a 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 6d ate');.}..$operations.=.$this->m
91740 6f 76 65 50 6c 75 67 69 6e 73 54 6f 46 72 6f 6e 74 28 24 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a ovePluginsToFront($operations);.
91760 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 20 61 73 20 24 6f 70 65 72 61 74 .foreach.($operations.as.$operat
91780 69 6f 6e 29 20 7b 0a 0a 20 69 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 ion).{...if.('install'.===.$oper
917a0 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 ation->getJobType()).{.foreach.(
917c0 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 67 65 74 53 75 67 $operation->getPackage()->getSug
917e0 67 65 73 74 73 28 29 20 61 73 20 24 74 61 72 67 65 74 20 3d 3e 20 24 72 65 61 73 6f 6e 29 20 7b gests().as.$target.=>.$reason).{
91800 0a 24 74 68 69 73 2d 3e 73 75 67 67 65 73 74 65 64 50 61 63 6b 61 67 65 73 5b 5d 20 3d 20 61 72 .$this->suggestedPackages[].=.ar
91820 72 61 79 28 0a 27 73 6f 75 72 63 65 27 20 3d 3e 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 ray(.'source'.=>.$operation->get
91840 50 61 63 6b 61 67 65 28 29 2d 3e 67 65 74 50 72 65 74 74 79 4e 61 6d 65 28 29 2c 0a 27 74 61 72 Package()->getPrettyName(),.'tar
91860 67 65 74 27 20 3d 3e 20 24 74 61 72 67 65 74 2c 0a 27 72 65 61 73 6f 6e 27 20 3d 3e 20 24 72 65 get'.=>.$target,.'reason'.=>.$re
91880 61 73 6f 6e 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 27 43 6f 6d 70 6f 73 65 72 ason,.);.}.}..$event.=.'Composer
918a0 5c 53 63 72 69 70 74 5c 53 63 72 69 70 74 45 76 65 6e 74 73 3a 3a 50 52 45 5f 50 41 43 4b 41 47 \Script\ScriptEvents::PRE_PACKAG
918c0 45 5f 27 2e 73 74 72 74 6f 75 70 70 65 72 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f E_'.strtoupper($operation->getJo
918e0 62 54 79 70 65 28 29 29 3b 0a 69 66 20 28 64 65 66 69 6e 65 64 28 24 65 76 65 6e 74 29 20 26 26 bType());.if.(defined($event).&&
91900 20 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 65 76 65 .$this->runScripts).{.$this->eve
91920 6e 74 44 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 50 61 63 6b 61 67 65 45 76 65 ntDispatcher->dispatchPackageEve
91940 6e 74 28 63 6f 6e 73 74 61 6e 74 28 24 65 76 65 6e 74 29 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d nt(constant($event),.$this->devM
91960 6f 64 65 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 24 69 6e 73 ode,.$operation);.}....if.(!$ins
91980 74 61 6c 6c 46 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 tallFromLock).{.$package.=.null;
919a0 0a 69 66 20 28 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 .if.('update'.===.$operation->ge
919c0 74 4a 6f 62 54 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 tJobType()).{.$package.=.$operat
919e0 69 6f 6e 2d 3e 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 ion->getTargetPackage();.}.elsei
91a00 66 20 28 27 69 6e 73 74 61 6c 6c 27 20 3d 3d 3d 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 f.('install'.===.$operation->get
91a20 4a 6f 62 54 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 JobType()).{.$package.=.$operati
91a40 6f 6e 2d 3e 67 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 on->getPackage();.}.if.($package
91a60 20 26 26 20 24 70 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 29 20 7b 0a 24 72 65 66 65 72 65 .&&.$package->isDev()).{.$refere
91a80 6e 63 65 73 20 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 nces.=.$this->package->getRefere
91aa0 6e 63 65 73 28 29 3b 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 nces();.if.(isset($references[$p
91ac0 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d ackage->getName()])).{.$package-
91ae0 3e 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 63 65 73 5b >setSourceReference($references[
91b00 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 24 70 61 63 6b 61 67 65 2d $package->getName()]);.$package-
91b20 3e 73 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 24 72 65 66 65 72 65 6e 63 65 73 5b 24 70 >setDistReference($references[$p
91b40 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 69 66 ackage->getName()]);.}.}.}....if
91b60 20 28 24 74 68 69 73 2d 3e 64 72 79 52 75 6e 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 .($this->dryRun.&&.false.===.str
91b80 70 6f 73 28 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 2c 20 27 41 pos($operation->getJobType(),.'A
91ba0 6c 69 61 73 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 2d 20 lias')).{.$this->io->write('..-.
91bc0 27 20 2e 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 '...$operation);.$this->io->writ
91be0 65 28 27 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 69 6f 2d 3e 69 73 44 65 e('');.}.elseif.($this->io->isDe
91c00 62 75 67 28 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 6f 70 65 72 61 bug().&&.false.!==.strpos($opera
91c20 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 2c 20 27 41 6c 69 61 73 27 29 29 20 7b 0a tion->getJobType(),.'Alias')).{.
91c40 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 2d 20 27 20 2e 20 24 6f 70 65 72 61 $this->io->write('..-.'...$opera
91c60 74 69 6f 6e 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 tion);.$this->io->write('');.}..
91c80 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 65 78 65 63 $this->installationManager->exec
91ca0 75 74 65 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 0a 0a 20 ute($localRepo,.$operation);....
91cc0 69 66 20 28 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 65 20 26 26 20 24 74 68 69 73 2d 3e 69 6f 2d if.($this->verbose.&&.$this->io-
91ce0 3e 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 24 6f 70 >isVeryVerbose().&&.in_array($op
91d00 65 72 61 74 69 6f 6e 2d 3e 67 65 74 4a 6f 62 54 79 70 65 28 29 2c 20 61 72 72 61 79 28 27 69 6e eration->getJobType(),.array('in
91d20 73 74 61 6c 6c 27 2c 20 27 75 70 64 61 74 65 27 29 29 29 20 7b 0a 24 72 65 61 73 6f 6e 20 3d 20 stall',.'update'))).{.$reason.=.
91d40 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 52 65 61 73 6f 6e 28 29 3b 0a 69 66 20 28 24 72 65 $operation->getReason();.if.($re
91d60 61 73 6f 6e 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 75 6c 65 29 20 7b 0a 73 77 69 74 63 68 20 28 ason.instanceof.Rule).{.switch.(
91d80 24 72 65 61 73 6f 6e 2d 3e 67 65 74 52 65 61 73 6f 6e 28 29 29 20 7b 0a 63 61 73 65 20 52 75 6c $reason->getReason()).{.case.Rul
91da0 65 3a 3a 52 55 4c 45 5f 4a 4f 42 5f 49 4e 53 54 41 4c 4c 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e e::RULE_JOB_INSTALL:.$this->io->
91dc0 77 72 69 74 65 28 27 20 20 20 20 52 45 41 53 4f 4e 3a 20 52 65 71 75 69 72 65 64 20 62 79 20 72 write('....REASON:.Required.by.r
91de0 6f 6f 74 3a 20 27 2e 24 72 65 61 73 6f 6e 2d 3e 67 65 74 52 65 71 75 69 72 65 64 50 61 63 6b 61 oot:.'.$reason->getRequiredPacka
91e00 67 65 28 29 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 62 72 65 ge());.$this->io->write('');.bre
91e20 61 6b 3b 0a 63 61 73 65 20 52 75 6c 65 3a 3a 52 55 4c 45 5f 50 41 43 4b 41 47 45 5f 52 45 51 55 ak;.case.Rule::RULE_PACKAGE_REQU
91e40 49 52 45 53 3a 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 20 20 20 20 52 45 41 53 IRES:.$this->io->write('....REAS
91e60 4f 4e 3a 20 27 2e 24 72 65 61 73 6f 6e 2d 3e 67 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 29 ON:.'.$reason->getPrettyString()
91e80 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 62 72 65 61 6b 3b 0a );.$this->io->write('');.break;.
91ea0 7d 0a 7d 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 27 43 6f 6d 70 6f 73 65 72 5c 53 63 72 69 70 74 }.}.}..$event.=.'Composer\Script
91ec0 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 74 \ScriptEvents::POST_PACKAGE_'.st
91ee0 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 28 rtoupper($operation->getJobType(
91f00 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 73 ));.if.(defined($event).&&.$this
91f20 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 70 ->runScripts).{.$this->eventDisp
91f40 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 6e atcher->dispatchPackageEvent(con
91f60 73 74 61 6e 74 28 24 65 76 65 6e 74 29 2c 20 24 74 68 69 73 2d 3e 64 65 76 4d 6f 64 65 2c 20 24 stant($event),.$this->devMode,.$
91f80 6f 70 65 72 61 74 69 6f 6e 29 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 72 79 52 75 operation);.}..if.(!$this->dryRu
91fa0 6e 29 20 7b 0a 24 6c 6f 63 61 6c 52 65 70 6f 2d 3e 77 72 69 74 65 28 29 3b 0a 7d 0a 7d 0a 0a 72 n).{.$localRepo->write();.}.}..r
91fc0 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 eturn.0;.}...............private
91fe0 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 50 6c 75 67 69 6e 73 54 6f 46 72 6f 6e 74 28 61 72 72 .function.movePluginsToFront(arr
92000 61 79 20 24 6f 70 65 72 61 74 69 6f 6e 73 29 0a 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 4f 70 73 20 ay.$operations).{.$installerOps.
92020 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 65 72 61 74 69 6f 6e 73 20 =.array();.foreach.($operations.
92040 61 73 20 24 69 64 78 20 3d 3e 20 24 6f 70 29 20 7b 0a 69 66 20 28 24 6f 70 20 69 6e 73 74 61 6e as.$idx.=>.$op).{.if.($op.instan
92060 63 65 6f 66 20 49 6e 73 74 61 6c 6c 4f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 24 70 61 63 6b 61 67 ceof.InstallOperation).{.$packag
92080 65 20 3d 20 24 6f 70 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 3b 0a 7d 20 65 6c 73 65 69 66 20 e.=.$op->getPackage();.}.elseif.
920a0 28 24 6f 70 20 69 6e 73 74 61 6e 63 65 6f 66 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 6f 6e 29 ($op.instanceof.UpdateOperation)
920c0 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d 20 24 6f 70 2d 3e 67 65 74 54 61 72 67 65 74 50 61 63 6b .{.$package.=.$op->getTargetPack
920e0 61 67 65 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 age();.}.else.{.continue;.}..if.
92100 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 3d 3d 3d 20 61 72 72 ($package->getRequires().===.arr
92120 61 79 28 29 20 26 26 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3d 3d 3d ay().&&.($package->getType().===
92140 20 27 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 27 20 7c 7c 20 24 70 61 63 6b 61 67 65 2d 3e .'composer-plugin'.||.$package->
92160 67 65 74 54 79 70 65 28 29 20 3d 3d 3d 20 27 63 6f 6d 70 6f 73 65 72 2d 69 6e 73 74 61 6c 6c 65 getType().===.'composer-installe
92180 72 27 29 29 20 7b 0a 24 69 6e 73 74 61 6c 6c 65 72 4f 70 73 5b 5d 20 3d 20 24 6f 70 3b 0a 75 6e r')).{.$installerOps[].=.$op;.un
921a0 73 65 74 28 24 6f 70 65 72 61 74 69 6f 6e 73 5b 24 69 64 78 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 set($operations[$idx]);.}.}..ret
921c0 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 69 6e 73 74 61 6c 6c 65 72 4f 70 73 2c 20 24 urn.array_merge($installerOps,.$
921e0 6f 70 65 72 61 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e operations);.}..private.function
92200 20 63 72 65 61 74 65 50 6f 6f 6c 28 24 77 69 74 68 44 65 76 52 65 71 73 29 0a 7b 0a 24 6d 69 6e .createPool($withDevReqs).{.$min
92220 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 63 6b 61 67 65 2d 3e imumStability.=.$this->package->
92240 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 74 61 62 69 6c 69 74 getMinimumStability();.$stabilit
92260 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 67 65 74 53 74 61 62 yFlags.=.$this->package->getStab
92280 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 ilityFlags();..if.(!$this->updat
922a0 65 20 26 26 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 69 73 4c 6f 63 6b 65 64 28 29 29 20 e.&&.$this->locker->isLocked()).
922c0 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 6c 6f 63 {.$minimumStability.=.$this->loc
922e0 6b 65 72 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 74 61 ker->getMinimumStability();.$sta
92300 62 69 6c 69 74 79 46 6c 61 67 73 20 3d 20 24 74 68 69 73 2d 3e 6c 6f 63 6b 65 72 2d 3e 67 65 74 bilityFlags.=.$this->locker->get
92320 53 74 61 62 69 6c 69 74 79 46 6c 61 67 73 28 29 3b 0a 7d 0a 0a 24 72 65 71 75 69 72 65 73 20 3d StabilityFlags();.}..$requires.=
92340 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 28 29 3b 0a .$this->package->getRequires();.
92360 69 66 20 28 24 77 69 74 68 44 65 76 52 65 71 73 29 20 7b 0a 24 72 65 71 75 69 72 65 73 20 3d 20 if.($withDevReqs).{.$requires.=.
92380 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 71 75 69 72 65 73 2c 20 24 74 68 69 73 2d 3e 70 61 array_merge($requires,.$this->pa
923a0 63 6b 61 67 65 2d 3e 67 65 74 44 65 76 52 65 71 75 69 72 65 73 28 29 29 3b 0a 7d 0a 24 72 6f 6f ckage->getDevRequires());.}.$roo
923c0 74 43 6f 6e 73 74 72 61 69 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 tConstraints.=.array();.foreach.
923e0 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 20 3d 3e 20 24 63 6f 6e 73 74 72 61 69 6e ($requires.as.$req.=>.$constrain
92400 74 29 20 7b 0a 24 72 6f 6f 74 43 6f 6e 73 74 72 61 69 6e 74 73 5b 24 72 65 71 5d 20 3d 20 24 63 t).{.$rootConstraints[$req].=.$c
92420 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 0a 0a 72 onstraint->getConstraint();.}..r
92440 65 74 75 72 6e 20 6e 65 77 20 50 6f 6f 6c 28 24 6d 69 6e 69 6d 75 6d 53 74 61 62 69 6c 69 74 79 eturn.new.Pool($minimumStability
92460 2c 20 24 73 74 61 62 69 6c 69 74 79 46 6c 61 67 73 2c 20 24 72 6f 6f 74 43 6f 6e 73 74 72 61 69 ,.$stabilityFlags,.$rootConstrai
92480 6e 74 73 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 nts);.}..private.function.create
924a0 50 6f 6c 69 63 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 44 65 66 61 75 6c 74 50 6f 6c Policy().{.return.new.DefaultPol
924c0 69 63 79 28 24 74 68 69 73 2d 3e 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 66 65 72 53 74 61 icy($this->package->getPreferSta
924e0 62 6c 65 28 29 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 ble());.}..private.function.crea
92500 74 65 52 65 71 75 65 73 74 28 50 6f 6f 6c 20 24 70 6f 6f 6c 2c 20 52 6f 6f 74 50 61 63 6b 61 67 teRequest(Pool.$pool,.RootPackag
92520 65 49 6e 74 65 72 66 61 63 65 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 2c 20 50 6c 61 74 66 6f 72 eInterface.$rootPackage,.Platfor
92540 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 0a 7b 0a 24 72 65 mRepository.$platformRepo).{.$re
92560 71 75 65 73 74 20 3d 20 6e 65 77 20 52 65 71 75 65 73 74 28 24 70 6f 6f 6c 29 3b 0a 0a 24 63 6f quest.=.new.Request($pool);..$co
92580 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 61 69 6e 74 nstraint.=.new.VersionConstraint
925a0 28 27 3d 27 2c 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 ('=',.$rootPackage->getVersion()
925c0 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 74 72 69 6e 67 28 );.$constraint->setPrettyString(
925e0 24 72 6f 6f 74 50 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 $rootPackage->getPrettyVersion()
92600 29 3b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c 6c 28 24 72 6f 6f 74 50 61 63 6b 61 67 );.$request->install($rootPackag
92620 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 0a 24 66 69 e->getName(),.$constraint);..$fi
92640 78 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 2d 3e 67 65 74 xedPackages.=.$platformRepo->get
92660 50 61 63 6b 61 67 65 73 28 29 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 61 64 64 69 74 69 6f 6e 61 Packages();.if.($this->additiona
92680 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 29 20 7b 0a 24 61 64 64 69 74 69 6f lInstalledRepository).{.$additio
926a0 6e 61 6c 46 69 78 65 64 50 61 63 6b 61 67 65 73 20 3d 20 24 74 68 69 73 2d 3e 61 64 64 69 74 69 nalFixedPackages.=.$this->additi
926c0 6f 6e 61 6c 49 6e 73 74 61 6c 6c 65 64 52 65 70 6f 73 69 74 6f 72 79 2d 3e 67 65 74 50 61 63 6b onalInstalledRepository->getPack
926e0 61 67 65 73 28 29 3b 0a 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 5f 6d ages();.$fixedPackages.=.array_m
92700 65 72 67 65 28 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 2c 20 24 61 64 64 69 74 69 6f 6e 61 6c erge($fixedPackages,.$additional
92720 46 69 78 65 64 50 61 63 6b 61 67 65 73 29 3b 0a 7d 0a 0a 0a 20 0a 20 24 70 72 6f 76 69 64 65 64 FixedPackages);.}......$provided
92740 20 3d 20 24 72 6f 6f 74 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 3b 0a .=.$rootPackage->getProvides();.
92760 66 6f 72 65 61 63 68 20 28 24 66 69 78 65 64 50 61 63 6b 61 67 65 73 20 61 73 20 24 70 61 63 6b foreach.($fixedPackages.as.$pack
92780 61 67 65 29 20 7b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 20 3d 20 6e 65 77 20 56 65 72 73 69 6f 6e age).{.$constraint.=.new.Version
927a0 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 72 Constraint('=',.$package->getVer
927c0 73 69 6f 6e 28 29 29 3b 0a 24 63 6f 6e 73 74 72 61 69 6e 74 2d 3e 73 65 74 50 72 65 74 74 79 53 sion());.$constraint->setPrettyS
927e0 74 72 69 6e 67 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e tring($package->getPrettyVersion
92800 28 29 29 3b 0a 0a 0a 20 69 66 20 28 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6f 73 69 74 ());....if.($package->getReposit
92820 6f 72 79 28 29 20 21 3d 3d 20 24 70 6c 61 74 66 6f 72 6d 52 65 70 6f 0a 7c 7c 20 21 69 73 73 65 ory().!==.$platformRepo.||.!isse
92840 74 28 24 70 72 6f 76 69 64 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d t($provided[$package->getName()]
92860 29 0a 7c 7c 20 21 24 70 72 6f 76 69 64 65 64 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d ).||.!$provided[$package->getNam
92880 65 28 29 5d 2d 3e 67 65 74 43 6f 6e 73 74 72 61 69 6e 74 28 29 2d 3e 6d 61 74 63 68 65 73 28 24 e()]->getConstraint()->matches($
928a0 63 6f 6e 73 74 72 61 69 6e 74 29 0a 29 20 7b 0a 24 72 65 71 75 65 73 74 2d 3e 69 6e 73 74 61 6c constraint).).{.$request->instal
928c0 6c 28 24 70 61 63 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 l($package->getName(),.$constrai
928e0 6e 74 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 71 75 65 73 74 3b 0a 7d 0a 0a 70 72 nt);.}.}..return.$request;.}..pr
92900 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 72 6f 63 65 73 73 44 65 76 50 61 63 6b 61 67 65 ivate.function.processDevPackage
92920 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 70 6f 6f 6c 2c 20 24 70 6f 6c 69 63 79 2c 20 24 72 s($localRepo,.$pool,.$policy,.$r
92940 65 70 6f 73 69 74 6f 72 69 65 73 2c 20 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2c 20 epositories,.$lockedRepository,.
92960 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 6b 2c 20 24 74 61 73 6b 2c 20 61 72 72 61 79 20 24 $installFromLock,.$task,.array.$
92980 6f 70 65 72 61 74 69 6f 6e 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 61 73 6b 20 3d operations.=.null).{.if.($task.=
929a0 3d 3d 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 20 26 26 20 6e 75 6c 6c 20 3d 3d 3d 20 24 ==.'force-updates'.&&.null.===.$
929c0 6f 70 65 72 61 74 69 6f 6e 73 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 operations).{.throw.new.\Invalid
929e0 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 4d 69 73 73 69 6e 67 20 6f 70 65 72 61 ArgumentException('Missing.opera
92a00 74 69 6f 6e 73 20 61 72 67 75 6d 65 6e 74 27 29 3b 0a 7d 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d tions.argument');.}.if.($task.==
92a20 3d 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 29 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 20 3d =.'force-links').{.$operations.=
92a40 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 61 6c 52 65 70 6f .array();.}..foreach.($localRepo
92a60 2d 3e 67 65 74 43 61 6e 6f 6e 69 63 61 6c 50 61 63 6b 61 67 65 73 28 29 20 61 73 20 24 70 61 63 ->getCanonicalPackages().as.$pac
92a80 6b 61 67 65 29 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 kage).{...if.(!$package->isDev()
92aa0 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 6f 70 65 ).{.continue;.}....foreach.($ope
92ac0 72 61 74 69 6f 6e 73 20 61 73 20 24 6f 70 65 72 61 74 69 6f 6e 29 20 7b 0a 69 66 20 28 28 27 75 rations.as.$operation).{.if.(('u
92ae0 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 79 70 pdate'.===.$operation->getJobTyp
92b00 65 28 29 20 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 49 6e 69 74 69 61 6c 50 61 63 e().&&.$operation->getInitialPac
92b20 6b 61 67 65 28 29 2d 3e 65 71 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 7c 7c 20 28 27 75 kage()->equals($package)).||.('u
92b40 6e 69 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 ninstall'.===.$operation->getJob
92b60 54 79 70 65 28 29 20 26 26 20 24 6f 70 65 72 61 74 69 6f 6e 2d 3e 67 65 74 50 61 63 6b 61 67 65 Type().&&.$operation->getPackage
92b80 28 29 2d 3e 65 71 75 61 6c 73 28 24 70 61 63 6b 61 67 65 29 29 0a 29 20 7b 0a 63 6f 6e 74 69 6e ()->equals($package)).).{.contin
92ba0 75 65 20 32 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 24 69 6e 73 74 61 6c 6c 46 72 6f 6d 4c 6f 63 ue.2;.}.}....if.($installFromLoc
92bc0 6b 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 6c 6f 63 6b 65 64 52 65 70 6f 73 69 74 6f 72 79 2d k).{.foreach.($lockedRepository-
92be0 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 65 74 4e 61 6d 65 28 >findPackages($package->getName(
92c00 29 29 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 24 6c 6f 63 )).as.$lockedPackage).{.if.($loc
92c20 6b 65 64 50 61 63 6b 61 67 65 2d 3e 69 73 44 65 76 28 29 20 26 26 20 24 6c 6f 63 6b 65 64 50 61 kedPackage->isDev().&&.$lockedPa
92c40 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 20 3d 3d 3d 20 24 70 61 63 6b 61 67 65 ckage->getVersion().===.$package
92c60 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 ->getVersion()).{.if.($task.===.
92c80 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 'force-links').{.$package->setRe
92ca0 71 75 69 72 65 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 quires($lockedPackage->getRequir
92cc0 65 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 24 6c es());.$package->setConflicts($l
92ce0 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 29 3b 0a 24 ockedPackage->getConflicts());.$
92d00 70 61 63 6b 61 67 65 2d 3e 73 65 74 50 72 6f 76 69 64 65 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b package->setProvides($lockedPack
92d20 61 67 65 2d 3e 67 65 74 50 72 6f 76 69 64 65 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 age->getProvides());.$package->s
92d40 65 74 52 65 70 6c 61 63 65 73 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 etReplaces($lockedPackage->getRe
92d60 70 6c 61 63 65 73 28 29 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 places());.}.elseif.($task.===.'
92d80 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 29 20 7b 0a 69 66 20 28 28 24 6c 6f 63 6b 65 64 50 61 force-updates').{.if.(($lockedPa
92da0 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 24 ckage->getSourceReference().&&.$
92dc0 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 lockedPackage->getSourceReferenc
92de0 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 e().!==.$package->getSourceRefer
92e00 65 6e 63 65 28 29 29 0a 7c 7c 20 28 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 ence()).||.($lockedPackage->getD
92e20 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 istReference().&&.$lockedPackage
92e40 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 ->getDistReference().!==.$packag
92e60 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e 63 65 28 29 29 0a 29 20 7b 0a 24 6f 70 65 72 e->getDistReference()).).{.$oper
92e80 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 24 ations[].=.new.UpdateOperation($
92ea0 70 61 63 6b 61 67 65 2c 20 24 6c 6f 63 6b 65 64 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 0a 62 package,.$lockedPackage);.}.}..b
92ec0 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e reak;.}.}.}.else.{...if.($this->
92ee0 75 70 64 61 74 65 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 update).{...if.($this->updateWhi
92f00 74 65 6c 69 73 74 20 26 26 20 21 24 74 68 69 73 2d 3e 69 73 55 70 64 61 74 65 61 62 6c 65 28 24 telist.&&.!$this->isUpdateable($
92f20 70 61 63 6b 61 67 65 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 24 6d 61 74 63 package)).{.continue;.}....$matc
92f40 68 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 hes.=.$pool->whatProvides($packa
92f60 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 65 77 20 56 65 72 73 69 6f 6e 43 6f 6e 73 74 72 ge->getName(),.new.VersionConstr
92f80 61 69 6e 74 28 27 3d 27 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 aint('=',.$package->getVersion()
92fa0 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 65 73 20 61 73 20 24 69 6e 64 65 78 20 ));.foreach.($matches.as.$index.
92fc0 3d 3e 20 24 6d 61 74 63 68 29 20 7b 0a 0a 20 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 6d 61 =>.$match).{...if.(!in_array($ma
92fe0 74 63 68 2d 3e 67 65 74 52 65 70 6f 73 69 74 6f 72 79 28 29 2c 20 24 72 65 70 6f 73 69 74 6f 72 tch->getRepository(),.$repositor
93000 69 65 73 2c 20 74 72 75 65 29 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 6e ies,.true)).{.unset($matches[$in
93020 64 65 78 5d 29 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 dex]);.continue;.}....if.($match
93040 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 3d 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d ->getName().!==.$package->getNam
93060 65 28 29 29 20 7b 0a 75 6e 73 65 74 28 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 29 3b 0a e()).{.unset($matches[$index]);.
93080 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6d 61 74 63 68 65 73 5b 24 69 6e 64 65 78 5d 20 3d 20 continue;.}..$matches[$index].=.
930a0 24 6d 61 74 63 68 2d 3e 67 65 74 49 64 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 6d 61 74 63 68 $match->getId();.}....if.($match
930c0 65 73 20 26 26 20 24 6d 61 74 63 68 65 73 20 3d 20 24 70 6f 6c 69 63 79 2d 3e 73 65 6c 65 63 74 es.&&.$matches.=.$policy->select
930e0 50 72 65 66 65 72 65 64 50 61 63 6b 61 67 65 73 28 24 70 6f 6f 6c 2c 20 61 72 72 61 79 28 29 2c PreferedPackages($pool,.array(),
93100 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 6e 65 77 50 61 63 6b 61 67 65 20 3d 20 24 70 6f 6f .$matches)).{.$newPackage.=.$poo
93120 6c 2d 3e 6c 69 74 65 72 61 6c 54 6f 50 61 63 6b 61 67 65 28 24 6d 61 74 63 68 65 73 5b 30 5d 29 l->literalToPackage($matches[0])
93140 3b 0a 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 6c 69 6e 6b 73 27 20 26 ;..if.($task.===.'force-links'.&
93160 26 20 24 6e 65 77 50 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 &.$newPackage).{.$package->setRe
93180 71 75 69 72 65 73 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 71 75 69 72 65 73 28 quires($newPackage->getRequires(
931a0 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 43 6f 6e 66 6c 69 63 74 73 28 24 6e 65 77 50 ));.$package->setConflicts($newP
931c0 61 63 6b 61 67 65 2d 3e 67 65 74 43 6f 6e 66 6c 69 63 74 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 ackage->getConflicts());.$packag
931e0 65 2d 3e 73 65 74 50 72 6f 76 69 64 65 73 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 50 e->setProvides($newPackage->getP
93200 72 6f 76 69 64 65 73 28 29 29 3b 0a 24 70 61 63 6b 61 67 65 2d 3e 73 65 74 52 65 70 6c 61 63 65 rovides());.$package->setReplace
93220 73 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 52 65 70 6c 61 63 65 73 28 29 29 3b 0a 7d s($newPackage->getReplaces());.}
93240 0a 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d 3d 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 20 ..if.($task.===.'force-updates'.
93260 26 26 20 24 6e 65 77 50 61 63 6b 61 67 65 20 26 26 20 28 0a 28 28 24 6e 65 77 50 61 63 6b 61 67 &&.$newPackage.&&.(.(($newPackag
93280 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 26 26 20 24 6e 65 77 50 e->getSourceReference().&&.$newP
932a0 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 20 21 3d 3d ackage->getSourceReference().!==
932c0 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 .$package->getSourceReference())
932e0 0a 7c 7c 20 28 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 72 65 6e .||.($newPackage->getDistReferen
93300 63 65 28 29 20 26 26 20 24 6e 65 77 50 61 63 6b 61 67 65 2d 3e 67 65 74 44 69 73 74 52 65 66 65 ce().&&.$newPackage->getDistRefe
93320 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 44 69 73 74 52 65 66 rence().!==.$package->getDistRef
93340 65 72 65 6e 63 65 28 29 29 0a 29 0a 29 29 20 7b 0a 24 6f 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d erence()).).)).{.$operations[].=
93360 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,.$
93380 6e 65 77 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 61 73 6b 20 3d 3d newPackage);.}.}.}..if.($task.==
933a0 3d 20 27 66 6f 72 63 65 2d 75 70 64 61 74 65 73 27 29 20 7b 0a 0a 20 24 72 65 66 65 72 65 6e 63 =.'force-updates').{...$referenc
933c0 65 73 20 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 es.=.$this->package->getReferenc
933e0 65 73 28 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 es();..if.(isset($references[$pa
93400 63 6b 61 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 ckage->getName()]).&&.$reference
93420 73 5b 24 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 s[$package->getName()].!==.$pack
93440 61 67 65 2d 3e 67 65 74 53 6f 75 72 63 65 52 65 66 65 72 65 6e 63 65 28 29 29 20 7b 0a 0a 20 24 age->getSourceReference()).{...$
93460 6f 70 65 72 61 74 69 6f 6e 73 5b 5d 20 3d 20 6e 65 77 20 55 70 64 61 74 65 4f 70 65 72 61 74 69 operations[].=.new.UpdateOperati
93480 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 29 3b 0a 7d 0a on($package,.clone.$package);.}.
934a0 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 70 65 72 61 74 69 6f 6e 73 3b 0a 7d 0a 0a 70 72 }.}.}..return.$operations;.}..pr
934c0 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 6f 6f 74 41 6c 69 61 73 65 73 28 29 0a ivate.function.getRootAliases().
934e0 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 6c {.if.(!$this->update.&&.$this->l
93500 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 20 ocker->isLocked()).{.$aliases.=.
93520 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 65 $this->locker->getAliases();.}.e
93540 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 2d lse.{.$aliases.=.$this->package-
93560 3e 67 65 74 41 6c 69 61 73 65 73 28 29 3b 0a 7d 0a 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 >getAliases();.}..$normalizedAli
93580 61 73 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 61 6c 69 61 73 ases.=.array();..foreach.($alias
935a0 65 73 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 es.as.$alias).{.$normalizedAlias
935c0 65 73 5b 24 61 6c 69 61 73 5b 27 70 61 63 6b 61 67 65 27 5d 5d 5b 24 61 6c 69 61 73 5b 27 76 65 es[$alias['package']][$alias['ve
935e0 72 73 69 6f 6e 27 5d 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 6c 69 61 73 27 20 3d 3e 20 24 61 6c rsion']].=.array(.'alias'.=>.$al
93600 69 61 73 5b 27 61 6c 69 61 73 27 5d 2c 0a 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 ias['alias'],.'alias_normalized'
93620 20 3d 3e 20 24 61 6c 69 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 0a 29 .=>.$alias['alias_normalized'].)
93640 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6e 6f 72 6d 61 6c 69 7a 65 64 41 6c 69 61 73 65 73 3b 0a ;.}..return.$normalizedAliases;.
93660 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 6c 69 61 73 50 6c 61 74 66 6f 72 }..private.function.aliasPlatfor
93680 6d 50 61 63 6b 61 67 65 73 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 20 24 70 6c mPackages(PlatformRepository.$pl
936a0 61 74 66 6f 72 6d 52 65 70 6f 2c 20 24 61 6c 69 61 73 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 atformRepo,.$aliases).{.foreach.
936c0 28 24 61 6c 69 61 73 65 73 20 61 73 20 24 70 61 63 6b 61 67 65 20 3d 3e 20 24 76 65 72 73 69 6f ($aliases.as.$package.=>.$versio
936e0 6e 73 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 76 65 72 73 69 6f 6e 73 20 61 73 20 24 76 65 72 ns).{.foreach.($versions.as.$ver
93700 73 69 6f 6e 20 3d 3e 20 24 61 6c 69 61 73 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 24 70 sion.=>.$alias).{.$packages.=.$p
93720 6c 61 74 66 6f 72 6d 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 latformRepo->findPackages($packa
93740 67 65 2c 20 24 76 65 72 73 69 6f 6e 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 70 61 63 6b 61 67 65 ge,.$version);.foreach.($package
93760 73 20 61 73 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 20 3d s.as.$package).{.$aliasPackage.=
93780 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 2c 20 24 61 6c 69 .new.AliasPackage($package,.$ali
937a0 61 73 5b 27 61 6c 69 61 73 5f 6e 6f 72 6d 61 6c 69 7a 65 64 27 5d 2c 20 24 61 6c 69 61 73 5b 27 as['alias_normalized'],.$alias['
937c0 61 6c 69 61 73 27 5d 29 3b 0a 24 61 6c 69 61 73 50 61 63 6b 61 67 65 2d 3e 73 65 74 52 6f 6f 74 alias']);.$aliasPackage->setRoot
937e0 50 61 63 6b 61 67 65 41 6c 69 61 73 28 74 72 75 65 29 3b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 70 PackageAlias(true);.$platformRep
93800 6f 2d 3e 61 64 64 50 61 63 6b 61 67 65 28 24 61 6c 69 61 73 50 61 63 6b 61 67 65 29 3b 0a 7d 0a o->addPackage($aliasPackage);.}.
93820 7d 0a 7d 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 55 70 64 61 74 65 }.}.}..private.function.isUpdate
93840 61 62 6c 65 28 50 61 63 6b 61 67 65 49 6e 74 65 72 66 61 63 65 20 24 70 61 63 6b 61 67 65 29 0a able(PackageInterface.$package).
93860 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 29 20 7b {.if.(!$this->updateWhitelist).{
93880 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 69 73 55 70 .throw.new.\LogicException('isUp
938a0 64 61 74 65 61 62 6c 65 20 73 68 6f 75 6c 64 20 6f 6e 6c 79 20 62 65 20 63 61 6c 6c 65 64 20 77 dateable.should.only.be.called.w
938c0 68 65 6e 20 61 20 77 68 69 74 65 6c 69 73 74 20 69 73 20 70 72 65 73 65 6e 74 27 29 3b 0a 7d 0a hen.a.whitelist.is.present');.}.
938e0 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 6c 69 73 74 .foreach.($this->updateWhitelist
93900 20 61 73 20 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 20 3d 3e 20 24 76 6f 69 64 .as.$whiteListedPattern.=>.$void
93920 29 20 7b 0a 24 63 6c 65 61 6e 65 64 57 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 20 3d ).{.$cleanedWhiteListedPattern.=
93940 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 5c 2a 27 2c 20 27 2e 2a 27 2c 20 70 72 65 67 5f 71 .str_replace('\\*',.'.*',.preg_q
93960 75 6f 74 65 28 24 77 68 69 74 65 4c 69 73 74 65 64 50 61 74 74 65 72 6e 29 29 3b 0a 0a 69 66 20 uote($whiteListedPattern));..if.
93980 28 70 72 65 67 5f 6d 61 74 63 68 28 22 7b 5e 22 2e 24 63 6c 65 61 6e 65 64 57 68 69 74 65 4c 69 (preg_match("{^".$cleanedWhiteLi
939a0 73 74 65 64 50 61 74 74 65 72 6e 2e 22 24 7d 69 22 2c 20 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 stedPattern."$}i",.$package->get
939c0 4e 61 6d 65 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 Name())).{.return.true;.}.}..ret
939e0 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 65 urn.false;.}..private.function.e
93a00 78 74 72 61 63 74 50 6c 61 74 66 6f 72 6d 52 65 71 75 69 72 65 6d 65 6e 74 73 28 24 6c 69 6e 6b xtractPlatformRequirements($link
93a20 73 29 0a 7b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f s).{.$platformReqs.=.array();.fo
93a40 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 69 66 20 28 70 72 reach.($links.as.$link).{.if.(pr
93a60 65 67 5f 6d 61 74 63 68 28 50 6c 61 74 66 6f 72 6d 52 65 70 6f 73 69 74 6f 72 79 3a 3a 50 4c 41 eg_match(PlatformRepository::PLA
93a80 54 46 4f 52 4d 5f 50 41 43 4b 41 47 45 5f 52 45 47 45 58 2c 20 24 6c 69 6e 6b 2d 3e 67 65 74 54 TFORM_PACKAGE_REGEX,.$link->getT
93aa0 61 72 67 65 74 28 29 29 29 20 7b 0a 24 70 6c 61 74 66 6f 72 6d 52 65 71 73 5b 24 6c 69 6e 6b 2d arget())).{.$platformReqs[$link-
93ac0 3e 67 65 74 54 61 72 67 65 74 28 29 5d 20 3d 20 24 6c 69 6e 6b 2d 3e 67 65 74 50 72 65 74 74 79 >getTarget()].=.$link->getPretty
93ae0 43 6f 6e 73 74 72 61 69 6e 74 28 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 70 6c 61 74 66 Constraint();.}.}..return.$platf
93b00 6f 72 6d 52 65 71 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 ormReqs;.}..............private.
93b20 66 75 6e 63 74 69 6f 6e 20 77 68 69 74 65 6c 69 73 74 55 70 64 61 74 65 44 65 70 65 6e 64 65 6e function.whitelistUpdateDependen
93b40 63 69 65 73 28 24 6c 6f 63 61 6c 52 65 70 6f 2c 20 24 64 65 76 4d 6f 64 65 2c 20 61 72 72 61 79 cies($localRepo,.$devMode,.array
93b60 20 24 72 6f 6f 74 52 65 71 75 69 72 65 73 2c 20 61 72 72 61 79 20 24 72 6f 6f 74 44 65 76 52 65 .$rootRequires,.array.$rootDevRe
93b80 71 75 69 72 65 73 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 quires).{.if.(!$this->updateWhit
93ba0 65 6c 69 73 74 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 72 65 71 75 69 72 65 64 50 61 63 elist).{.return;.}..$requiredPac
93bc0 6b 61 67 65 4e 61 6d 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 kageNames.=.array();.foreach.(ar
93be0 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
93c00 76 52 65 71 75 69 72 65 73 29 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 72 65 71 75 69 vRequires).as.$require).{.$requi
93c20 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 73 5b 5d 20 3d 20 24 72 65 71 75 69 72 65 2d 3e 67 65 redPackageNames[].=.$require->ge
93c40 74 54 61 72 67 65 74 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 76 4d 6f 64 65 29 20 7b 0a 24 72 tTarget();.}..if.($devMode).{.$r
93c60 6f 6f 74 52 65 71 75 69 72 65 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 6f 6f 74 52 ootRequires.=.array_merge($rootR
93c80 65 71 75 69 72 65 73 2c 20 24 72 6f 6f 74 44 65 76 52 65 71 75 69 72 65 73 29 3b 0a 7d 0a 0a 24 equires,.$rootDevRequires);.}..$
93ca0 73 6b 69 70 50 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 skipPackages.=.array();.foreach.
93cc0 28 24 72 6f 6f 74 52 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 73 ($rootRequires.as.$require).{.$s
93ce0 6b 69 70 50 61 63 6b 61 67 65 73 5b 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 65 74 28 kipPackages[$require->getTarget(
93d00 29 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 70 6f 6f 6c 20 3d 20 6e 65 77 20 50 6f 6f 6c 3b 0a )].=.true;.}..$pool.=.new.Pool;.
93d20 24 70 6f 6f 6c 2d 3e 61 64 64 52 65 70 6f 73 69 74 6f 72 79 28 24 6c 6f 63 61 6c 52 65 70 6f 29 $pool->addRepository($localRepo)
93d40 3b 0a 0a 24 73 65 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 ;..$seen.=.array();..foreach.($t
93d60 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 20 61 73 20 24 70 61 63 6b 61 67 65 his->updateWhitelist.as.$package
93d80 4e 61 6d 65 20 3d 3e 20 24 76 6f 69 64 29 20 7b 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 20 3d Name.=>.$void).{.$packageQueue.=
93da0 20 6e 65 77 20 5c 53 70 6c 51 75 65 75 65 3b 0a 0a 24 64 65 70 50 61 63 6b 61 67 65 73 20 3d 20 .new.\SplQueue;..$depPackages.=.
93dc0 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f 76 69 64 65 73 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 $pool->whatProvides($packageName
93de0 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 70 50 61 63 6b 61 67 65 73 29 20 3d 3d 20 30 20 );.if.(count($depPackages).==.0.
93e00 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 24 72 65 71 75 &&.!in_array($packageName,.$requ
93e20 69 72 65 64 50 61 63 6b 61 67 65 4e 61 6d 65 73 29 20 26 26 20 21 69 6e 5f 61 72 72 61 79 28 24 iredPackageNames).&&.!in_array($
93e40 70 61 63 6b 61 67 65 4e 61 6d 65 2c 20 61 72 72 61 79 28 27 6e 6f 74 68 69 6e 67 27 2c 20 27 6c packageName,.array('nothing',.'l
93e60 6f 63 6b 27 29 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6f 2d 3e 77 72 69 74 65 28 27 3c 77 61 72 ock'))).{.$this->io->write('<war
93e80 6e 69 6e 67 3e 50 61 63 6b 61 67 65 20 22 27 20 2e 20 24 70 61 63 6b 61 67 65 4e 61 6d 65 20 2e ning>Package."'...$packageName..
93ea0 20 27 22 20 6c 69 73 74 65 64 20 66 6f 72 20 75 70 64 61 74 65 20 69 73 20 6e 6f 74 20 69 6e 73 .'".listed.for.update.is.not.ins
93ec0 74 61 6c 6c 65 64 2e 20 49 67 6e 6f 72 69 6e 67 2e 3c 2f 77 61 72 6e 69 6e 67 3e 27 29 3b 0a 7d talled..Ignoring.</warning>');.}
93ee0 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 50 61 63 6b 61 67 65 73 20 61 73 20 24 64 65 70 50 ..foreach.($depPackages.as.$depP
93f00 61 63 6b 61 67 65 29 20 7b 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 65 6e 71 75 65 75 65 ackage).{.$packageQueue->enqueue
93f20 28 24 64 65 70 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 0a 77 68 69 6c 65 20 28 21 24 70 61 63 6b 61 ($depPackage);.}..while.(!$packa
93f40 67 65 51 75 65 75 65 2d 3e 69 73 45 6d 70 74 79 28 29 29 20 7b 0a 24 70 61 63 6b 61 67 65 20 3d geQueue->isEmpty()).{.$package.=
93f60 20 24 70 61 63 6b 61 67 65 51 75 65 75 65 2d 3e 64 65 71 75 65 75 65 28 29 3b 0a 69 66 20 28 69 .$packageQueue->dequeue();.if.(i
93f80 73 73 65 74 28 24 73 65 65 6e 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 49 64 28 29 5d 29 29 20 sset($seen[$package->getId()])).
93fa0 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 73 65 65 6e 5b 24 70 61 63 6b 61 67 65 2d 3e 67 {.continue;.}..$seen[$package->g
93fc0 65 74 49 64 28 29 5d 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 etId()].=.true;.$this->updateWhi
93fe0 74 65 6c 69 73 74 5b 24 70 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 74 72 telist[$package->getName()].=.tr
94000 75 65 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 77 68 69 74 65 6c 69 73 74 44 65 70 65 6e 64 ue;..if.(!$this->whitelistDepend
94020 65 6e 63 69 65 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 72 65 71 75 69 72 65 73 encies).{.continue;.}..$requires
94040 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 0a 66 6f 72 .=.$package->getRequires();..for
94060 65 61 63 68 20 28 24 72 65 71 75 69 72 65 73 20 61 73 20 24 72 65 71 75 69 72 65 29 20 7b 0a 24 each.($requires.as.$require).{.$
94080 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 73 20 3d 20 24 70 6f 6f 6c 2d 3e 77 68 61 74 50 72 6f requirePackages.=.$pool->whatPro
940a0 76 69 64 65 73 28 24 72 65 71 75 69 72 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 3b 0a 0a 66 vides($require->getTarget());..f
940c0 6f 72 65 61 63 68 20 28 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 73 20 61 73 20 24 72 65 71 oreach.($requirePackages.as.$req
940e0 75 69 72 65 50 61 63 6b 61 67 65 29 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 73 6b 69 70 50 61 uirePackage).{.if.(isset($skipPa
94100 63 6b 61 67 65 73 5b 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 2d 3e 67 65 74 4e 61 6d 65 28 ckages[$requirePackage->getName(
94120 29 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 24 70 61 63 6b 61 67 65 51 75 65 75 65 )])).{.continue;.}.$packageQueue
94140 2d 3e 65 6e 71 75 65 75 65 28 24 72 65 71 75 69 72 65 50 61 63 6b 61 67 65 29 3b 0a 7d 0a 7d 0a ->enqueue($requirePackage);.}.}.
94160 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d }.}.}.........private.function.m
94180 6f 63 6b 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 69 65 73 28 52 65 70 6f 73 69 74 6f 72 79 4d ockLocalRepositories(RepositoryM
941a0 61 6e 61 67 65 72 20 24 72 6d 29 0a 7b 0a 24 70 61 63 6b 61 67 65 73 20 3d 20 61 72 72 61 79 28 anager.$rm).{.$packages.=.array(
941c0 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 72 6d 2d 3e 67 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 );.foreach.($rm->getLocalReposit
941e0 6f 72 79 28 29 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 ory()->getPackages().as.$package
94200 29 20 7b 0a 24 70 61 63 6b 61 67 65 73 5b 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 65 5d ).{.$packages[(string).$package]
94220 20 3d 20 63 6c 6f 6e 65 20 24 70 61 63 6b 61 67 65 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 70 .=.clone.$package;.}.foreach.($p
94240 61 63 6b 61 67 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 70 61 63 6b 61 67 65 29 20 7b 0a 69 ackages.as.$key.=>.$package).{.i
94260 66 20 28 24 70 61 63 6b 61 67 65 20 69 6e 73 74 61 6e 63 65 6f 66 20 41 6c 69 61 73 50 61 63 6b f.($package.instanceof.AliasPack
94280 61 67 65 29 20 7b 0a 24 61 6c 69 61 73 20 3d 20 28 73 74 72 69 6e 67 29 20 24 70 61 63 6b 61 67 age).{.$alias.=.(string).$packag
942a0 65 2d 3e 67 65 74 41 6c 69 61 73 4f 66 28 29 3b 0a 24 70 61 63 6b 61 67 65 73 5b 24 6b 65 79 5d e->getAliasOf();.$packages[$key]
942c0 20 3d 20 6e 65 77 20 41 6c 69 61 73 50 61 63 6b 61 67 65 28 24 70 61 63 6b 61 67 65 73 5b 24 61 .=.new.AliasPackage($packages[$a
942e0 6c 69 61 73 5d 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 24 lias],.$package->getVersion(),.$
94300 70 61 63 6b 61 67 65 2d 3e 67 65 74 50 72 65 74 74 79 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a package->getPrettyVersion());.}.
94320 7d 0a 24 72 6d 2d 3e 73 65 74 4c 6f 63 61 6c 52 65 70 6f 73 69 74 6f 72 79 28 0a 6e 65 77 20 49 }.$rm->setLocalRepository(.new.I
94340 6e 73 74 61 6c 6c 65 64 41 72 72 61 79 52 65 70 6f 73 69 74 6f 72 79 28 24 70 61 63 6b 61 67 65 nstalledArrayRepository($package
94360 73 29 0a 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 s).);.}.........public.static.fu
94380 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 49 4f 49 6e 74 65 72 66 61 63 65 20 24 69 6f 2c 20 43 nction.create(IOInterface.$io,.C
943a0 6f 6d 70 6f 73 65 72 20 24 63 6f 6d 70 6f 73 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 omposer.$composer).{.return.new.
943c0 73 74 61 74 69 63 28 0a 24 69 6f 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 43 6f 6e 66 69 static(.$io,.$composer->getConfi
943e0 67 28 29 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 50 61 63 6b 61 67 65 28 29 2c 0a 24 63 g(),.$composer->getPackage(),.$c
94400 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 44 6f 77 6e 6c 6f 61 64 4d 61 6e 61 67 65 72 28 29 2c 0a 24 omposer->getDownloadManager(),.$
94420 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 28 29 composer->getRepositoryManager()
94440 2c 0a 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 4c 6f 63 6b 65 72 28 29 2c 0a 24 63 6f 6d 70 6f ,.$composer->getLocker(),.$compo
94460 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 72 28 29 2c 0a 24 ser->getInstallationManager(),.$
94480 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 28 29 2c 0a composer->getEventDispatcher(),.
944a0 24 63 6f 6d 70 6f 73 65 72 2d 3e 67 65 74 41 75 74 6f 6c 6f 61 64 47 65 6e 65 72 61 74 6f 72 28 $composer->getAutoloadGenerator(
944c0 29 0a 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 41 64 64 69 74 ).);.}..public.function.setAddit
944e0 69 6f 6e 61 6c 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 ionalInstalledRepository(Reposit
94500 6f 72 79 49 6e 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 oryInterface.$additionalInstalle
94520 64 52 65 70 6f 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 dRepository).{.$this->additional
94540 49 6e 73 74 61 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 InstalledRepository.=.$additiona
94560 6c 49 6e 73 74 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 lInstalledRepository;..return.$t
94580 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 65 his;.}........public.function.se
945a0 74 44 72 79 52 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 tDryRun($dryRun.=.true).{.$this-
945c0 3e 64 72 79 52 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 >dryRun.=.(boolean).$dryRun;..re
945e0 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
94600 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 75 72 tion.setPreferSource($preferSour
94620 63 65 20 3d 20 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 ce.=.true).{.$this->preferSource
94640 20 3d 20 28 62 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 .=.(boolean).$preferSource;..ret
94660 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 urn.$this;.}........public.funct
94680 69 6f 6e 20 73 65 74 50 72 65 66 65 72 44 69 73 74 28 24 70 72 65 66 65 72 44 69 73 74 20 3d 20 ion.setPreferDist($preferDist.=.
946a0 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 65 72 44 69 73 74 20 3d 20 28 62 6f 6f true).{.$this->preferDist.=.(boo
946c0 6c 65 61 6e 29 20 24 70 72 65 66 65 72 44 69 73 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 lean).$preferDist;..return.$this
946e0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 ;.}........public.function.setOp
94700 74 69 6d 69 7a 65 41 75 74 6f 6c 6f 61 64 65 72 28 24 6f 70 74 69 6d 69 7a 65 41 75 74 6f 6c 6f timizeAutoloader($optimizeAutolo
94720 61 64 65 72 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6d 69 7a 65 41 ader.=.false).{.$this->optimizeA
94740 75 74 6f 6c 6f 61 64 65 72 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 6f 70 74 69 6d 69 7a 65 41 utoloader.=.(boolean).$optimizeA
94760 75 74 6f 6c 6f 61 64 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a utoloader;..return.$this;.}.....
94780 0a 0a 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 28 24 75 70 ...public.function.setUpdate($up
947a0 64 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 20 3d 20 28 date.=.true).{.$this->update.=.(
947c0 62 6f 6f 6c 65 61 6e 29 20 24 75 70 64 61 74 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b boolean).$update;..return.$this;
947e0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 76 .}........public.function.setDev
94800 4d 6f 64 65 28 24 64 65 76 4d 6f 64 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 Mode($devMode.=.true).{.$this->d
94820 65 76 4d 6f 64 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 64 65 76 4d 6f 64 65 3b 0a 0a 72 65 evMode.=.(boolean).$devMode;..re
94840 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
94860 74 69 6f 6e 20 73 65 74 52 75 6e 53 63 72 69 70 74 73 28 24 72 75 6e 53 63 72 69 70 74 73 20 3d tion.setRunScripts($runScripts.=
94880 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 75 6e 53 63 72 69 70 74 73 20 3d 20 28 62 6f .true).{.$this->runScripts.=.(bo
948a0 6f 6c 65 61 6e 29 20 24 72 75 6e 53 63 72 69 70 74 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 olean).$runScripts;..return.$thi
948c0 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 s;.}........public.function.setC
948e0 6f 6e 66 69 67 28 43 6f 6e 66 69 67 20 24 63 6f 6e 66 69 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 onfig(Config.$config).{.$this->c
94900 6f 6e 66 69 67 20 3d 20 24 63 6f 6e 66 69 67 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a onfig.=.$config;..return.$this;.
94920 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 56 65 72 62 }........public.function.setVerb
94940 6f 73 65 28 24 76 65 72 62 6f 73 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 ose($verbose.=.true).{.$this->ve
94960 72 62 6f 73 65 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 76 65 72 62 6f 73 65 3b 0a 0a 72 65 74 rbose.=.(boolean).$verbose;..ret
94980 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
949a0 74 69 6f 6e 20 73 65 74 55 70 64 61 74 65 57 68 69 74 65 6c 69 73 74 28 61 72 72 61 79 20 24 70 tion.setUpdateWhitelist(array.$p
949c0 61 63 6b 61 67 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 57 68 69 74 65 6c 69 73 ackages).{.$this->updateWhitelis
949e0 74 20 3d 20 61 72 72 61 79 5f 66 6c 69 70 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 74 6f 6c t.=.array_flip(array_map('strtol
94a00 6f 77 65 72 27 2c 20 24 70 61 63 6b 61 67 65 73 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 ower',.$packages));..return.$thi
94a20 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 s;.}........public.function.setW
94a40 68 69 74 65 6c 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 28 24 75 70 64 61 74 65 44 65 70 65 hitelistDependencies($updateDepe
94a60 6e 64 65 6e 63 69 65 73 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 68 69 74 65 6c ndencies.=.true).{.$this->whitel
94a80 69 73 74 44 65 70 65 6e 64 65 6e 63 69 65 73 20 3d 20 28 62 6f 6f 6c 65 61 6e 29 20 24 75 70 64 istDependencies.=.(boolean).$upd
94aa0 61 74 65 44 65 70 65 6e 64 65 6e 63 69 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a ateDependencies;..return.$this;.
94ac0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 61 }...........public.function.disa
94ae0 62 6c 65 50 6c 75 67 69 6e 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 73 74 61 6c 6c 61 74 69 blePlugins().{.$this->installati
94b00 6f 6e 4d 61 6e 61 67 65 72 2d 3e 64 69 73 61 62 6c 65 50 6c 75 67 69 6e 73 28 29 3b 0a 0a 72 65 onManager->disablePlugins();..re
94b20 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 54 68 69 turn.$this;.}.}.<?php../*..*.Thi
94b40 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 0a 20 s.file.is.part.of.Composer...*..
94b60 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 6e 61 *.(c).Nils.Adermann.<naderman@na
94b80 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 6e 6f derman.de>..*.....Jordi.Boggiano
94ba0 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 72 20 .<j.boggiano@seld.be>..*..*.For.
94bc0 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 20 69 the.full.copyright.and.license.i
94be0 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 49 43 45 nformation,.please.view.the.LICE
94c00 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 74 65 64 NSE..*.file.that.was.distributed
94c20 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 6e 61 6d .with.this.source.code...*/..nam
94c40 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 2a 0a 20 espace.Composer\Autoload;../**..
94c60 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 52 2d 30 *.ClassLoader.implements.a.PSR-0
94c80 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 3a 2f 2f .class.loader..*..*.See.https://
94ca0 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 72 64 73 github.com/php-fig/fig-standards
94cc0 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 64 0a 20 /blob/master/accepted/PSR-0.md..
94ce0 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 73 65 72 *..*.....$loader.=.new.\Composer
94d00 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 2a 20 20 \Autoload\ClassLoader();..*..*..
94d20 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 61 6d 65 ...//.register.classes.with.name
94d40 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 79 6d 66 spaces..*.....$loader->add('Symf
94d60 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 70 6f 6e ony\Component',.__DIR__.'/compon
94d80 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 79 6d 66 ent');..*.....$loader->add('Symf
94da0 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 6d 65 77 ony',...........__DIR__.'/framew
94dc0 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 74 68 65 ork');..*..*.....//.activate.the
94de0 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 65 67 69 .autoloader..*.....$loader->regi
94e00 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 65 20 73 ster();..*..*.....//.to.enable.s
94e20 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 2e 20 66 earching.the.include.path.(eg..f
94e40 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 64 65 72 or.PEAR.packages)..*.....$loader
94e60 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 0a 20 2a ->setUseIncludePath(true);..*..*
94e80 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 74 6f 20 .In.this.example,.if.you.try.to.
94ea0 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 6d 70 6f use.a.class.in.the.Symfony\Compo
94ec0 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 74 73 20 nent..*.namespace.or.one.of.its.
94ee0 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 6f 6e 73 children.(Symfony\Component\Cons
94f00 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 6f 6c 6f ole.for.instance),..*.the.autolo
94f20 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 63 6c 61 ader.will.first.look.for.the.cla
94f40 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 72 65 63 ss.under.the.component/..*.direc
94f60 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 63 6b 20 tory,.and.it.will.then.fallback.
94f80 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 66 20 6e to.the.framework/.directory.if.n
94fa0 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 0a 20 2a ot..*.found.before.giving.up...*
94fc0 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 65 64 20 ..*.This.class.is.loosely.based.
94fe0 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 4c 6f 61 on.the.Symfony.UniversalClassLoa
95000 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 65 6e 63 der...*..*.@author.Fabien.Potenc
95020 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 61 75 74 ier.<fabien@symfony.com>..*.@aut
95040 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 6f 40 73 hor.Jordi.Boggiano.<j.boggiano@s
95060 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 0a 7b 0a eld.be>..*/.class.ClassLoader.{.
95080 20 20 20 20 2f 2f 20 50 53 52 2d 34 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 ....//.PSR-4.....private.$prefix
950a0 4c 65 6e 67 74 68 73 50 73 72 34 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 70 72 69 76 61 LengthsPsr4.=.array();.....priva
950c0 74 65 20 24 70 72 65 66 69 78 44 69 72 73 50 73 72 34 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 te.$prefixDirsPsr4.=.array();...
950e0 20 20 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d 20 61 72 ..private.$fallbackDirsPsr4.=.ar
95100 72 61 79 28 29 3b 0a 0a 20 20 20 20 2f 2f 20 50 53 52 2d 30 0a 20 20 20 20 70 72 69 76 61 74 65 ray();......//.PSR-0.....private
95120 20 24 70 72 65 66 69 78 65 73 50 73 72 30 20 3d 20 61 72 72 61 79 28 29 3b 0a 20 20 20 20 70 72 .$prefixesPsr0.=.array();.....pr
95140 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 28 ivate.$fallbackDirsPsr0.=.array(
95160 29 3b 0a 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 );......private.$useIncludePath.
95180 3d 20 66 61 6c 73 65 3b 0a 20 20 20 20 70 72 69 76 61 74 65 20 24 63 6c 61 73 73 4d 61 70 20 3d =.false;.....private.$classMap.=
951a0 20 61 72 72 61 79 28 29 3b 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 .array();......public.function.g
951c0 65 74 50 72 65 66 69 78 65 73 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 etPrefixes().....{.........retur
951e0 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 6d 65 n.call_user_func_array('array_me
95200 72 67 65 27 2c 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 29 3b 0a 20 20 20 20 rge',.$this->prefixesPsr0);.....
95220 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 }......public.function.getPrefix
95240 65 73 50 73 72 34 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 esPsr4().....{.........return.$t
95260 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 his->prefixDirsPsr4;.....}......
95280 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 72 73 28 public.function.getFallbackDirs(
952a0 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 ).....{.........return.$this->fa
952c0 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 llbackDirsPsr0;.....}......publi
952e0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 28 29 c.function.getFallbackDirsPsr4()
95300 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c .....{.........return.$this->fal
95320 6c 62 61 63 6b 44 69 72 73 50 73 72 34 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 70 75 62 6c 69 63 lbackDirsPsr4;.....}......public
95340 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().....{...
95360 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;...
95380 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
953a0 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
953c0 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
953e0 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).....{.
95400 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).{..
95420 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
95440 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
95460 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.{..........
95480 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;.
954a0 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 ........}.....}....../**......*.
954c0 52 65 67 69 73 74 65 72 73 20 61 20 73 65 74 20 6f 66 20 50 53 52 2d 30 20 64 69 72 65 63 74 6f Registers.a.set.of.PSR-0.directo
954e0 72 69 65 73 20 66 6f 72 20 61 20 67 69 76 65 6e 20 70 72 65 66 69 78 2c 20 65 69 74 68 65 72 0a ries.for.a.given.prefix,.either.
95500 20 20 20 20 20 2a 20 61 70 70 65 6e 64 69 6e 67 20 6f 72 20 70 72 65 70 65 6e 64 69 6e 67 20 74 .....*.appending.or.prepending.t
95520 6f 20 74 68 65 20 6f 6e 65 73 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 20 66 6f 72 20 74 68 o.the.ones.previously.set.for.th
95540 69 73 20 70 72 65 66 69 78 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 is.prefix.......*......*.@param.
95560 73 74 72 69 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 20 54 68 65 20 70 72 65 66 69 78 string.......$prefix..The.prefix
95580 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c 73 74 72 69 6e 67 20 24 70 61 74 ......*.@param.array|string.$pat
955a0 68 73 20 20 20 54 68 65 20 50 53 52 2d 30 20 72 6f 6f 74 20 64 69 72 65 63 74 6f 72 69 65 73 0a hs...The.PSR-0.root.directories.
955c0 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 20 20 20 20 20 20 20 20 24 70 72 65 70 .....*.@param.bool.........$prep
955e0 65 6e 64 20 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 70 65 6e 64 20 74 68 65 20 64 69 72 65 63 end.Whether.to.prepend.the.direc
95600 74 6f 72 69 65 73 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 tories......*/.....public.functi
95620 6f 6e 20 61 64 64 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 2c 20 24 70 72 65 70 65 6e 64 on.add($prefix,.$paths,.$prepend
95640 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 .=.false).....{.........if.(!$pr
95660 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 24 70 72 65 70 65 6e 64 efix).{.............if.($prepend
95680 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 ).{.................$this->fallb
956a0 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 ackDirsPsr0.=.array_merge(......
956c0 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 2c 0a 20 ...............(array).$paths,..
956e0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 ...................$this->fallba
95700 63 6b 44 69 72 73 50 73 72 30 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 ckDirsPsr0.................);...
95720 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ..........}.else.{..............
95740 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 ...$this->fallbackDirsPsr0.=.arr
95760 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 ay_merge(.....................$t
95780 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 2c 0a 20 20 20 20 20 20 20 20 20 his->fallbackDirsPsr0,..........
957a0 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 ...........(array).$paths.......
957c0 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 ..........);.............}......
957e0 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 ........return;.........}.......
95800 20 20 20 24 66 69 72 73 74 20 3d 20 24 70 72 65 66 69 78 5b 30 5d 3b 0a 20 20 20 20 20 20 20 20 ...$first.=.$prefix[0];.........
95820 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 if.(!isset($this->prefixesPsr0[$
95840 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 first][$prefix])).{.............
95860 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 $this->prefixesPsr0[$first][$pre
95880 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 0a 20 20 20 20 20 20 20 20 fix].=.(array).$paths;..........
958a0 20 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 ....return;.........}.........if
958c0 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d .($prepend).{.............$this-
958e0 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d >prefixesPsr0[$first][$prefix].=
95900 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 .array_merge(.................(a
95920 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 rray).$paths,.................$t
95940 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 his->prefixesPsr0[$first][$prefi
95960 78 5d 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 x].............);.........}.else
95980 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 50 73 .{.............$this->prefixesPs
959a0 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 r0[$first][$prefix].=.array_merg
959c0 65 28 0a 20 20 20 20 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 e(.................$this->prefix
959e0 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 2c 0a 20 20 20 20 20 20 20 esPsr0[$first][$prefix],........
95a00 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 .........(array).$paths.........
95a20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a ....);.........}.....}....../**.
95a40 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 61 20 73 65 74 20 6f 66 20 50 53 52 2d 34 20 .....*.Registers.a.set.of.PSR-4.
95a60 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 20 67 69 76 65 6e 20 6e 61 6d 65 73 70 61 63 directories.for.a.given.namespac
95a80 65 2c 20 65 69 74 68 65 72 0a 20 20 20 20 20 2a 20 61 70 70 65 6e 64 69 6e 67 20 6f 72 20 70 72 e,.either......*.appending.or.pr
95aa0 65 70 65 6e 64 69 6e 67 20 74 6f 20 74 68 65 20 6f 6e 65 73 20 70 72 65 76 69 6f 75 73 6c 79 20 epending.to.the.ones.previously.
95ac0 73 65 74 20 66 6f 72 20 74 68 69 73 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 2a 0a 20 set.for.this.namespace.......*..
95ae0 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 65 66 69 ....*.@param.string.......$prefi
95b00 78 20 20 54 68 65 20 70 72 65 66 69 78 2f 6e 61 6d 65 73 70 61 63 65 2c 20 77 69 74 68 20 74 72 x..The.prefix/namespace,.with.tr
95b20 61 69 6c 69 6e 67 20 27 5c 5c 27 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 72 72 61 79 7c ailing.'\\'......*.@param.array|
95b40 73 74 72 69 6e 67 20 24 70 61 74 68 73 20 20 20 54 68 65 20 50 53 52 2d 30 20 62 61 73 65 20 64 string.$paths...The.PSR-0.base.d
95b60 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 20 20 irectories......*.@param.bool...
95b80 20 20 20 20 20 20 24 70 72 65 70 65 6e 64 20 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 70 65 6e ......$prepend.Whether.to.prepen
95ba0 64 20 74 68 65 20 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 d.the.directories......*/.....pu
95bc0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 50 73 72 34 28 24 70 72 65 66 69 78 2c 20 24 blic.function.addPsr4($prefix,.$
95be0 70 61 74 68 73 2c 20 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 paths,.$prepend.=.false).....{..
95c00 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 .......if.(!$prefix).{..........
95c20 20 20 20 2f 2f 20 52 65 67 69 73 74 65 72 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 74 ...//.Register.directories.for.t
95c40 68 65 20 72 6f 6f 74 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 he.root.namespace..............i
95c60 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 f.($prepend).{.................$
95c80 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d 20 61 72 72 61 79 5f 6d this->fallbackDirsPsr4.=.array_m
95ca0 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 erge(.....................(array
95cc0 29 20 24 70 61 74 68 73 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 ).$paths,.....................$t
95ce0 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 0a 20 20 20 20 20 20 20 20 20 20 his->fallbackDirsPsr4...........
95d00 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 ......);.............}.else.{...
95d20 20 20 20 20 20 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 ..............$this->fallbackDir
95d40 73 50 73 72 34 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 sPsr4.=.array_merge(............
95d60 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 50 73 72 34 .........$this->fallbackDirsPsr4
95d80 2c 0a 20 20 20 20 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 ,.....................(array).$p
95da0 61 74 68 73 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 aths.................);.........
95dc0 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 73 65 69 66 20 28 21 69 73 73 65 74 28 24 ....}.........}.elseif.(!isset($
95de0 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 29 29 20 this->prefixDirsPsr4[$prefix])).
95e00 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 52 65 67 69 73 74 65 72 20 64 69 72 65 63 74 {.............//.Register.direct
95e20 6f 72 69 65 73 20 66 6f 72 20 61 20 6e 65 77 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 ories.for.a.new.namespace.......
95e40 20 20 20 20 20 20 20 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 78 29 .......$length.=.strlen($prefix)
95e60 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 27 5c 5c 27 20 21 3d 3d 20 24 70 72 65 66 ;.............if.('\\'.!==.$pref
95e80 69 78 5b 24 6c 65 6e 67 74 68 20 2d 20 31 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ix[$length.-.1]).{..............
95ea0 20 20 20 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
95ec0 65 70 74 69 6f 6e 28 22 41 20 6e 6f 6e 2d 65 6d 70 74 79 20 50 53 52 2d 34 20 70 72 65 66 69 78 eption("A.non-empty.PSR-4.prefix
95ee0 20 6d 75 73 74 20 65 6e 64 20 77 69 74 68 20 61 20 6e 61 6d 65 73 70 61 63 65 20 73 65 70 61 72 .must.end.with.a.namespace.separ
95f00 61 74 6f 72 2e 22 29 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 ator.");.............}..........
95f20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 34 5b 24 70 72 65 ...$this->prefixLengthsPsr4[$pre
95f40 66 69 78 5b 30 5d 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 24 6c 65 6e 67 74 68 3b 0a 20 20 20 20 fix[0]][$prefix].=.$length;.....
95f60 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 ........$this->prefixDirsPsr4[$p
95f80 72 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 refix].=.(array).$paths;........
95fa0 20 7d 20 65 6c 73 65 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 20 20 20 20 20 20 20 20 20 .}.elseif.($prepend).{..........
95fc0 20 20 20 2f 2f 20 50 72 65 70 65 6e 64 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 6e ...//.Prepend.directories.for.an
95fe0 20 61 6c 72 65 61 64 79 20 72 65 67 69 73 74 65 72 65 64 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 .already.registered.namespace...
96000 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 ...........$this->prefixDirsPsr4
96020 5b 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 [$prefix].=.array_merge(........
96040 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 20 20 20 20 20 20 20 .........(array).$paths,........
96060 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 .........$this->prefixDirsPsr4[$
96080 70 72 65 66 69 78 5d 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 prefix].............);.........}
960a0 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 41 70 70 65 6e 64 20 64 69 .else.{.............//.Append.di
960c0 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 6e 20 61 6c 72 65 61 64 79 20 72 65 67 69 73 74 65 rectories.for.an.already.registe
960e0 72 65 64 20 6e 61 6d 65 73 70 61 63 65 2e 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 red.namespace..............$this
96100 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 ->prefixDirsPsr4[$prefix].=.arra
96120 79 5f 6d 65 72 67 65 28 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e y_merge(.................$this->
96140 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 2c 0a 20 20 20 20 20 20 20 prefixDirsPsr4[$prefix],........
96160 20 20 20 20 20 20 20 20 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 20 20 20 20 20 20 20 20 .........(array).$paths.........
96180 20 20 20 20 29 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a ....);.........}.....}....../**.
961a0 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 61 20 73 65 74 20 6f 66 20 50 53 52 2d 30 20 .....*.Registers.a.set.of.PSR-0.
961c0 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 20 67 69 76 65 6e 20 70 72 65 66 69 78 2c 0a directories.for.a.given.prefix,.
961e0 20 20 20 20 20 2a 20 72 65 70 6c 61 63 69 6e 67 20 61 6e 79 20 6f 74 68 65 72 73 20 70 72 65 76 .....*.replacing.any.others.prev
96200 69 6f 75 73 6c 79 20 73 65 74 20 66 6f 72 20 74 68 69 73 20 70 72 65 66 69 78 2e 0a 20 20 20 20 iously.set.for.this.prefix......
96220 20 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 .*......*.@param.string.......$p
96240 72 65 66 69 78 20 54 68 65 20 70 72 65 66 69 78 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 61 refix.The.prefix......*.@param.a
96260 72 72 61 79 7c 73 74 72 69 6e 67 20 24 70 61 74 68 73 20 20 54 68 65 20 50 53 52 2d 30 20 62 61 rray|string.$paths..The.PSR-0.ba
96280 73 65 20 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 se.directories......*/.....publi
962a0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 68 73 29 0a c.function.set($prefix,.$paths).
962c0 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 20 20 ....{.........if.(!$prefix).{...
962e0 20 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 50 73 72 ..........$this->fallbackDirsPsr
96300 30 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 20 20 20 20 20 20 7d 20 65 6c 0.=.(array).$paths;.........}.el
96320 73 65 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 se.{.............$this->prefixes
96340 50 73 72 30 5b 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 Psr0[$prefix[0]][$prefix].=.(arr
96360 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 20 20 ay).$paths;.........}.....}.....
96380 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 52 65 67 69 73 74 65 72 73 20 61 20 73 65 74 20 6f 66 20 50 ./**......*.Registers.a.set.of.P
963a0 53 52 2d 34 20 64 69 72 65 63 74 6f 72 69 65 73 20 66 6f 72 20 61 20 67 69 76 65 6e 20 6e 61 6d SR-4.directories.for.a.given.nam
963c0 65 73 70 61 63 65 2c 0a 20 20 20 20 20 2a 20 72 65 70 6c 61 63 69 6e 67 20 61 6e 79 20 6f 74 68 espace,......*.replacing.any.oth
963e0 65 72 73 20 70 72 65 76 69 6f 75 73 6c 79 20 73 65 74 20 66 6f 72 20 74 68 69 73 20 6e 61 6d 65 ers.previously.set.for.this.name
96400 73 70 61 63 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 73 74 72 69 space.......*......*.@param.stri
96420 6e 67 20 20 20 20 20 20 20 24 70 72 65 66 69 78 20 20 54 68 65 20 70 72 65 66 69 78 2f 6e 61 6d ng.......$prefix..The.prefix/nam
96440 65 73 70 61 63 65 2c 20 77 69 74 68 20 74 72 61 69 6c 69 6e 67 20 27 5c 5c 27 0a 20 20 20 20 20 espace,.with.trailing.'\\'......
96460 2a 20 40 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 20 54 *.@param.array|string.$paths...T
96480 68 65 20 50 53 52 2d 34 20 62 61 73 65 20 64 69 72 65 63 74 6f 72 69 65 73 0a 20 20 20 20 20 2a he.PSR-4.base.directories......*
964a0 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 73 72 34 28 24 70 /.....public.function.setPsr4($p
964c0 72 65 66 69 78 2c 20 24 70 61 74 68 73 29 20 7b 0a 20 20 20 20 20 20 20 20 69 66 20 28 21 24 70 refix,.$paths).{.........if.(!$p
964e0 72 65 66 69 78 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 66 61 6c 6c refix).{.............$this->fall
96500 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 backDirsPsr4.=.(array).$paths;..
96520 20 20 20 20 20 20 20 7d 20 65 6c 73 65 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 65 6e .......}.else.{.............$len
96540 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 78 29 3b 0a 20 20 20 20 20 20 20 20 20 gth.=.strlen($prefix);..........
96560 20 20 20 69 66 20 28 27 5c 5c 27 20 21 3d 3d 20 24 70 72 65 66 69 78 5b 24 6c 65 6e 67 74 68 20 ...if.('\\'.!==.$prefix[$length.
96580 2d 20 31 5d 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 74 68 72 6f 77 20 6e 65 -.1]).{.................throw.ne
965a0 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 41 20 6e w.\InvalidArgumentException("A.n
965c0 6f 6e 2d 65 6d 70 74 79 20 50 53 52 2d 34 20 70 72 65 66 69 78 20 6d 75 73 74 20 65 6e 64 20 77 on-empty.PSR-4.prefix.must.end.w
965e0 69 74 68 20 61 20 6e 61 6d 65 73 70 61 63 65 20 73 65 70 61 72 61 74 6f 72 2e 22 29 3b 0a 20 20 ith.a.namespace.separator.");...
96600 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 69 73 2d 3e 70 ..........}.............$this->p
96620 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 34 5b 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 refixLengthsPsr4[$prefix[0]][$pr
96640 65 66 69 78 5d 20 3d 20 24 6c 65 6e 67 74 68 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 74 68 efix].=.$length;.............$th
96660 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 is->prefixDirsPsr4[$prefix].=.(a
96680 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 0a 20 rray).$paths;.........}.....}...
966a0 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 54 75 72 6e 73 20 6f 6e 20 73 65 61 72 63 68 69 6e 67 .../**......*.Turns.on.searching
966c0 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 66 6f 72 20 63 6c 61 73 73 20 66 69 6c 65 .the.include.path.for.class.file
966e0 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 6f 6f 6c 20 24 75 73 s.......*......*.@param.bool.$us
96700 65 49 6e 63 6c 75 64 65 50 61 74 68 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 20 eIncludePath......*/.....public.
96720 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 24 75 73 65 49 function.setUseIncludePath($useI
96740 6e 63 6c 75 64 65 50 61 74 68 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 24 74 68 69 73 2d ncludePath).....{.........$this-
96760 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 >useIncludePath.=.$useIncludePat
96780 68 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 43 61 6e 20 62 65 20 h;.....}....../**......*.Can.be.
967a0 75 73 65 64 20 74 6f 20 63 68 65 63 6b 20 69 66 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 used.to.check.if.the.autoloader.
967c0 75 73 65 73 20 74 68 65 20 69 6e 63 6c 75 64 65 20 70 61 74 68 20 74 6f 20 63 68 65 63 6b 0a 20 uses.the.include.path.to.check..
967e0 20 20 20 20 2a 20 66 6f 72 20 63 6c 61 73 73 65 73 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a ....*.for.classes.......*......*
96800 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 0a 20 20 20 20 20 2a 2f 0a 20 20 20 20 70 75 62 6c 69 63 .@return.bool......*/.....public
96820 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 55 73 65 49 6e 63 6c 75 64 65 50 61 74 68 28 29 0a 20 20 .function.getUseIncludePath()...
96840 20 20 7b 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 ..{.........return.$this->useInc
96860 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 20 2a 20 ludePath;.....}....../**......*.
96880 52 65 67 69 73 74 65 72 73 20 74 68 69 73 20 69 6e 73 74 61 6e 63 65 20 61 73 20 61 6e 20 61 75 Registers.this.instance.as.an.au
968a0 74 6f 6c 6f 61 64 65 72 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 62 toloader.......*......*.@param.b
968c0 6f 6f 6c 20 24 70 72 65 70 65 6e 64 20 57 68 65 74 68 65 72 20 74 6f 20 70 72 65 70 65 6e 64 20 ool.$prepend.Whether.to.prepend.
968e0 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 20 6f 72 20 6e 6f 74 0a 20 20 20 20 20 2a 2f 0a 20 20 the.autoloader.or.not......*/...
96900 20 20 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 70 72 65 70 ..public.function.register($prep
96920 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 end.=.false).....{.........spl_a
96940 75 74 6f 6c 6f 61 64 5f 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6c utoload_register(array($this,.'l
96960 6f 61 64 43 6c 61 73 73 27 29 2c 20 74 72 75 65 2c 20 24 70 72 65 70 65 6e 64 29 3b 0a 20 20 20 oadClass'),.true,.$prepend);....
96980 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 55 6e 72 65 67 69 73 74 65 72 73 20 74 .}....../**......*.Unregisters.t
969a0 68 69 73 20 69 6e 73 74 61 6e 63 65 20 61 73 20 61 6e 20 61 75 74 6f 6c 6f 61 64 65 72 2e 0a 20 his.instance.as.an.autoloader...
969c0 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 75 6e 72 65 67 ....*/.....public.function.unreg
969e0 69 73 74 65 72 28 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 20 20 73 70 6c 5f 61 75 74 6f 6c 6f ister().....{.........spl_autolo
96a00 61 64 5f 75 6e 72 65 67 69 73 74 65 72 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 6c 6f 61 64 ad_unregister(array($this,.'load
96a20 43 6c 61 73 73 27 29 29 3b 0a 20 20 20 20 7d 0a 0a 20 20 20 20 2f 2a 2a 0a 20 20 20 20 20 2a 20 Class'));.....}....../**......*.
96a40 4c 6f 61 64 73 20 74 68 65 20 67 69 76 65 6e 20 63 6c 61 73 73 20 6f 72 20 69 6e 74 65 72 66 61 Loads.the.given.class.or.interfa
96a60 63 65 2e 0a 20 20 20 20 20 2a 0a 20 20 20 20 20 2a 20 40 70 61 72 61 6d 20 20 73 74 72 69 6e 67 ce.......*......*.@param..string
96a80 20 20 20 20 24 63 6c 61 73 73 20 54 68 65 20 6e 61 6d 65 20 6f 66 20 74 68 65 20 63 6c 61 73 73 ....$class.The.name.of.the.class
96aa0 0a 20 20 20 20 20 2a 20 40 72 65 74 75 72 6e 20 62 6f 6f 6c 7c 6e 75 6c 6c 20 54 72 75 65 20 69 ......*.@return.bool|null.True.i
96ac0 66 20 6c 6f 61 64 65 64 2c 20 6e 75 6c 6c 20 6f 74 68 65 72 77 69 73 65 0a 20 20 20 20 20 2a 2f f.loaded,.null.otherwise......*/
96ae0 0a 20 20 20 20 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 .....public.function.loadClass($
96b00 63 6c 61 73 73 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 class).....{.........if.($file.=
96b20 20 24 74 68 69 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 .$this->findFile($class)).{.....
96b40 20 20 20 20 20 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 ........include.$file;..........
96b60 20 20 20 20 72 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 ....return.true;.........}.....}
96b80 0a 0a 20 20 20 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 ....../**......*.Finds.the.path.
96ba0 74 6f 20 74 68 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 to.the.file.where.the.class.is.d
96bc0 65 66 69 6e 65 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 efined.......*......*.@param.str
96be0 69 6e 67 20 24 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 ing.$class.The.name.of.the.class
96c00 0a 20 20 20 20 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 66 61 ......*......*.@return.string|fa
96c20 6c 73 65 20 54 68 65 20 70 61 74 68 20 69 66 20 66 6f 75 6e 64 2c 20 66 61 6c 73 65 20 6f 74 68 lse.The.path.if.found,.false.oth
96c40 65 72 77 69 73 65 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 erwise......*/.....public.functi
96c60 6f 6e 20 66 69 6e 64 46 69 6c 65 28 24 63 6c 61 73 73 29 0a 20 20 20 20 7b 0a 20 20 20 20 20 20 on.findFile($class).....{.......
96c80 20 20 2f 2f 20 77 6f 72 6b 20 61 72 6f 75 6e 64 20 66 6f 72 20 50 48 50 20 35 2e 33 2e 30 20 2d ..//.work.around.for.PHP.5.3.0.-
96ca0 20 35 2e 33 2e 32 20 68 74 74 70 73 3a 2f 2f 62 75 67 73 2e 70 68 70 2e 6e 65 74 2f 35 30 37 33 .5.3.2.https://bugs.php.net/5073
96cc0 31 0a 20 20 20 20 20 20 20 20 69 66 20 28 27 5c 5c 27 20 3d 3d 20 24 63 6c 61 73 73 5b 30 5d 29 1.........if.('\\'.==.$class[0])
96ce0 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 75 62 73 74 72 28 24 .{.............$class.=.substr($
96d00 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 20 20 20 20 20 2f 2f class,.1);.........}..........//
96d20 20 63 6c 61 73 73 20 6d 61 70 20 6c 6f 6f 6b 75 70 0a 20 20 20 20 20 20 20 20 69 66 20 28 69 73 .class.map.lookup.........if.(is
96d40 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 0a set($this->classMap[$class])).{.
96d60 20 20 20 20 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 73 4d ............return.$this->classM
96d80 61 70 5b 24 63 6c 61 73 73 5d 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f ap[$class];.........}........../
96da0 2f 20 50 53 52 2d 34 20 6c 6f 6f 6b 75 70 0a 20 20 20 20 20 20 20 20 24 6c 6f 67 69 63 61 6c 50 /.PSR-4.lookup.........$logicalP
96dc0 61 74 68 50 73 72 34 20 3d 20 73 74 72 74 72 28 24 63 6c 61 73 73 2c 20 27 5c 5c 27 2c 20 44 49 athPsr4.=.strtr($class,.'\\',.DI
96de0 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 2e 20 27 2e 70 68 70 27 3b 0a 0a 20 20 RECTORY_SEPARATOR)...'.php';....
96e00 20 20 20 20 20 20 24 66 69 72 73 74 20 3d 20 24 63 6c 61 73 73 5b 30 5d 3b 0a 20 20 20 20 20 20 ......$first.=.$class[0];.......
96e20 20 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c 65 6e 67 74 68 73 ..if.(isset($this->prefixLengths
96e40 50 73 72 34 5b 24 66 69 72 73 74 5d 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 Psr4[$first])).{.............for
96e60 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 34 5b 24 each.($this->prefixLengthsPsr4[$
96e80 66 69 72 73 74 5d 20 61 73 20 24 70 72 65 66 69 78 20 3d 3e 20 24 6c 65 6e 67 74 68 29 20 7b 0a first].as.$prefix.=>.$length).{.
96ea0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 ................if.(0.===.strpos
96ec0 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 20 20 ($class,.$prefix)).{............
96ee0 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 .........foreach.($this->prefixD
96f00 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 61 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 irsPsr4[$prefix].as.$dir).{.....
96f20 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 69 ....................if.(file_exi
96f40 73 74 73 28 24 66 69 6c 65 20 3d 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 sts($file.=.$dir...DIRECTORY_SEP
96f60 41 52 41 54 4f 52 20 2e 20 73 75 62 73 74 72 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 ARATOR...substr($logicalPathPsr4
96f80 2c 20 24 6c 65 6e 67 74 68 29 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.$length))).{..................
96fa0 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 20 20 20 20 ...........return.$file;........
96fc0 20 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 20 .................}..............
96fe0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 .......}.................}......
97000 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 .......}.........}..........//.P
97020 53 52 2d 34 20 66 61 6c 6c 62 61 63 6b 20 64 69 72 73 0a 20 20 20 20 20 20 20 20 66 6f 72 65 61 SR-4.fallback.dirs.........forea
97040 63 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 61 73 20 24 ch.($this->fallbackDirsPsr4.as.$
97060 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 78 69 73 dir).{.............if.(file_exis
97080 74 73 28 24 66 69 6c 65 20 3d 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 ts($file.=.$dir...DIRECTORY_SEPA
970a0 52 41 54 4f 52 20 2e 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 29 29 20 7b 0a 20 20 20 RATOR...$logicalPathPsr4)).{....
970c0 20 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 20 20 .............return.$file;......
970e0 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 2f 2f 20 50 .......}.........}..........//.P
97100 53 52 2d 30 20 6c 6f 6f 6b 75 70 0a 20 20 20 20 20 20 20 20 69 66 20 28 66 61 6c 73 65 20 21 3d SR-0.lookup.........if.(false.!=
97120 3d 20 24 70 6f 73 20 3d 20 73 74 72 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 27 5c 5c 27 29 29 20 =.$pos.=.strrpos($class,.'\\')).
97140 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6e 61 6d 65 73 70 61 63 65 64 20 63 6c 61 73 {.............//.namespaced.clas
97160 73 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 s.name.............$logicalPathP
97180 73 72 30 20 3d 20 73 75 62 73 74 72 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 2c 20 30 sr0.=.substr($logicalPathPsr4,.0
971a0 2c 20 24 70 6f 73 20 2b 20 31 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2e 20 73 74 ,.$pos.+.1)...................st
971c0 72 74 72 28 73 75 62 73 74 72 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 2c 20 24 70 6f rtr(substr($logicalPathPsr4,.$po
971e0 73 20 2b 20 31 29 2c 20 27 5f 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 s.+.1),.'_',.DIRECTORY_SEPARATOR
97200 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 20 20 20 );.........}.else.{.............
97220 2f 2f 20 50 45 41 52 2d 6c 69 6b 65 20 63 6c 61 73 73 20 6e 61 6d 65 0a 20 20 20 20 20 20 20 20 //.PEAR-like.class.name.........
97240 20 20 20 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 20 3d 20 73 74 72 74 72 28 24 63 6c ....$logicalPathPsr0.=.strtr($cl
97260 61 73 73 2c 20 27 5f 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 20 2e ass,.'_',.DIRECTORY_SEPARATOR)..
97280 20 27 2e 70 68 70 27 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 20 20 20 69 66 20 28 .'.php';.........}..........if.(
972a0 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 isset($this->prefixesPsr0[$first
972c0 5d 29 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 24 74 68 69 73 ])).{.............foreach.($this
972e0 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 20 61 73 20 24 70 72 65 66 69 ->prefixesPsr0[$first].as.$prefi
97300 78 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 69 66 x.=>.$dirs).{.................if
97320 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 .(0.===.strpos($class,.$prefix))
97340 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 66 6f 72 65 61 63 68 20 28 .{.....................foreach.(
97360 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 $dirs.as.$dir).{................
97380 20 20 20 20 20 20 20 20 20 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d .........if.(file_exists($file.=
973a0 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 6c .$dir...DIRECTORY_SEPARATOR...$l
973c0 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ogicalPathPsr0)).{..............
973e0 20 20 20 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;....
97400 20 20 20 20 20 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 .....................}..........
97420 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 0a 20 ...........}.................}..
97440 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 20 20 ...........}.........}..........
97460 2f 2f 20 50 53 52 2d 30 20 66 61 6c 6c 62 61 63 6b 20 64 69 72 73 0a 20 20 20 20 20 20 20 20 66 //.PSR-0.fallback.dirs.........f
97480 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 50 73 72 30 20 oreach.($this->fallbackDirsPsr0.
974a0 61 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 as.$dir).{.............if.(file_
974c0 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f exists($file.=.$dir...DIRECTORY_
974e0 53 45 50 41 52 41 54 4f 52 20 2e 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 29 29 20 7b SEPARATOR...$logicalPathPsr0)).{
97500 0a 20 20 20 20 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 .................return.$file;..
97520 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 20 20 ...........}.........}..........
97540 2f 2f 20 50 53 52 2d 30 20 69 6e 63 6c 75 64 65 20 70 61 74 68 73 2e 0a 20 20 20 20 20 20 20 20 //.PSR-0.include.paths..........
97560 69 66 20 28 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 26 26 20 24 66 69 if.($this->useIncludePath.&&.$fi
97580 6c 65 20 3d 20 73 74 72 65 61 6d 5f 72 65 73 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 5f 70 61 74 68 le.=.stream_resolve_include_path
975a0 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 29 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 ($logicalPathPsr0)).{...........
975c0 20 20 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 20 20 ..return.$file;.........}.......
975e0 20 20 20 2f 2f 20 52 65 6d 65 6d 62 65 72 20 74 68 61 74 20 74 68 69 73 20 63 6c 61 73 73 20 64 ...//.Remember.that.this.class.d
97600 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 0a 20 20 20 20 20 20 20 20 72 65 74 75 72 6e 20 24 74 oes.not.exist..........return.$t
97620 68 69 73 2d 3e 63 6c 61 73 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 66 61 6c 73 65 3b 0a 20 his->classMap[$class].=.false;..
97640 20 20 20 7d 0a 7d 0a 5b 0a 20 20 20 20 22 41 46 4c 2d 31 2e 31 22 2c 20 22 41 46 4c 2d 31 2e 32 ...}.}.[....."AFL-1.1",."AFL-1.2
97660 22 2c 20 22 41 46 4c 2d 32 2e 30 22 2c 20 22 41 46 4c 2d 32 2e 31 22 2c 20 22 41 46 4c 2d 33 2e ",."AFL-2.0",."AFL-2.1",."AFL-3.
97680 30 22 2c 20 22 41 50 4c 2d 31 2e 30 22 2c 20 22 41 6c 61 64 64 69 6e 22 2c 0a 20 20 20 20 22 41 0",."APL-1.0",."Aladdin",....."A
976a0 4e 54 4c 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 NTLR-PD",."Apache-1.0",."Apache-
976c0 31 2e 31 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 1.1",."Apache-2.0",."APSL-1.0",.
976e0 20 20 20 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 ...."APSL-1.1",."APSL-1.2",."APS
97700 4c 2d 32 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 L-2.0",."Artistic-1.0",."Artisti
97720 63 2d 32 2e 30 22 2c 20 22 41 41 4c 22 2c 0a 20 20 20 20 22 42 69 74 54 6f 72 72 65 6e 74 2d 31 c-2.0",."AAL",....."BitTorrent-1
97740 2e 30 22 2c 20 22 42 69 74 54 6f 72 72 65 6e 74 2d 31 2e 31 22 2c 20 22 42 53 4c 2d 31 2e 30 22 .0",."BitTorrent-1.1",."BSL-1.0"
97760 2c 20 22 42 53 44 2d 33 2d 43 6c 61 75 73 65 2d 43 6c 65 61 72 22 2c 0a 20 20 20 20 22 42 53 44 ,."BSD-3-Clause-Clear",....."BSD
97780 2d 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 46 72 65 65 42 53 -2-Clause",."BSD-2-Clause-FreeBS
977a0 44 22 2c 20 22 42 53 44 2d 32 2d 43 6c 61 75 73 65 2d 4e 65 74 42 53 44 22 2c 0a 20 20 20 20 22 D",."BSD-2-Clause-NetBSD",....."
977c0 42 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 BSD-3-Clause",."BSD-4-Clause",."
977e0 42 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 BSD-4-Clause-UC",."CECILL-1.0",.
97800 20 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 ...."CECILL-1.1",."CECILL-2.0",.
97820 22 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 "CECILL-B",."CECILL-C",."ClArtis
97840 74 69 63 22 2c 0a 20 20 20 20 22 43 4e 52 49 2d 50 79 74 68 6f 6e 22 2c 20 22 43 4e 52 49 2d 50 tic",....."CNRI-Python",."CNRI-P
97860 79 74 68 6f 6e 2d 47 50 4c 2d 43 6f 6d 70 61 74 69 62 6c 65 22 2c 20 22 43 44 44 4c 2d 31 2e 30 ython-GPL-Compatible",."CDDL-1.0
97880 22 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 ",."CDDL-1.1",....."CPAL-1.0",."
978a0 43 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 6f 6e 64 6f 72 2d CPL-1.0",."CATOSL-1.1",."Condor-
978c0 31 2e 31 22 2c 20 22 43 43 2d 42 59 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 32 2e 30 22 2c 0a 1.1",."CC-BY-1.0",."CC-BY-2.0",.
978e0 20 20 20 20 22 43 43 2d 42 59 2d 32 2e 35 22 2c 20 22 43 43 2d 42 59 2d 33 2e 30 22 2c 20 22 43 ...."CC-BY-2.5",."CC-BY-3.0",."C
97900 43 2d 42 59 2d 4e 44 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 44 2d 32 2e 30 22 2c 20 22 43 C-BY-ND-1.0",."CC-BY-ND-2.0",."C
97920 43 2d 42 59 2d 4e 44 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 44 2d 33 2e 30 22 C-BY-ND-2.5",....."CC-BY-ND-3.0"
97940 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 32 2e 30 22 ,."CC-BY-NC-1.0",."CC-BY-NC-2.0"
97960 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d ,."CC-BY-NC-2.5",....."CC-BY-NC-
97980 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 3.0",."CC-BY-NC-ND-1.0",."CC-BY-
979a0 4e 43 2d 4e 44 2d 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 32 2e 35 22 2c 0a 20 NC-ND-2.0",."CC-BY-NC-ND-2.5",..
979c0 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 4e 44 2d 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d ..."CC-BY-NC-ND-3.0",."CC-BY-NC-
979e0 53 41 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d 32 2e 30 22 2c 20 22 43 43 2d SA-1.0",."CC-BY-NC-SA-2.0",."CC-
97a00 42 59 2d 4e 43 2d 53 41 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2d 4e 43 2d 53 41 2d BY-NC-SA-2.5",....."CC-BY-NC-SA-
97a20 33 2e 30 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 31 2e 30 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 3.0",."CC-BY-SA-1.0",."CC-BY-SA-
97a40 32 2e 30 22 2c 20 22 43 43 2d 42 59 2d 53 41 2d 32 2e 35 22 2c 0a 20 20 20 20 22 43 43 2d 42 59 2.0",."CC-BY-SA-2.5",....."CC-BY
97a60 2d 53 41 2d 33 2e 30 22 2c 20 22 43 43 30 2d 31 2e 30 22 2c 20 22 43 55 41 2d 4f 50 4c 2d 31 2e -SA-3.0",."CC0-1.0",."CUA-OPL-1.
97a80 30 22 2c 20 22 57 54 46 50 4c 22 2c 20 22 45 50 4c 2d 31 2e 30 22 2c 20 22 65 43 6f 73 2d 32 2e 0",."WTFPL",."EPL-1.0",."eCos-2.
97aa0 30 22 2c 0a 20 20 20 20 22 45 43 4c 2d 31 2e 30 22 2c 20 22 45 43 4c 2d 32 2e 30 22 2c 20 22 45 0",....."ECL-1.0",."ECL-2.0",."E
97ac0 46 4c 2d 31 2e 30 22 2c 20 22 45 46 4c 2d 32 2e 30 22 2c 20 22 45 6e 74 65 73 73 61 22 2c 20 22 FL-1.0",."EFL-2.0",."Entessa",."
97ae0 45 72 6c 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 45 55 44 61 74 61 67 72 69 64 22 2c 20 22 45 ErlPL-1.1",....."EUDatagrid",."E
97b00 55 50 4c 2d 31 2e 30 22 2c 20 22 45 55 50 4c 2d 31 2e 31 22 2c 20 22 46 61 69 72 22 2c 20 22 46 UPL-1.0",."EUPL-1.1",."Fair",."F
97b20 72 61 6d 65 77 6f 72 78 2d 31 2e 30 22 2c 20 22 46 54 4c 22 2c 0a 20 20 20 20 22 41 47 50 4c 2d rameworx-1.0",."FTL",....."AGPL-
97b40 33 2e 30 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 3.0",."GFDL-1.1",."GFDL-1.2",."G
97b60 46 44 4c 2d 31 2e 33 22 2c 20 22 47 50 4c 2d 31 2e 30 22 2c 20 22 47 50 4c 2d 31 2e 30 2b 22 2c FDL-1.3",."GPL-1.0",."GPL-1.0+",
97b80 0a 20 20 20 20 22 47 50 4c 2d 32 2e 30 22 2c 20 22 47 50 4c 2d 32 2e 30 2b 22 2c 20 22 47 50 4c ....."GPL-2.0",."GPL-2.0+",."GPL
97ba0 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 0a 20 -2.0-with-autoconf-exception",..
97bc0 20 20 20 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 ..."GPL-2.0-with-bison-exception
97be0 22 2c 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 70 ",."GPL-2.0-with-classpath-excep
97c00 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 66 6f 6e 74 2d 65 78 tion",....."GPL-2.0-with-font-ex
97c20 63 65 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 32 2e 30 2d 77 69 74 68 2d 47 43 43 2d 65 78 63 65 ception",."GPL-2.0-with-GCC-exce
97c40 70 74 69 6f 6e 22 2c 20 22 47 50 4c 2d 33 2e 30 22 2c 0a 20 20 20 20 22 47 50 4c 2d 33 2e 30 2b ption",."GPL-3.0",....."GPL-3.0+
97c60 22 2c 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 74 ",."GPL-3.0-with-autoconf-except
97c80 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 6f ion",."GPL-3.0-with-GCC-exceptio
97ca0 6e 22 2c 0a 20 20 20 20 22 4c 47 50 4c 2d 32 2e 31 22 2c 20 22 4c 47 50 4c 2d 32 2e 31 2b 22 2c n",....."LGPL-2.1",."LGPL-2.1+",
97cc0 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 2d ."LGPL-3.0",."LGPL-3.0+",."LGPL-
97ce0 32 2e 30 22 2c 20 22 4c 47 50 4c 2d 32 2e 30 2b 22 2c 0a 20 20 20 20 22 67 53 4f 41 50 2d 31 2e 2.0",."LGPL-2.0+",....."gSOAP-1.
97d00 33 62 22 2c 20 22 48 50 4e 44 22 2c 20 22 49 50 4c 2d 31 2e 30 22 2c 20 22 49 6d 6c 69 62 32 22 3b",."HPND",."IPL-1.0",."Imlib2"
97d20 2c 20 22 49 4a 47 22 2c 20 22 49 6e 74 65 6c 22 2c 20 22 49 50 41 22 2c 20 22 49 53 43 22 2c 0a ,."IJG",."Intel",."IPA",."ISC",.
97d40 20 20 20 20 22 4a 53 4f 4e 22 2c 20 22 4c 50 50 4c 2d 31 2e 33 61 22 2c 20 22 4c 50 50 4c 2d 31 ...."JSON",."LPPL-1.3a",."LPPL-1
97d60 2e 30 22 2c 20 22 4c 50 50 4c 2d 31 2e 31 22 2c 20 22 4c 50 50 4c 2d 31 2e 32 22 2c 20 22 4c 50 .0",."LPPL-1.1",."LPPL-1.2",."LP
97d80 50 4c 2d 31 2e 33 63 22 2c 0a 20 20 20 20 22 4c 69 62 70 6e 67 22 2c 20 22 4c 50 4c 2d 31 2e 30 PL-1.3c",....."Libpng",."LPL-1.0
97da0 32 22 2c 20 22 4c 50 4c 2d 31 2e 30 22 2c 20 22 4d 53 2d 50 4c 22 2c 20 22 4d 53 2d 52 4c 22 2c 2",."LPL-1.0",."MS-PL",."MS-RL",
97dc0 20 22 4d 69 72 4f 53 22 2c 20 22 4d 49 54 22 2c 0a 20 20 20 20 22 4d 6f 74 6f 73 6f 74 6f 22 2c ."MirOS",."MIT",....."Motosoto",
97de0 20 22 4d 50 4c 2d 31 2e 30 22 2c 20 22 4d 50 4c 2d 31 2e 31 22 2c 20 22 4d 50 4c 2d 32 2e 30 22 ."MPL-1.0",."MPL-1.1",."MPL-2.0"
97e00 2c 0a 20 20 20 20 22 4d 50 4c 2d 32 2e 30 2d 6e 6f 2d 63 6f 70 79 6c 65 66 74 2d 65 78 63 65 70 ,....."MPL-2.0-no-copyleft-excep
97e20 74 69 6f 6e 22 2c 20 22 4d 75 6c 74 69 63 73 22 2c 20 22 4e 41 53 41 2d 31 2e 33 22 2c 20 22 4e tion",."Multics",."NASA-1.3",."N
97e40 61 75 6d 65 6e 22 2c 0a 20 20 20 20 22 4e 42 50 4c 2d 31 2e 30 22 2c 20 22 4e 47 50 4c 22 2c 20 aumen",....."NBPL-1.0",."NGPL",.
97e60 22 4e 4f 53 4c 22 2c 20 22 4e 50 4c 2d 31 2e 30 22 2c 20 22 4e 50 4c 2d 31 2e 31 22 2c 20 22 4e "NOSL",."NPL-1.0",."NPL-1.1",."N
97e80 6f 6b 69 61 22 2c 20 22 4e 50 4f 53 4c 2d 33 2e 30 22 2c 0a 20 20 20 20 22 4e 54 50 22 2c 20 22 okia",."NPOSL-3.0",....."NTP",."
97ea0 4f 43 4c 43 2d 32 2e 30 22 2c 20 22 4f 44 62 4c 2d 31 2e 30 22 2c 20 22 50 44 44 4c 2d 31 2e 30 OCLC-2.0",."ODbL-1.0",."PDDL-1.0
97ec0 22 2c 20 22 4f 47 54 53 4c 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 32 2e 32 22 2c 0a 20 20 20 20 22 ",."OGTSL",."OLDAP-2.2.2",....."
97ee0 4f 4c 44 41 50 2d 31 2e 31 22 2c 20 22 4f 4c 44 41 50 2d 31 2e 32 22 2c 20 22 4f 4c 44 41 50 2d OLDAP-1.1",."OLDAP-1.2",."OLDAP-
97f00 31 2e 33 22 2c 20 22 4f 4c 44 41 50 2d 31 2e 34 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 30 22 2c 0a 1.3",."OLDAP-1.4",."OLDAP-2.0",.
97f20 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 30 2e 31 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 31 22 2c 20 ...."OLDAP-2.0.1",."OLDAP-2.1",.
97f40 22 4f 4c 44 41 50 2d 32 2e 32 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 32 2e 31 22 2c 20 22 4f 4c 44 "OLDAP-2.2",."OLDAP-2.2.1",."OLD
97f60 41 50 2d 32 2e 33 22 2c 0a 20 20 20 20 22 4f 4c 44 41 50 2d 32 2e 34 22 2c 20 22 4f 4c 44 41 50 AP-2.3",....."OLDAP-2.4",."OLDAP
97f80 2d 32 2e 35 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 36 22 2c 20 22 4f 4c 44 41 50 2d 32 2e 37 22 2c -2.5",."OLDAP-2.6",."OLDAP-2.7",
97fa0 20 22 4f 50 4c 2d 31 2e 30 22 2c 20 22 4f 53 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 4f 53 4c 2d ."OPL-1.0",."OSL-1.0",....."OSL-
97fc0 32 2e 30 22 2c 20 22 4f 53 4c 2d 32 2e 31 22 2c 20 22 4f 53 4c 2d 33 2e 30 22 2c 20 22 4f 4c 44 2.0",."OSL-2.1",."OSL-3.0",."OLD
97fe0 41 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 0a 20 AP-2.8",."OpenSSL",."PHP-3.0",..
98000 20 20 20 22 50 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 ..."PHP-3.01",."PostgreSQL",."Py
98020 74 68 6f 6e 2d 32 2e 30 22 2c 20 22 51 50 4c 2d 31 2e 30 22 2c 20 22 52 50 53 4c 2d 31 2e 30 22 thon-2.0",."QPL-1.0",."RPSL-1.0"
98040 2c 20 22 52 50 4c 2d 31 2e 35 22 2c 0a 20 20 20 20 22 52 48 65 43 6f 73 2d 31 2e 31 22 2c 20 22 ,."RPL-1.5",....."RHeCos-1.1",."
98060 52 53 43 50 4c 22 2c 20 22 52 75 62 79 22 2c 20 22 53 41 58 2d 50 44 22 2c 20 22 53 47 49 2d 42 RSCPL",."Ruby",."SAX-PD",."SGI-B
98080 2d 31 2e 30 22 2c 20 22 53 47 49 2d 42 2d 31 2e 31 22 2c 0a 20 20 20 20 22 53 47 49 2d 42 2d 32 -1.0",."SGI-B-1.1",....."SGI-B-2
980a0 2e 30 22 2c 20 22 4f 46 4c 2d 31 2e 30 22 2c 20 22 4f 46 4c 2d 31 2e 31 22 2c 20 22 53 69 6d 50 .0",."OFL-1.0",."OFL-1.1",."SimP
980c0 4c 2d 32 2e 30 22 2c 20 22 53 6c 65 65 70 79 63 61 74 22 2c 20 22 53 4d 4c 4e 4a 22 2c 0a 20 20 L-2.0",."Sleepycat",."SMLNJ",...
980e0 20 20 22 53 75 67 61 72 43 52 4d 2d 31 2e 31 2e 33 22 2c 20 22 53 49 53 53 4c 22 2c 20 22 53 50 .."SugarCRM-1.1.3",."SISSL",."SP
98100 4c 2d 31 2e 30 22 2c 20 22 57 61 74 63 6f 6d 2d 31 2e 30 22 2c 20 22 4e 43 53 41 22 2c 20 22 56 L-1.0",."Watcom-1.0",."NCSA",."V
98120 53 4c 2d 31 2e 30 22 2c 0a 20 20 20 20 22 57 33 43 22 2c 20 22 57 58 77 69 6e 64 6f 77 73 22 2c SL-1.0",....."W3C",."WXwindows",
98140 20 22 58 6e 65 74 22 2c 20 22 58 31 31 22 2c 20 22 58 46 72 65 65 38 36 2d 31 2e 31 22 2c 20 22 ."Xnet",."X11",."XFree86-1.1",."
98160 59 50 4c 2d 31 2e 30 22 2c 20 22 59 50 4c 2d 31 2e 31 22 2c 0a 20 20 20 20 22 5a 69 6d 62 72 61 YPL-1.0",."YPL-1.1",....."Zimbra
98180 2d 31 2e 33 22 2c 20 22 5a 6c 69 62 22 2c 20 22 5a 50 4c 2d 31 2e 31 22 2c 20 22 5a 50 4c 2d 32 -1.3",."Zlib",."ZPL-1.1",."ZPL-2
981a0 2e 30 22 2c 20 22 5a 50 4c 2d 32 2e 31 22 0a 5d 7b 0a 20 20 20 20 22 6e 61 6d 65 22 3a 20 22 50 .0",."ZPL-2.1".]{....."name":."P
981c0 61 63 6b 61 67 65 22 2c 0a 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 ackage",....."type":."object",..
981e0 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 72 74 69 65 73 22 3a 20 66 61 6c 73 65 ..."additionalProperties":.false
98200 2c 0a 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 22 6e ,....."properties":.{........."n
98220 61 6d 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 ame":.{............."type":."str
98240 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a ing",............."description":
98260 20 22 50 61 63 6b 61 67 65 20 6e 61 6d 65 2c 20 69 6e 63 6c 75 64 69 6e 67 20 27 76 65 6e 64 6f ."Package.name,.including.'vendo
98280 72 2d 6e 61 6d 65 2f 27 20 70 72 65 66 69 78 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 r-name/'.prefix.",............."
982a0 72 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 required":.true.........},......
982c0 20 20 20 22 74 79 70 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 ..."type":.{............."descri
982e0 70 74 69 6f 6e 22 3a 20 22 50 61 63 6b 61 67 65 20 74 79 70 65 2c 20 65 69 74 68 65 72 20 27 6c ption":."Package.type,.either.'l
98300 69 62 72 61 72 79 27 20 66 6f 72 20 63 6f 6d 6d 6f 6e 20 70 61 63 6b 61 67 65 73 2c 20 27 63 6f ibrary'.for.common.packages,.'co
98320 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 27 20 66 6f 72 20 70 6c 75 67 69 6e 73 2c 20 27 6d 65 74 mposer-plugin'.for.plugins,.'met
98340 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 2c 20 6f 72 apackage'.for.empty.packages,.or
98360 20 61 20 63 75 73 74 6f 6d 20 74 79 70 65 20 28 5b 61 2d 7a 30 2d 39 2d 5d 2b 29 20 64 65 66 69 .a.custom.type.([a-z0-9-]+).defi
98380 6e 65 64 20 62 79 20 77 68 61 74 65 76 65 72 20 70 72 6f 6a 65 63 74 20 74 68 69 73 20 70 61 63 ned.by.whatever.project.this.pac
983a0 6b 61 67 65 20 61 70 70 6c 69 65 73 20 74 6f 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 kage.applies.to.",............."
983c0 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 20 type":."string".........},......
983e0 20 20 20 22 74 61 72 67 65 74 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 ..."target-dir":.{............."
98400 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 44 45 50 52 45 43 41 54 45 44 3a 20 46 6f 72 63 65 description":."DEPRECATED:.Force
98420 73 20 74 68 65 20 70 61 63 6b 61 67 65 20 74 6f 20 62 65 20 69 6e 73 74 61 6c 6c 65 64 20 69 6e s.the.package.to.be.installed.in
98440 74 6f 20 74 68 65 20 67 69 76 65 6e 20 73 75 62 64 69 72 65 63 74 6f 72 79 20 70 61 74 68 2e 20 to.the.given.subdirectory.path..
98460 54 68 69 73 20 69 73 20 75 73 65 64 20 66 6f 72 20 61 75 74 6f 6c 6f 61 64 69 6e 67 20 50 53 52 This.is.used.for.autoloading.PSR
98480 2d 30 20 70 61 63 6b 61 67 65 73 20 74 68 61 74 20 64 6f 20 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 -0.packages.that.do.not.contain.
984a0 74 68 65 69 72 20 66 75 6c 6c 20 70 61 74 68 2e 20 55 73 65 20 66 6f 72 77 61 72 64 20 73 6c 61 their.full.path..Use.forward.sla
984c0 73 68 65 73 20 66 6f 72 20 63 72 6f 73 73 2d 70 6c 61 74 66 6f 72 6d 20 63 6f 6d 70 61 74 69 62 shes.for.cross-platform.compatib
984e0 69 6c 69 74 79 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 74 ility.",............."type":."st
98500 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 64 65 73 63 72 69 ring".........},........."descri
98520 70 74 69 6f 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 22 73 ption":.{............."type":."s
98540 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e tring",............."description
98560 22 3a 20 22 53 68 6f 72 74 20 70 61 63 6b 61 67 65 20 64 65 73 63 72 69 70 74 69 6f 6e 2e 22 2c ":."Short.package.description.",
98580 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 ............."required":.true...
985a0 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6b 65 79 77 6f 72 64 73 22 3a 20 7b 0a 20 ......},........."keywords":.{..
985c0 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 20 20 20 20 ..........."type":."array",.....
985e0 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 20 20 20 20 20 20 ........"items":.{..............
98600 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 20 ..."type":."string",............
98620 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 74 61 67 2f 6b 65 79 77 6f ....."description":."A.tag/keywo
98640 72 64 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 72 65 6c 61 74 65 73 20 74 6f 2e rd.that.this.package.relates.to.
98660 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 ".............}.........},......
98680 20 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 22 74 79 ..."homepage":.{............."ty
986a0 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 63 pe":."string",............."desc
986c0 72 69 70 74 69 6f 6e 22 3a 20 22 48 6f 6d 65 70 61 67 65 20 55 52 4c 20 66 6f 72 20 74 68 65 20 ription":."Homepage.URL.for.the.
986e0 70 72 6f 6a 65 63 74 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a project.",............."format":
98700 20 22 75 72 69 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 76 65 72 73 69 ."uri".........},........."versi
98720 6f 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 22 73 74 72 69 on":.{............."type":."stri
98740 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 ng",............."description":.
98760 22 50 61 63 6b 61 67 65 20 76 65 72 73 69 6f 6e 2c 20 73 65 65 20 68 74 74 70 3a 2f 2f 67 65 74 "Package.version,.see.http://get
98780 63 6f 6d 70 6f 73 65 72 2e 6f 72 67 2f 64 6f 63 2f 30 34 2d 73 63 68 65 6d 61 2e 6d 64 23 76 65 composer.org/doc/04-schema.md#ve
987a0 72 73 69 6f 6e 20 66 6f 72 20 6d 6f 72 65 20 69 6e 66 6f 20 6f 6e 20 76 61 6c 69 64 20 73 63 68 rsion.for.more.info.on.valid.sch
987c0 65 6d 65 73 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 74 69 6d 65 22 emes.".........},........."time"
987e0 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 :.{............."type":."string"
98800 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 50 61 ,............."description":."Pa
98820 63 6b 61 67 65 20 72 65 6c 65 61 73 65 20 64 61 74 65 2c 20 69 6e 20 27 59 59 59 59 2d 4d 4d 2d ckage.release.date,.in.'YYYY-MM-
98840 44 44 27 20 6f 72 20 27 59 59 59 59 2d 4d 4d 2d 44 44 20 48 48 3a 4d 4d 3a 53 53 27 20 66 6f 72 DD'.or.'YYYY-MM-DD.HH:MM:SS'.for
98860 6d 61 74 2e 22 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 6c 69 63 65 6e 73 mat.".........},........."licens
98880 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 73 74 72 69 e":.{............."type":.["stri
988a0 6e 67 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 ng",."array"],............."desc
988c0 72 69 70 74 69 6f 6e 22 3a 20 22 4c 69 63 65 6e 73 65 20 6e 61 6d 65 2e 20 4f 72 20 61 6e 20 61 ription":."License.name..Or.an.a
988e0 72 72 61 79 20 6f 66 20 6c 69 63 65 6e 73 65 20 6e 61 6d 65 73 2e 22 0a 20 20 20 20 20 20 20 20 rray.of.license.names.".........
98900 7d 2c 0a 20 20 20 20 20 20 20 20 22 61 75 74 68 6f 72 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 },........."authors":.{.........
98920 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 20 20 ...."type":."array",............
98940 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 4c 69 73 74 20 6f 66 20 61 75 74 68 6f 72 73 ."description":."List.of.authors
98960 20 74 68 61 74 20 63 6f 6e 74 72 69 62 75 74 65 64 20 74 6f 20 74 68 65 20 70 61 63 6b 61 67 65 .that.contributed.to.the.package
98980 2e 20 54 68 69 73 20 69 73 20 74 79 70 69 63 61 6c 6c 79 20 74 68 65 20 6d 61 69 6e 20 6d 61 69 ..This.is.typically.the.main.mai
989a0 6e 74 61 69 6e 65 72 73 2c 20 6e 6f 74 20 74 68 65 20 66 75 6c 6c 20 6c 69 73 74 2e 22 2c 0a 20 ntainers,.not.the.full.list.",..
989c0 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 20 20 20 ..........."items":.{...........
989e0 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",.........
98a00 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 20 ........"additionalProperties":.
98a20 66 61 6c 73 65 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 false,................."properti
98a40 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 6e 61 6d 65 es":.{....................."name
98a60 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ":.{........................."ty
98a80 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe":."string",..................
98aa0 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 46 75 6c 6c 20 6e 61 6d 65 ......."description":."Full.name
98ac0 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .of.the.author.",...............
98ae0 20 20 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 64 22 3a 20 74 72 75 65 0a 20 20 20 20 20 .........."required":.true......
98b00 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 ...............},...............
98b20 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......"email":.{................
98b40 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 ........."type":."string",......
98b60 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 ..................."description"
98b80 3a 20 22 45 6d 61 69 6c 20 61 64 64 72 65 73 73 20 6f 66 20 74 68 65 20 61 75 74 68 6f 72 2e 22 :."Email.address.of.the.author."
98ba0 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 66 6f 72 6d 61 ,........................."forma
98bc0 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 20 20 20 20 t":."email".....................
98be0 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 68 6f 6d 65 70 61 67 65 },....................."homepage
98c00 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ":.{........................."ty
98c20 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe":."string",..................
98c40 20 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 ......."description":."Homepage.
98c60 55 52 4c 20 66 6f 72 20 74 68 65 20 61 75 74 68 6f 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 URL.for.the.author.",...........
98c80 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 72 69 22 0a 20 20 .............."format":."uri"...
98ca0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 ..................},............
98cc0 20 20 20 20 20 20 20 20 20 22 72 6f 6c 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ........."role":.{..............
98ce0 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",....
98d00 20 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 6f ....................."descriptio
98d20 6e 22 3a 20 22 41 75 74 68 6f 72 27 73 20 72 6f 6c 65 20 69 6e 20 74 68 65 20 70 72 6f 6a 65 63 n":."Author's.role.in.the.projec
98d40 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 t.".....................}.......
98d60 20 20 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 ..........}.............}.......
98d80 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 22 3a 20 7b 0a 20 20 20 20 20 20 ..},........."require":.{.......
98da0 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",.........
98dc0 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
98de0 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 76 65 sh.of.package.name.(keys).and.ve
98e00 72 73 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 rsion.constraints.(values).that.
98e20 61 72 65 20 72 65 71 75 69 72 65 64 20 74 6f 20 72 75 6e 20 74 68 69 73 20 70 61 63 6b 61 67 65 are.required.to.run.this.package
98e40 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 .",............."additionalPrope
98e60 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 rties":.true.........},.........
98e80 22 72 65 70 6c 61 63 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a "replace":.{............."type":
98ea0 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ."object",............."descript
98ec0 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 ion":."This.is.a.hash.of.package
98ee0 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 .name.(keys).and.version.constra
98f00 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 63 61 6e 20 62 65 20 72 65 70 6c 61 63 ints.(values).that.can.be.replac
98f20 65 64 20 62 79 20 74 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 ed.by.this.package.",...........
98f40 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 0a 20 .."additionalProperties":.true..
98f60 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 63 6f 6e 66 6c 69 63 74 22 3a 20 7b 0a .......},........."conflict":.{.
98f80 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 ............"type":."object",...
98fa0 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 69 .........."description":."This.i
98fc0 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 s.a.hash.of.package.name.(keys).
98fe0 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 69 6e 74 73 20 28 76 61 6c 75 65 73 29 and.version.constraints.(values)
99000 20 74 68 61 74 20 63 6f 6e 66 6c 69 63 74 20 77 69 74 68 20 74 68 69 73 20 70 61 63 6b 61 67 65 .that.conflict.with.this.package
99020 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f 70 65 .",............."additionalPrope
99040 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 rties":.true.........},.........
99060 22 70 72 6f 76 69 64 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a "provide":.{............."type":
99080 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ."object",............."descript
990a0 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 67 65 ion":."This.is.a.hash.of.package
990c0 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 76 65 72 73 69 6f 6e 20 63 6f 6e 73 74 72 61 .name.(keys).and.version.constra
990e0 69 6e 74 73 20 28 76 61 6c 75 65 73 29 20 74 68 61 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 ints.(values).that.this.package.
99100 70 72 6f 76 69 64 65 73 20 69 6e 20 61 64 64 69 74 69 6f 6e 20 74 6f 20 74 68 69 73 20 70 61 63 provides.in.addition.to.this.pac
99120 6b 61 67 65 27 73 20 6e 61 6d 65 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 kage's.name.",............."addi
99140 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.........
99160 7d 2c 0a 20 20 20 20 20 20 20 20 22 72 65 71 75 69 72 65 2d 64 65 76 22 3a 20 7b 0a 20 20 20 20 },........."require-dev":.{.....
99180 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",.......
991a0 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 69 73 20 61 20 ......"description":."This.is.a.
991c0 68 61 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 hash.of.package.name.(keys).and.
991e0 76 65 72 73 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 version.constraints.(values).tha
99200 74 20 74 68 69 73 20 70 61 63 6b 61 67 65 20 72 65 71 75 69 72 65 73 20 66 6f 72 20 64 65 76 65 t.this.package.requires.for.deve
99220 6c 6f 70 69 6e 67 20 69 74 20 28 74 65 73 74 69 6e 67 20 74 6f 6f 6c 73 20 61 6e 64 20 73 75 63 loping.it.(testing.tools.and.suc
99240 68 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 64 64 69 74 69 6f 6e 61 6c 50 72 6f h).",............."additionalPro
99260 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 perties":.true.........},.......
99280 20 20 22 73 75 67 67 65 73 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 .."suggest":.{............."type
992a0 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 ":."object",............."descri
992c0 70 74 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 20 68 61 73 68 20 6f 66 20 70 61 63 6b 61 ption":."This.is.a.hash.of.packa
992e0 67 65 20 6e 61 6d 65 20 28 6b 65 79 73 29 20 61 6e 64 20 64 65 73 63 72 69 70 74 69 6f 6e 73 20 ge.name.(keys).and.descriptions.
99300 28 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 73 75 67 67 65 (values).that.this.package.sugge
99320 73 74 73 20 77 6f 72 6b 20 77 65 6c 6c 20 77 69 74 68 20 69 74 20 28 74 68 69 73 20 77 69 6c 6c sts.work.well.with.it.(this.will
99340 20 62 65 20 73 75 67 67 65 73 74 65 64 20 74 6f 20 74 68 65 20 75 73 65 72 20 64 75 72 69 6e 67 .be.suggested.to.the.user.during
99360 20 69 6e 73 74 61 6c 6c 61 74 69 6f 6e 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 61 .installation).",............."a
99380 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......
993a0 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 63 6f 6e 66 69 67 22 3a 20 7b 0a 20 20 20 20 20 20 ...},........."config":.{.......
993c0 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",.........
993e0 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 43 6f 6d 70 6f 73 65 72 20 6f 70 74 ...."description":."Composer.opt
99400 69 6f 6e 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 ions.",............."properties"
99420 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 6f 63 65 73 73 2d 74 69 6d :.{................."process-tim
99440 65 6f 75 74 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 eout":.{....................."ty
99460 70 65 22 3a 20 22 69 6e 74 65 67 65 72 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 pe":."integer",.................
99480 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 74 69 6d 65 6f 75 74 20 ...."description":."The.timeout.
994a0 69 6e 20 73 65 63 6f 6e 64 73 20 66 6f 72 20 70 72 6f 63 65 73 73 20 65 78 65 63 75 74 69 6f 6e in.seconds.for.process.execution
994c0 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 33 30 30 20 28 35 6d 69 6e 73 29 2e 22 0a 20 20 20 s,.defaults.to.300.(5mins)."....
994e0 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .............},.................
99500 22 75 73 65 2d 69 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 "use-include-path":.{...........
99520 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 20 .........."type":."boolean",....
99540 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 20 ................."description":.
99560 22 49 66 20 74 72 75 65 2c 20 74 68 65 20 43 6f 6d 70 6f 73 65 72 20 61 75 74 6f 6c 6f 61 64 65 "If.true,.the.Composer.autoloade
99580 72 20 77 69 6c 6c 20 61 6c 73 6f 20 6c 6f 6f 6b 20 66 6f 72 20 63 6c 61 73 73 65 73 20 69 6e 20 r.will.also.look.for.classes.in.
995a0 74 68 65 20 50 48 50 20 69 6e 63 6c 75 64 65 20 70 61 74 68 2e 22 0a 20 20 20 20 20 20 20 20 20 the.PHP.include.path."..........
995c0 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 66 65 .......},................."prefe
995e0 72 72 65 64 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 rred-install":.{................
99600 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",..........
99620 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 69 ..........."description":."The.i
99640 6e 73 74 61 6c 6c 20 6d 65 74 68 6f 64 20 43 6f 6d 70 6f 73 65 72 20 77 69 6c 6c 20 70 72 65 66 nstall.method.Composer.will.pref
99660 65 72 20 74 6f 20 75 73 65 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 61 75 74 6f 20 61 6e 64 20 er.to.use,.defaults.to.auto.and.
99680 63 61 6e 20 62 65 20 61 6e 79 20 6f 66 20 73 6f 75 72 63 65 2c 20 64 69 73 74 20 6f 72 20 61 75 can.be.any.of.source,.dist.or.au
996a0 74 6f 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 to.".................},.........
996c0 20 20 20 20 20 20 20 20 22 6e 6f 74 69 66 79 2d 6f 6e 2d 69 6e 73 74 61 6c 6c 22 3a 20 7b 0a 20 ........"notify-on-install":.{..
996e0 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 62 6f 6f 6c ..................."type":."bool
99700 65 61 6e 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 ean",....................."descr
99720 69 70 74 69 6f 6e 22 3a 20 22 43 6f 6d 70 6f 73 65 72 20 61 6c 6c 6f 77 73 20 72 65 70 6f 73 69 iption":."Composer.allows.reposi
99740 74 6f 72 69 65 73 20 74 6f 20 64 65 66 69 6e 65 20 61 20 6e 6f 74 69 66 69 63 61 74 69 6f 6e 20 tories.to.define.a.notification.
99760 55 52 4c 2c 20 73 6f 20 74 68 61 74 20 74 68 65 79 20 67 65 74 20 6e 6f 74 69 66 69 65 64 20 77 URL,.so.that.they.get.notified.w
99780 68 65 6e 65 76 65 72 20 61 20 70 61 63 6b 61 67 65 20 66 72 6f 6d 20 74 68 61 74 20 72 65 70 6f henever.a.package.from.that.repo
997a0 73 69 74 6f 72 79 20 69 73 20 69 6e 73 74 61 6c 6c 65 64 2e 20 54 68 69 73 20 6f 70 74 69 6f 6e sitory.is.installed..This.option
997c0 20 61 6c 6c 6f 77 73 20 79 6f 75 20 74 6f 20 64 69 73 61 62 6c 65 20 74 68 61 74 20 62 65 68 61 .allows.you.to.disable.that.beha
997e0 76 69 6f 75 72 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 72 75 65 2e 22 0a 20 20 20 20 20 20 viour,.defaults.to.true.".......
99800 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 67 69 ..........},................."gi
99820 74 68 75 62 2d 70 72 6f 74 6f 63 6f 6c 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 thub-protocols":.{..............
99840 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",.........
99860 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 6c 69 ............"description":."A.li
99880 73 74 20 6f 66 20 70 72 6f 74 6f 63 6f 6c 73 20 74 6f 20 75 73 65 20 66 6f 72 20 67 69 74 68 75 st.of.protocols.to.use.for.githu
998a0 62 2e 63 6f 6d 20 63 6c 6f 6e 65 73 2c 20 69 6e 20 70 72 69 6f 72 69 74 79 20 6f 72 64 65 72 2c b.com.clones,.in.priority.order,
998c0 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5b 5c 22 67 69 74 5c 22 2c 20 5c 22 68 74 74 70 73 5c 22 .defaults.to.[\"git\",.\"https\"
998e0 2c 20 5c 22 68 74 74 70 5c 22 5d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ,.\"http\"].",..................
99900 20 20 20 22 69 74 65 6d 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..."items":.{...................
99920 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 20 20 20 ......"type":."string"..........
99940 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 2c 0a ...........}.................},.
99960 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 67 69 74 68 75 62 2d 6f 61 75 74 68 22 3a 20 ................"github-oauth":.
99980 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 6f {....................."type":."o
999a0 62 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 bject",....................."des
999c0 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 68 61 73 68 20 6f 66 20 64 6f 6d 61 69 6e 20 6e 61 6d cription":."A.hash.of.domain.nam
999e0 65 20 3d 3e 20 67 69 74 68 75 62 20 41 50 49 20 6f 61 75 74 68 20 74 6f 6b 65 6e 73 2c 20 74 79 e.=>.github.API.oauth.tokens,.ty
99a00 70 69 63 61 6c 6c 79 20 7b 5c 22 67 69 74 68 75 62 2e 63 6f 6d 5c 22 3a 5c 22 3c 74 6f 6b 65 6e pically.{\"github.com\":\"<token
99a20 3e 5c 22 7d 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 61 64 64 >\"}.",....................."add
99a40 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 20 itionalProperties":.true........
99a60 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 76 65 6e .........},................."ven
99a80 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 20 20 20 20 20 dor-dir":.{.....................
99aa0 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 "type":."string",...............
99ac0 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 6f 63 61 74 69 ......"description":."The.locati
99ae0 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 6e 73 74 61 6c on.where.all.packages.are.instal
99b00 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 2e 22 0a 20 20 led,.defaults.to.\"vendor\"."...
99b20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............},................
99b40 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 20 20 20 20 20 ."bin-dir":.{...................
99b60 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .."type":."string",.............
99b80 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 6f 63 61 ........"description":."The.loca
99ba0 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 20 6c 69 6e 6b tion.where.all.binaries.are.link
99bc0 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 6e 5c 22 2e 22 ed,.defaults.to.\"vendor/bin\"."
99be0 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 .................},.............
99c00 20 20 20 20 22 63 61 63 68 65 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ...."cache-dir":.{..............
99c20 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",........
99c40 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
99c60 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 61 6c 6c 20 63 61 63 68 65 73 20 61 72 65 20 6c .location.where.all.caches.are.l
99c80 6f 63 61 74 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 7e 2f 2e 63 6f 6d 70 6f 73 65 ocated,.defaults.to.\"~/.compose
99ca0 72 2f 63 61 63 68 65 5c 22 20 6f 6e 20 2a 6e 69 78 20 61 6e 64 20 5c 22 25 4c 4f 43 41 4c 41 50 r/cache\".on.*nix.and.\"%LOCALAP
99cc0 50 44 41 54 41 25 5c 5c 43 6f 6d 70 6f 73 65 72 5c 22 20 6f 6e 20 77 69 6e 64 6f 77 73 2e 22 0a PDATA%\\Composer\".on.windows.".
99ce0 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 20 ................},..............
99d00 20 20 20 22 63 61 63 68 65 2d 66 69 6c 65 73 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ..."cache-files-dir":.{.........
99d20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 ............"type":."string",...
99d40 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":
99d60 20 22 54 68 65 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 66 69 6c 65 73 20 28 7a 69 70 20 ."The.location.where.files.(zip.
99d80 64 6f 77 6e 6c 6f 61 64 73 29 20 61 72 65 20 63 61 63 68 65 64 2c 20 64 65 66 61 75 6c 74 73 20 downloads).are.cached,.defaults.
99da0 74 6f 20 5c 22 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 66 69 6c 65 73 5c 22 2e 22 0a 20 20 20 20 to.\"{$cache-dir}/files\".".....
99dc0 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 ............},................."
99de0 63 61 63 68 65 2d 72 65 70 6f 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 cache-repo-dir":.{..............
99e00 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",........
99e20 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
99e40 20 6c 6f 63 61 74 69 6f 6e 20 77 68 65 72 65 20 72 65 70 6f 20 28 67 69 74 2f 68 67 20 72 65 70 .location.where.repo.(git/hg.rep
99e60 6f 20 63 6c 6f 6e 65 73 29 20 61 72 65 20 63 61 63 68 65 64 2c 20 64 65 66 61 75 6c 74 73 20 74 o.clones).are.cached,.defaults.t
99e80 6f 20 5c 22 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 72 65 70 6f 5c 22 2e 22 0a 20 20 20 20 20 20 o.\"{$cache-dir}/repo\".".......
99ea0 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 63 61 ..........},................."ca
99ec0 63 68 65 2d 76 63 73 2d 64 69 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 che-vcs-dir":.{.................
99ee0 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",...........
99f00 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 6f .........."description":."The.lo
99f20 63 61 74 69 6f 6e 20 77 68 65 72 65 20 76 63 73 20 69 6e 66 6f 73 20 28 67 69 74 20 63 6c 6f 6e cation.where.vcs.infos.(git.clon
99f40 65 73 2c 20 67 69 74 68 75 62 20 61 70 69 20 63 61 6c 6c 73 2c 20 65 74 63 2e 20 77 68 65 6e 20 es,.github.api.calls,.etc..when.
99f60 72 65 61 64 69 6e 67 20 76 63 73 20 72 65 70 6f 73 29 20 61 72 65 20 63 61 63 68 65 64 2c 20 64 reading.vcs.repos).are.cached,.d
99f80 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 7b 24 63 61 63 68 65 2d 64 69 72 7d 2f 76 63 73 5c 22 2e efaults.to.\"{$cache-dir}/vcs\".
99fa0 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 20 ".................},............
99fc0 20 20 20 20 20 22 63 61 63 68 65 2d 74 74 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 ....."cache-ttl":.{.............
99fe0 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 69 6e 74 65 67 65 72 22 2c 0a 20 20 20 20 20 ........"type":."integer",......
9a000 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 54 ..............."description":."T
9a020 68 65 20 64 65 66 61 75 6c 74 20 63 61 63 68 65 20 74 69 6d 65 2d 74 6f 2d 6c 69 76 65 2c 20 64 he.default.cache.time-to-live,.d
9a040 65 66 61 75 6c 74 73 20 74 6f 20 31 35 35 35 32 30 30 30 20 28 36 20 6d 6f 6e 74 68 73 29 2e 22 efaults.to.15552000.(6.months)."
9a060 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 .................},.............
9a080 20 20 20 20 22 63 61 63 68 65 2d 66 69 6c 65 73 2d 74 74 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 ...."cache-files-ttl":.{........
9a0a0 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 69 6e 74 65 67 65 72 22 2c 0a ............."type":."integer",.
9a0c0 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 6f 6e ...................."description
9a0e0 22 3a 20 22 54 68 65 20 63 61 63 68 65 20 74 69 6d 65 2d 74 6f 2d 6c 69 76 65 20 66 6f 72 20 66 ":."The.cache.time-to-live.for.f
9a100 69 6c 65 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 68 65 20 76 61 6c 75 65 20 6f 66 20 63 iles,.defaults.to.the.value.of.c
9a120 61 63 68 65 2d 74 74 6c 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 ache-ttl.".................},...
9a140 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 61 63 68 65 2d 66 69 6c 65 73 2d 6d 61 78 73 69 .............."cache-files-maxsi
9a160 7a 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 ze":.{....................."type
9a180 22 3a 20 5b 22 73 74 72 69 6e 67 22 2c 20 22 69 6e 74 65 67 65 72 22 5d 2c 0a 20 20 20 20 20 20 ":.["string",."integer"],.......
9a1a0 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 54 68 .............."description":."Th
9a1c0 65 20 63 61 63 68 65 20 6d 61 78 20 73 69 7a 65 20 66 6f 72 20 74 68 65 20 66 69 6c 65 73 20 63 e.cache.max.size.for.the.files.c
9a1e0 61 63 68 65 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 5c 22 33 30 30 4d 69 42 5c 22 2e 22 0a 20 ache,.defaults.to.\"300MiB\"."..
9a200 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 ...............},...............
9a220 20 20 22 64 69 73 63 61 72 64 2d 63 68 61 6e 67 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 .."discard-changes":.{..........
9a240 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 2c 20 22 62 ..........."type":.["string",."b
9a260 6f 6f 6c 65 61 6e 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 oolean"],....................."d
9a280 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 54 68 65 20 64 65 66 61 75 6c 74 20 73 74 79 6c 65 20 escription":."The.default.style.
9a2a0 6f 66 20 68 61 6e 64 6c 69 6e 67 20 64 69 72 74 79 20 75 70 64 61 74 65 73 2c 20 64 65 66 61 75 of.handling.dirty.updates,.defau
9a2c0 6c 74 73 20 74 6f 20 66 61 6c 73 65 20 61 6e 64 20 63 61 6e 20 62 65 20 61 6e 79 20 6f 66 20 74 lts.to.false.and.can.be.any.of.t
9a2e0 72 75 65 2c 20 66 61 6c 73 65 20 6f 72 20 5c 22 73 74 61 73 68 5c 22 2e 22 0a 20 20 20 20 20 20 rue,.false.or.\"stash\".".......
9a300 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 61 75 ..........},................."au
9a320 74 6f 6c 6f 61 64 65 72 2d 73 75 66 66 69 78 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 toloader-suffix":.{.............
9a340 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",.......
9a360 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 70 .............."description":."Op
9a380 74 69 6f 6e 61 6c 20 73 74 72 69 6e 67 20 74 6f 20 62 65 20 75 73 65 64 20 61 73 20 61 20 73 75 tional.string.to.be.used.as.a.su
9a3a0 66 66 69 78 20 66 6f 72 20 74 68 65 20 67 65 6e 65 72 61 74 65 64 20 43 6f 6d 70 6f 73 65 72 20 ffix.for.the.generated.Composer.
9a3c0 61 75 74 6f 6c 6f 61 64 65 72 2e 20 57 68 65 6e 20 6e 75 6c 6c 20 61 20 72 61 6e 64 6f 6d 20 6f autoloader..When.null.a.random.o
9a3e0 6e 65 20 77 69 6c 6c 20 62 65 20 67 65 6e 65 72 61 74 65 64 2e 22 0a 20 20 20 20 20 20 20 20 20 ne.will.be.generated."..........
9a400 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 70 65 .......},................."prepe
9a420 6e 64 2d 61 75 74 6f 6c 6f 61 64 65 72 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 nd-autoloader":.{...............
9a440 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 62 6f 6f 6c 65 61 6e 22 2c 0a 20 20 20 20 20 20 20 ......"type":."boolean",........
9a460 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 49 66 20 ............."description":."If.
9a480 66 61 6c 73 65 2c 20 74 68 65 20 63 6f 6d 70 6f 73 65 72 20 61 75 74 6f 6c 6f 61 64 65 72 20 77 false,.the.composer.autoloader.w
9a4a0 69 6c 6c 20 6e 6f 74 20 62 65 20 70 72 65 70 65 6e 64 65 64 20 74 6f 20 65 78 69 73 74 69 6e 67 ill.not.be.prepended.to.existing
9a4c0 20 61 75 74 6f 6c 6f 61 64 65 72 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f 20 74 72 75 65 2e 22 .autoloaders,.defaults.to.true."
9a4e0 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 .................},.............
9a500 20 20 20 20 22 67 69 74 68 75 62 2d 64 6f 6d 61 69 6e 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ...."github-domains":.{.........
9a520 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 20 20 20 ............"type":."array",....
9a540 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 20 ................."description":.
9a560 22 41 20 6c 69 73 74 20 6f 66 20 64 6f 6d 61 69 6e 73 20 74 6f 20 75 73 65 20 69 6e 20 67 69 74 "A.list.of.domains.to.use.in.git
9a580 68 75 62 20 6d 6f 64 65 2e 20 54 68 69 73 20 69 73 20 75 73 65 64 20 66 6f 72 20 47 69 74 48 75 hub.mode..This.is.used.for.GitHu
9a5a0 62 20 45 6e 74 65 72 70 72 69 73 65 20 73 65 74 75 70 73 2c 20 64 65 66 61 75 6c 74 73 20 74 6f b.Enterprise.setups,.defaults.to
9a5c0 20 5b 5c 22 67 69 74 68 75 62 2e 63 6f 6d 5c 22 5d 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 .[\"github.com\"].",............
9a5e0 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 20 20 20 20 20 ........."items":.{.............
9a600 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"....
9a620 20 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 20 .................}..............
9a640 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 7d 2c 0a 20 20 ...}.............}.........},...
9a660 20 20 20 20 20 20 22 65 78 74 72 61 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ......"extra":.{............."ty
9a680 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 2c 20 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 pe":.["object",."array"],.......
9a6a0 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 72 62 69 74 72 61 72 79 20 ......"description":."Arbitrary.
9a6c0 65 78 74 72 61 20 64 61 74 61 20 74 68 61 74 20 63 61 6e 20 62 65 20 75 73 65 64 20 62 79 20 70 extra.data.that.can.be.used.by.p
9a6e0 6c 75 67 69 6e 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 lugins,.for.example,.package.of.
9a700 74 79 70 65 20 63 6f 6d 70 6f 73 65 72 2d 70 6c 75 67 69 6e 20 6d 61 79 20 68 61 76 65 20 61 20 type.composer-plugin.may.have.a.
9a720 27 63 6c 61 73 73 27 20 6b 65 79 20 64 65 66 69 6e 69 6e 67 20 61 6e 20 69 6e 73 74 61 6c 6c 65 'class'.key.defining.an.installe
9a740 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 64 64 r.class.name.",............."add
9a760 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 20 itionalProperties":.true........
9a780 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 20 20 .},........."autoload":.{.......
9a7a0 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",.........
9a7c0 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 6e 20 ...."description":."Description.
9a7e0 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 6c 6f of.how.the.package.can.be.autolo
9a800 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 73 22 aded.",............."properties"
9a820 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 0a 20 :.{................."psr-0":.{..
9a840 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 6a 65 ..................."type":."obje
9a860 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 72 69 ct",....................."descri
9a880 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 65 73 ption":."This.is.a.hash.of.names
9a8a0 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 65 73 paces.(keys).and.the.directories
9a8c0 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 73 2c .they.can.be.found.into.(values,
9a8e0 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 65 20 .can.be.arrays.of.paths).by.the.
9a900 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 20 20 autoloader.",...................
9a920 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 0a 20 .."additionalProperties":.true..
9a940 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 ...............},...............
9a960 20 20 22 70 73 72 2d 34 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."psr-4":.{....................
9a980 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ."type":."object",..............
9a9a0 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 69 73 20 61 ......."description":."This.is.a
9a9c0 20 68 61 73 68 20 6f 66 20 6e 61 6d 65 73 70 61 63 65 73 20 28 6b 65 79 73 29 20 61 6e 64 20 74 .hash.of.namespaces.(keys).and.t
9a9e0 68 65 20 50 53 52 2d 34 20 64 69 72 65 63 74 6f 72 69 65 73 20 74 68 65 79 20 63 61 6e 20 6d 61 he.PSR-4.directories.they.can.ma
9aa00 70 20 74 6f 20 28 76 61 6c 75 65 73 2c 20 63 61 6e 20 62 65 20 61 72 72 61 79 73 20 6f 66 20 70 p.to.(values,.can.be.arrays.of.p
9aa20 61 74 68 73 29 20 62 79 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 72 2e 22 2c 0a 20 20 20 20 20 aths).by.the.autoloader.",......
9aa40 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 6f 70 65 72 ..............."additionalProper
9aa60 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 ties":.true.................},..
9aa80 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 63 6c 61 73 73 6d 61 70 22 3a 20 7b 0a 20 20 20 ..............."classmap":.{....
9aaa0 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 61 72 72 61 79 22 ................."type":."array"
9aac0 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
9aae0 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 64 69 72 65 63 74 on":."This.is.an.array.of.direct
9ab00 6f 72 69 65 73 20 74 68 61 74 20 63 6f 6e 74 61 69 6e 20 63 6c 61 73 73 65 73 20 74 6f 20 62 65 ories.that.contain.classes.to.be
9ab20 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 74 68 65 20 63 6c 61 73 73 2d 6d 61 70 20 67 65 6e 65 72 .included.in.the.class-map.gener
9ab40 61 74 69 6f 6e 20 70 72 6f 63 65 73 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ation.process.".................
9ab60 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 69 6c 65 73 22 3a 20 7b 0a 20 20 },................."files":.{...
9ab80 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 61 72 72 61 79 .................."type":."array
9aba0 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 70 74 ",....................."descript
9abc0 69 6f 6e 22 3a 20 22 54 68 69 73 20 69 73 20 61 6e 20 61 72 72 61 79 20 6f 66 20 66 69 6c 65 73 ion":."This.is.an.array.of.files
9abe0 20 74 68 61 74 20 61 72 65 20 61 6c 77 61 79 73 20 72 65 71 75 69 72 65 64 20 6f 6e 20 65 76 65 .that.are.always.required.on.eve
9ac00 72 79 20 72 65 71 75 65 73 74 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 ry.request.".................}..
9ac20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 ...........}.........},.........
9ac40 22 61 72 63 68 69 76 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a "archive":.{............."type":
9ac60 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 73 63 72 69 .["object"],............."descri
9ac80 70 74 69 6f 6e 22 3a 20 22 4f 70 74 69 6f 6e 73 20 66 6f 72 20 63 72 65 61 74 69 6e 67 20 70 61 ption":."Options.for.creating.pa
9aca0 63 6b 61 67 65 20 61 72 63 68 69 76 65 73 20 66 6f 72 20 64 69 73 74 72 69 62 75 74 69 6f 6e 2e ckage.archives.for.distribution.
9acc0 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 3a 20 7b 0a 20 ",............."properties":.{..
9ace0 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 65 78 63 6c 75 64 65 22 3a 20 7b 0a 20 20 20 20 ..............."exclude":.{.....
9ad00 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 61 72 72 61 79 22 2c ................"type":."array",
9ad20 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 6f ....................."descriptio
9ad40 6e 22 3a 20 22 41 20 6c 69 73 74 20 6f 66 20 70 61 74 74 65 72 6e 73 20 66 6f 72 20 70 61 74 68 n":."A.list.of.patterns.for.path
9ad60 73 20 74 6f 20 65 78 63 6c 75 64 65 20 6f 72 20 69 6e 63 6c 75 64 65 20 69 66 20 70 72 65 66 69 s.to.exclude.or.include.if.prefi
9ad80 78 65 64 20 77 69 74 68 20 61 6e 20 65 78 63 6c 61 6d 61 74 69 6f 6e 20 6d 61 72 6b 2e 22 0a 20 xed.with.an.exclamation.mark."..
9ada0 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 7d 0a 20 ...............}.............}..
9adc0 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 65 73 22 .......},........."repositories"
9ade0 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
9ae00 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
9ae20 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 72 65 70 ption":."A.set.of.additional.rep
9ae40 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 62 65 20 ositories.where.packages.can.be.
9ae60 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 6e 61 6c found.",............."additional
9ae80 50 72 6f 70 65 72 74 69 65 73 22 3a 20 74 72 75 65 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 Properties":.true.........},....
9aea0 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 20 20 20 ....."minimum-stability":.{.....
9aec0 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 20 20 20 ........"type":.["string"],.....
9aee0 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 69 6e 69 ........"description":."The.mini
9af00 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 73 74 20 mum.stability.the.packages.must.
9af20 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 69 62 6c have.to.be.install-able..Possibl
9af40 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 61 2c 20 e.values.are:.dev,.alpha,.beta,.
9af60 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 20 20 20 RC,.stable.".........},.........
9af80 22 70 72 65 66 65 72 2d 73 74 61 62 6c 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 "prefer-stable":.{............."
9afa0 74 79 70 65 22 3a 20 5b 22 62 6f 6f 6c 65 61 6e 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 type":.["boolean"],.............
9afc0 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 66 20 73 65 74 20 74 6f 20 74 72 75 65 2c 20 "description":."If.set.to.true,.
9afe0 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 20 77 69 6c 6c 20 62 65 20 70 72 65 66 65 72 65 64 stable.packages.will.be.prefered
9b000 20 74 6f 20 64 65 76 20 70 61 63 6b 61 67 65 73 20 77 68 65 6e 20 70 6f 73 73 69 62 6c 65 2c 20 .to.dev.packages.when.possible,.
9b020 65 76 65 6e 20 69 66 20 74 68 65 20 6d 69 6e 69 6d 75 6d 2d 73 74 61 62 69 6c 69 74 79 20 61 6c even.if.the.minimum-stability.al
9b040 6c 6f 77 73 20 75 6e 73 74 61 62 6c 65 20 70 61 63 6b 61 67 65 73 2e 22 0a 20 20 20 20 20 20 20 lows.unstable.packages."........
9b060 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 62 69 6e 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 .},........."bin":.{............
9b080 20 22 74 79 70 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 ."type":.["array"],.............
9b0a0 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 41 20 73 65 74 20 6f 66 20 66 69 6c 65 73 20 74 "description":."A.set.of.files.t
9b0c0 68 61 74 20 73 68 6f 75 6c 64 20 62 65 20 74 72 65 61 74 65 64 20 61 73 20 62 69 6e 61 72 69 65 hat.should.be.treated.as.binarie
9b0e0 73 20 61 6e 64 20 73 79 6d 6c 69 6e 6b 65 64 20 69 6e 74 6f 20 62 69 6e 2d 64 69 72 20 28 66 72 s.and.symlinked.into.bin-dir.(fr
9b100 6f 6d 20 63 6f 6e 66 69 67 29 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 69 74 65 6d 73 om.config).",............."items
9b120 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 ":.{................."type":."st
9b140 72 69 6e 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 ring".............}.........},..
9b160 20 20 20 20 20 20 20 22 69 6e 63 6c 75 64 65 2d 70 61 74 68 22 3a 20 7b 0a 20 20 20 20 20 20 20 ......."include-path":.{........
9b180 20 20 20 20 20 22 74 79 70 65 22 3a 20 5b 22 61 72 72 61 79 22 5d 2c 0a 20 20 20 20 20 20 20 20 ....."type":.["array"],.........
9b1a0 20 20 20 20 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 44 45 50 52 45 43 41 54 45 44 3a 20 ...."description":."DEPRECATED:.
9b1c0 41 20 6c 69 73 74 20 6f 66 20 64 69 72 65 63 74 6f 72 69 65 73 20 77 68 69 63 68 20 73 68 6f 75 A.list.of.directories.which.shou
9b1e0 6c 64 20 67 65 74 20 61 64 64 65 64 20 74 6f 20 50 48 50 27 73 20 69 6e 63 6c 75 64 65 20 70 61 ld.get.added.to.PHP's.include.pa
9b200 74 68 2e 20 54 68 69 73 20 69 73 20 6f 6e 6c 79 20 70 72 65 73 65 6e 74 20 74 6f 20 73 75 70 70 th..This.is.only.present.to.supp
9b220 6f 72 74 20 6c 65 67 61 63 79 20 70 72 6f 6a 65 63 74 73 2c 20 61 6e 64 20 61 6c 6c 20 6e 65 77 ort.legacy.projects,.and.all.new
9b240 20 63 6f 64 65 20 73 68 6f 75 6c 64 20 70 72 65 66 65 72 61 62 6c 79 20 75 73 65 20 61 75 74 6f .code.should.preferably.use.auto
9b260 6c 6f 61 64 69 6e 67 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 loading.",............."items":.
9b280 7b 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 73 74 72 69 6e {................."type":."strin
9b2a0 67 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 g".............}.........},.....
9b2c0 20 20 20 20 22 73 63 72 69 70 74 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 74 79 ...."scripts":.{............."ty
9b2e0 70 65 22 3a 20 5b 22 6f 62 6a 65 63 74 22 5d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 64 65 pe":.["object"],............."de
9b300 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 53 63 72 69 70 74 73 20 6c 69 73 74 65 6e 65 72 73 20 74 scription":."Scripts.listeners.t
9b320 68 61 74 20 77 69 6c 6c 20 62 65 20 65 78 65 63 75 74 65 64 20 62 65 66 6f 72 65 2f 61 66 74 65 hat.will.be.executed.before/afte
9b340 72 20 73 6f 6d 65 20 65 76 65 6e 74 73 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 r.some.events.",............."pr
9b360 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 20 22 70 72 operties":.{................."pr
9b380 65 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 20 20 20 e-install-cmd":.{...............
9b3a0 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 6e 67 22 ......"type":.["array",."string"
9b3c0 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 69 70 74 ],....................."descript
9b3e0 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 69 6e 73 74 61 6c 6c ion":."Occurs.before.the.install
9b400 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 20 6f .command.is.executed,.contains.o
9b420 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
9b440 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 es.or.shell.commands."..........
9b460 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 6f 73 74 2d .......},................."post-
9b480 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 20 20 20 20 20 install-cmd":.{.................
9b4a0 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 6e 67 22 5d 2c ...."type":.["array",."string"],
9b4c0 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 6f ....................."descriptio
9b4e0 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 6c 6c 20 63 6f n":."Occurs.after.the.install.co
9b500 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 20 6f 6e 65 20 mmand.is.executed,.contains.one.
9b520 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 65 73 20 or.more.Class::method.callables.
9b540 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 or.shell.commands.".............
9b560 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 2d 75 70 64 61 ....},................."pre-upda
9b580 74 65 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 te-cmd":.{....................."
9b5a0 74 79 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 type":.["array",."string"],.....
9b5c0 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":."
9b5e0 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 74 68 65 20 75 70 64 61 74 65 20 63 6f 6d 6d 61 6e 64 Occurs.before.the.update.command
9b600 20 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 .is.executed,.contains.one.or.mo
9b620 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 20 6f 72 20 73 68 re.Class::method.callables.or.sh
9b640 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d ell.commands.".................}
9b660 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 63 ,................."post-update-c
9b680 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 65 md":.{....................."type
9b6a0 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 20 ":.["array",."string"],.........
9b6c0 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 75 ............"description":."Occu
9b6e0 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 65 rs.after.the.update.command.is.e
9b700 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 6c xecuted,.contains.one.or.more.Cl
9b720 61 73 73 3a 3a 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 ass::method.callables.or.shell.c
9b740 6f 6d 6d 61 6e 64 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 ommands.".................},....
9b760 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 72 65 2d 73 74 61 74 75 73 2d 63 6d 64 22 3a 20 7b ............."pre-status-cmd":.{
9b780 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 5b 22 61 ....................."type":.["a
9b7a0 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 20 20 20 rray",."string"],...............
9b7c0 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 62 65 66 ......"description":."Occurs.bef
9b7e0 6f 72 65 20 74 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 ore.the.status.command.is.execut
9b800 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 6c 61 73 73 3a 3a ed,.contains.one.or.more.Class::
9b820 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e method.callables.or.shell.comman
9b840 64 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 ds.".................},.........
9b860 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 73 74 61 74 75 73 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 ........"post-status-cmd":.{....
9b880 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 79 ................."type":.["array
9b8a0 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 20 ",."string"],...................
9b8c0 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 61 66 74 65 72 20 74 .."description":."Occurs.after.t
9b8e0 68 65 20 73 74 61 74 75 73 20 63 6f 6d 6d 61 6e 64 20 69 73 20 65 78 65 63 75 74 65 64 2c 20 63 he.status.command.is.executed,.c
9b900 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 68 6f ontains.one.or.more.Class::metho
9b920 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a d.callables.or.shell.commands.".
9b940 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 20 ................},..............
9b960 20 20 20 22 70 72 65 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 ..."pre-package-install":.{.....
9b980 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"
9b9a0 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"],....................
9b9c0 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 20 61 ."description":."Occurs.before.a
9b9e0 20 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 .package.is.installed,.contains.
9ba00 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 62 one.or.more.Class::method.callab
9ba20 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 les.or.shell.commands.".........
9ba40 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 6f 73 74 ........},................."post
9ba60 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":.{............
9ba80 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
9baa0 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
9bac0 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 63 6b 61 67 65 iption":."Occurs.after.a.package
9bae0 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 6d .is.installed,.contains.one.or.m
9bb00 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 20 6f 72 20 73 ore.Class::method.callables.or.s
9bb20 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 hell.commands.".................
9bb40 7d 2c 0a 20 20 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 },................."pre-package-
9bb60 75 70 64 61 74 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 update":.{....................."
9bb80 74 79 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 type":.["array",."string"],.....
9bba0 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":."
9bbc0 4f 63 63 75 72 73 20 62 65 66 6f 72 65 20 61 20 70 61 63 6b 61 67 65 20 69 73 20 75 70 64 61 74 Occurs.before.a.package.is.updat
9bbe0 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 6c 61 73 73 3a 3a ed,.contains.one.or.more.Class::
9bc00 6d 65 74 68 6f 64 20 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e method.callables.or.shell.comman
9bc20 64 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 ds.".................},.........
9bc40 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 3a 20 7b ........"post-package-update":.{
9bc60 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 5b 22 61 ....................."type":.["a
9bc80 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 20 20 20 rray",."string"],...............
9bca0 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 61 66 74 ......"description":."Occurs.aft
9bcc0 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 61 69 6e er.a.package.is.updated,.contain
9bce0 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
9bd00 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 ables.or.shell.commands.".......
9bd20 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 72 ..........},................."pr
9bd40 65 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 20 20 e-package-uninstall":.{.........
9bd60 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 22 73 ............"type":.["array",."s
9bd80 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 64 65 tring"],....................."de
9bda0 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 20 61 20 70 61 63 scription":."Occurs.before.a.pac
9bdc0 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 61 kage.has.been.uninstalled,.conta
9bde0 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 61 ins.one.or.more.Class::method.ca
9be00 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 llables.or.shell.commands.".....
9be20 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 ............},................."
9be40 70 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 post-package-uninstall":.{......
9be60 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 2c ..............."type":.["array",
9be80 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 20 ."string"],.....................
9bea0 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 70 "description":."Occurs.after.a.p
9bec0 61 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 ackage.has.been.uninstalled,.con
9bee0 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 68 6f 64 20 tains.one.or.more.Class::method.
9bf00 63 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 callables.or.shell.commands."...
9bf20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ..............},................
9bf40 20 22 70 72 65 2d 61 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 ."pre-autoload-dump":.{.........
9bf60 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 22 73 ............"type":.["array",."s
9bf80 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 64 65 tring"],....................."de
9bfa0 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 20 74 68 65 20 61 scription":."Occurs.before.the.a
9bfc0 75 74 6f 6c 6f 61 64 65 72 20 69 73 20 64 75 6d 70 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e utoloader.is.dumped,.contains.on
9bfe0 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 65 e.or.more.Class::method.callable
9c000 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 s.or.shell.commands."...........
9c020 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 6f 73 74 2d 61 ......},................."post-a
9c040 75 74 6f 6c 6f 61 64 2d 64 75 6d 70 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 utoload-dump":.{................
9c060 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 6e 67 22 5d ....."type":.["array",."string"]
9c080 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
9c0a0 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 61 75 74 6f 6c 6f 61 64 65 on":."Occurs.after.the.autoloade
9c0c0 72 20 69 73 20 64 75 6d 70 65 64 2c 20 63 6f 6e 74 61 69 6e 73 20 6f 6e 65 20 6f 72 20 6d 6f 72 r.is.dumped,.contains.one.or.mor
9c0e0 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 20 6f 72 20 73 68 65 e.Class::method.callables.or.she
9c100 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 7d 2c ll.commands.".................},
9c120 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 22 70 6f 73 74 2d 72 6f 6f 74 2d 70 61 63 6b ................."post-root-pack
9c140 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 20 20 20 20 20 age-install":.{.................
9c160 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 6e 67 22 5d 2c ...."type":.["array",."string"],
9c180 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 6f ....................."descriptio
9c1a0 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 72 6f 6f 74 2d 70 61 63 6b 61 n":."Occurs.after.the.root-packa
9c1c0 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 6e 65 20 6f 72 ge.is.installed,.contains.one.or
9c1e0 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 65 73 20 6f 72 .more.Class::method.callables.or
9c200 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .shell.commands."...............
9c220 20 20 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 63 72 65 61 74 ..},................."post-creat
9c240 65 2d 70 72 6f 6a 65 63 74 2d 63 6d 64 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 e-project-cmd":.{...............
9c260 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 6e 67 22 ......"type":.["array",."string"
9c280 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 69 70 74 ],....................."descript
9c2a0 69 6f 6e 22 3a 20 22 4f 63 63 75 72 73 20 61 66 74 65 72 20 74 68 65 20 63 72 65 61 74 65 2d 70 ion":."Occurs.after.the.create-p
9c2c0 72 6f 6a 65 63 74 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 roject.command.is.executed,.cont
9c2e0 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
9c300 61 6c 6c 61 62 6c 65 73 20 6f 72 20 73 68 65 6c 6c 20 63 6f 6d 6d 61 6e 64 73 2e 22 0a 20 20 20 allables.or.shell.commands."....
9c320 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 7d 0a 20 20 20 .............}.............}....
9c340 20 20 20 20 20 7d 2c 0a 20 20 20 20 20 20 20 20 22 73 75 70 70 6f 72 74 22 3a 20 7b 0a 20 20 20 .....},........."support":.{....
9c360 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 6f 62 6a 65 63 74 22 2c 0a 20 20 20 20 20 ........."type":."object",......
9c380 20 20 20 20 20 20 20 22 70 72 6f 70 65 72 74 69 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 ......."properties":.{..........
9c3a0 20 20 20 20 20 20 20 22 65 6d 61 69 6c 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ......."email":.{...............
9c3c0 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 20 ......"type":."string",.........
9c3e0 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 45 6d 61 69 ............"description":."Emai
9c400 6c 20 61 64 64 72 65 73 73 20 66 6f 72 20 73 75 70 70 6f 72 74 2e 22 2c 0a 20 20 20 20 20 20 20 l.address.for.support.",........
9c420 20 20 20 20 20 20 20 20 20 20 20 20 20 22 66 6f 72 6d 61 74 22 3a 20 22 65 6d 61 69 6c 22 0a 20 ............."format":."email"..
9c440 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 ...............},...............
9c460 20 20 22 69 73 73 75 65 73 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 .."issues":.{...................
9c480 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 .."type":."string",.............
9c4a0 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 4c 20 74 6f 20 74 ........"description":."URL.to.t
9c4c0 68 65 20 49 73 73 75 65 20 54 72 61 63 6b 65 72 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 he.Issue.Tracker.",.............
9c4e0 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".........
9c500 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 66 6f 72 75 ........},................."foru
9c520 6d 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 65 22 m":.{....................."type"
9c540 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 :."string",.....................
9c560 22 64 65 73 63 72 69 70 74 69 6f 6e 22 3a 20 22 55 52 4c 20 74 6f 20 74 68 65 20 46 6f 72 75 6d "description":."URL.to.the.Forum
9c580 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 61 74 22 .",....................."format"
9c5a0 3a 20 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 :."uri".................},......
9c5c0 20 20 20 20 20 20 20 20 20 20 20 22 77 69 6b 69 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 ..........."wiki":.{............
9c5e0 20 20 20 20 20 20 20 20 20 22 74 79 70 65 22 3a 20 22 73 74 72 69 6e 67 22 2c 0a 20 20 20 20 20 ........."type":."string",......
9c600 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 55 ..............."description":."U
9c620 52 4c 20 74 6f 20 74 68 65 20 57 69 6b 69 2e 22 2c 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 RL.to.the.Wiki.",...............
9c640 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"...........
9c660 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 69 72 63 22 3a 20 ......},................."irc":.
9c680 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 73 {....................."type":."s
9c6a0 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 73 tring",....................."des
9c6c0 63 72 69 70 74 69 6f 6e 22 3a 20 22 49 52 43 20 63 68 61 6e 6e 65 6c 20 66 6f 72 20 73 75 70 70 cription":."IRC.channel.for.supp
9c6e0 6f 72 74 2c 20 61 73 20 69 72 63 3a 2f 2f 73 65 72 76 65 72 2f 63 68 61 6e 6e 65 6c 2e 22 2c 0a ort,.as.irc://server/channel.",.
9c700 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
9c720 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".................},..........
9c740 20 20 20 20 20 20 20 22 73 6f 75 72 63 65 22 3a 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 ......."source":.{..............
9c760 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",........
9c780 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 4c ............."description":."URL
9c7a0 20 74 6f 20 62 72 6f 77 73 65 20 6f 72 20 64 6f 77 6e 6c 6f 61 64 20 74 68 65 20 73 6f 75 72 63 .to.browse.or.download.the.sourc
9c7c0 65 73 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 61 es.",....................."forma
9c7e0 74 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 7d 0a 20 20 20 20 t":."uri".................}.....
9c800 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 20 20 20 20 7d 0a 20 20 20 20 7d 0a 7d 0a 4d 5a 90 00 ........}.........}.....}.}.MZ..
9c820 03 00 00 00 04 00 00 00 ff ff 00 00 b8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 00 00 00 00 ....................@...........
9c840 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 e8 00 00 00 0e 1f ba 0e ................................
9c860 00 b4 09 cd 21 b8 01 4c cd 21 54 68 69 73 20 70 72 6f 67 72 61 6d 20 63 61 6e 6e 6f 74 20 62 65 ....!..L.!This.program.cannot.be
9c880 20 72 75 6e 20 69 6e 20 44 4f 53 20 6d 6f 64 65 2e 0d 0d 0a 24 00 00 00 00 00 00 00 7f c6 2c cd .run.in.DOS.mode....$.........,.
9c8a0 3b a7 42 9e 3b a7 42 9e 3b a7 42 9e 32 df d7 9e 3a a7 42 9e 32 df c1 9e 2d a7 42 9e 32 df c6 9e ;.B.;.B.;.B.2...:.B.2...-.B.2...
9c8c0 39 a7 42 9e 32 df d1 9e 3f a7 42 9e 1c 61 39 9e 38 a7 42 9e 3b a7 43 9e 08 a7 42 9e 32 df c8 9e 9.B.2...?.B..a9.8.B.;.C...B.2...
9c8e0 3a a7 42 9e 32 df d6 9e 3a a7 42 9e 32 df d3 9e 3a a7 42 9e 52 69 63 68 3b a7 42 9e 00 00 00 00 :.B.2...:.B.2...:.B.Rich;.B.....
9c900 00 00 00 00 50 45 00 00 4c 01 05 00 ac 4d 6f 4f 00 00 00 00 00 00 00 00 e0 00 02 01 0b 01 09 00 ....PE..L....MoO................
9c920 00 0a 00 00 00 16 00 00 00 00 00 00 38 13 00 00 00 10 00 00 00 20 00 00 00 00 40 00 00 10 00 00 ............8.............@.....
9c940 00 02 00 00 05 00 00 00 00 00 00 00 05 00 00 00 00 00 00 00 00 60 00 00 00 04 00 00 3f 9c 00 00 .....................`......?...
9c960 03 00 40 81 00 00 10 00 00 10 00 00 00 00 10 00 00 10 00 00 00 00 00 00 10 00 00 00 00 00 00 00 ..@.............................
9c980 00 00 00 00 90 22 00 00 50 00 00 00 00 40 00 00 20 06 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....."..P....@..................
9c9a0 00 00 00 00 00 50 00 00 70 01 00 00 00 21 00 00 1c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .....P..p....!..................
9c9c0 00 00 00 00 00 00 00 00 00 00 00 00 38 21 00 00 40 00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 ............8!..@...............
9c9e0 d8 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 2e 74 65 78 .............................tex
9ca00 74 00 00 00 0b 09 00 00 00 10 00 00 00 0a 00 00 00 04 00 00 00 00 00 00 00 00 00 00 00 00 00 00 t...............................
9ca20 20 00 00 60 2e 72 64 61 74 61 00 00 ce 09 00 00 00 20 00 00 00 0a 00 00 00 0e 00 00 00 00 00 00 ...`.rdata......................
9ca40 00 00 00 00 00 00 00 00 40 00 00 40 2e 64 61 74 61 00 00 00 90 03 00 00 00 30 00 00 00 02 00 00 ........@..@.data........0......
9ca60 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 c0 2e 72 73 72 63 00 00 00 20 06 00 00 ................@....rsrc.......
9ca80 00 40 00 00 00 08 00 00 00 1a 00 00 00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 40 2e 72 65 6c .@......................@..@.rel
9caa0 6f 63 00 00 cc 01 00 00 00 50 00 00 00 02 00 00 00 22 00 00 00 00 00 00 00 00 00 00 00 00 00 00 oc.......P......."..............
9cac0 40 00 00 42 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @..B............................
9cae0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cb00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cb20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cb40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cb60 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cb80 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cbc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cbe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9cc00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 6a 24 b8 e6 ............................j$..
9cc20 18 40 00 e8 78 08 00 00 6a f6 ff 15 08 20 40 00 83 65 d0 00 8b f0 8d 45 d0 50 56 ff 15 00 20 40 .@..x...j.....@..e.....E.PV....@
9cc40 00 8b 45 d0 83 e0 fb 50 56 ff 15 04 20 40 00 8d 4d d4 ff 15 58 20 40 00 83 65 fc 00 8d 45 d4 50 ..E....PV....@..M...X.@..e...E.P
9cc60 ff 35 48 20 40 00 ff 15 4c 20 40 00 59 59 ff 35 5c 20 40 00 8d 45 d4 50 ff 35 60 20 40 00 ff 15 .5H.@...L.@.YY.5\.@..E.P.5`.@...
9cc80 44 20 40 00 59 59 8b c8 ff 15 50 20 40 00 83 4d fc ff 8d 4d d4 ff 15 54 20 40 00 33 c0 e8 48 08 D.@.YY....P.@..M...M...T.@.3..H.
9cca0 00 00 c3 3b 0d 00 30 40 00 75 02 f3 c3 e9 ac 02 00 00 68 80 15 40 00 e8 a3 04 00 00 a1 6c 33 40 ...;..0@.u........h..@.......l3@
9ccc0 00 c7 04 24 34 30 40 00 ff 35 68 33 40 00 a3 34 30 40 00 68 24 30 40 00 68 28 30 40 00 68 20 30 ...$40@..5h3@..40@.h$0@.h(0@.h.0
9cce0 40 00 ff 15 a0 20 40 00 83 c4 14 a3 30 30 40 00 85 c0 7d 08 6a 08 e8 b9 03 00 00 59 c3 6a 10 68 @.....@.....00@...}.j......Y.j.h
9cd00 08 22 40 00 e8 1f 06 00 00 33 db 89 5d fc 64 a1 18 00 00 00 8b 70 04 89 5d e4 bf 80 33 40 00 53 ."@......3..].d......p..]...3@.S
9cd20 56 57 ff 15 30 20 40 00 3b c3 74 19 3b c6 75 08 33 f6 46 89 75 e4 eb 10 68 e8 03 00 00 ff 15 34 VW..0.@.;.t.;.u.3.F.u...h......4
9cd40 20 40 00 eb da 33 f6 46 a1 7c 33 40 00 3b c6 75 0a 6a 1f e8 5c 03 00 00 59 eb 3b a1 7c 33 40 00 .@...3.F.|3@.;.u.j..\...Y.;.|3@.
9cd60 85 c0 75 2c 89 35 7c 33 40 00 68 f0 20 40 00 68 e4 20 40 00 e8 a7 05 00 00 59 59 85 c0 74 17 c7 ..u,.5|3@.h..@.h..@......YY..t..
9cd80 45 fc fe ff ff ff b8 ff 00 00 00 e9 dd 00 00 00 89 35 3c 30 40 00 a1 7c 33 40 00 3b c6 75 1b 68 E................5<0@..|3@.;.u.h
9cda0 e0 20 40 00 68 d8 20 40 00 e8 6c 05 00 00 59 59 c7 05 7c 33 40 00 02 00 00 00 39 5d e4 75 08 53 ..@.h..@..l...YY..|3@.....9].u.S
9cdc0 57 ff 15 38 20 40 00 39 1d 8c 33 40 00 74 19 68 8c 33 40 00 e8 83 04 00 00 59 85 c0 74 0a 53 6a W..8.@.9..3@.t.h.3@......Y..t.Sj
9cde0 02 53 ff 15 8c 33 40 00 a1 24 30 40 00 8b 0d bc 20 40 00 89 01 ff 35 24 30 40 00 ff 35 28 30 40 .S...3@..$0@.....@....5$0@..5(0@
9ce00 00 ff 35 20 30 40 00 e8 10 fe ff ff 83 c4 0c a3 38 30 40 00 39 1d 2c 30 40 00 75 37 50 ff 15 c0 ..5.0@..........80@.9.,0@.u7P...
9ce20 20 40 00 8b 45 ec 8b 08 8b 09 89 4d e0 50 51 e8 8e 03 00 00 59 59 c3 8b 65 e8 8b 45 e0 a3 38 30 .@..E......M.PQ.....YY..e..E..80
9ce40 40 00 33 db 39 1d 2c 30 40 00 75 07 50 ff 15 68 20 40 00 39 1d 3c 30 40 00 75 06 ff 15 9c 20 40 @.3.9.,0@.u.P..h.@.9.<0@.u.....@
9ce60 00 c7 45 fc fe ff ff ff a1 38 30 40 00 e8 fb 04 00 00 c3 b8 4d 5a 00 00 66 39 05 00 00 40 00 74 ..E......80@........MZ..f9...@.t
9ce80 04 33 c0 eb 4d a1 3c 00 40 00 8d 80 00 00 40 00 81 38 50 45 00 00 75 e9 0f b7 48 18 81 f9 0b 01 .3..M.<.@.....@..8PE..u...H.....
9cea0 00 00 74 1b 81 f9 0b 02 00 00 75 d5 83 b8 84 00 00 00 0e 76 cc 33 c9 39 88 f8 00 00 00 eb 0e 83 ..t.......u........v.3.9........
9cec0 78 74 0e 76 bc 33 c9 39 88 e8 00 00 00 0f 95 c1 8b c1 6a 01 a3 2c 30 40 00 ff 15 70 20 40 00 6a xt.v.3.9..........j..,0@...p.@.j
9cee0 ff ff 15 6c 20 40 00 59 59 a3 84 33 40 00 a3 88 33 40 00 ff 15 cc 20 40 00 8b 0d 74 33 40 00 89 ...l.@.YY..3@...3@.....@...t3@..
9cf00 08 ff 15 88 20 40 00 8b 0d 70 33 40 00 89 08 a1 a8 20 40 00 8b 00 a3 78 33 40 00 e8 56 02 00 00 .....@...p3@......@....x3@..V...
9cf20 e8 ac 04 00 00 83 3d 14 30 40 00 00 75 0c 68 b5 17 40 00 ff 15 ac 20 40 00 59 e8 67 04 00 00 83 ......=.0@..u.h..@.....@.Y.g....
9cf40 3d 10 30 40 00 ff 75 09 6a ff ff 15 b0 20 40 00 59 33 c0 c3 e8 7b 04 00 00 e9 9f fd ff ff 8b ff =.0@..u.j.....@.Y3...{..........
9cf60 55 8b ec 81 ec 28 03 00 00 a3 48 31 40 00 89 0d 44 31 40 00 89 15 40 31 40 00 89 1d 3c 31 40 00 U....(....H1@...D1@...@1@...<1@.
9cf80 89 35 38 31 40 00 89 3d 34 31 40 00 66 8c 15 60 31 40 00 66 8c 0d 54 31 40 00 66 8c 1d 30 31 40 .581@..=41@.f..`1@.f..T1@.f..01@
9cfa0 00 66 8c 05 2c 31 40 00 66 8c 25 28 31 40 00 66 8c 2d 24 31 40 00 9c 8f 05 58 31 40 00 8b 45 00 .f..,1@.f.%(1@.f.-$1@....X1@..E.
9cfc0 a3 4c 31 40 00 8b 45 04 a3 50 31 40 00 8d 45 08 a3 5c 31 40 00 8b 85 e0 fc ff ff c7 05 98 30 40 .L1@..E..P1@..E..\1@..........0@
9cfe0 00 01 00 01 00 a1 50 31 40 00 a3 4c 30 40 00 c7 05 40 30 40 00 09 04 00 c0 c7 05 44 30 40 00 01 ......P1@..L0@...@0@.......D0@..
9d000 00 00 00 a1 00 30 40 00 89 85 d8 fc ff ff a1 04 30 40 00 89 85 dc fc ff ff ff 15 1c 20 40 00 a3 .....0@.........0@...........@..
9d020 90 30 40 00 6a 01 e8 3f 04 00 00 59 6a 00 ff 15 20 20 40 00 68 1c 21 40 00 ff 15 24 20 40 00 83 .0@.j..?...Yj.....@.h.!@...$.@..
9d040 3d 90 30 40 00 00 75 08 6a 01 e8 1b 04 00 00 59 68 09 04 00 c0 ff 15 28 20 40 00 50 ff 15 2c 20 =.0@..u.j......Yh......(.@.P..,.
9d060 40 00 c9 c3 8b ff 55 8b ec 8b 45 08 8b 00 81 38 63 73 6d e0 75 2a 83 78 10 03 75 24 8b 40 14 3d @.....U...E....8csm.u*.x..u$.@.=
9d080 20 05 93 19 74 15 3d 21 05 93 19 74 0e 3d 22 05 93 19 74 07 3d 00 40 99 01 75 05 e8 d0 03 00 00 ....t.=!...t.="...t.=.@..u......
9d0a0 33 c0 5d c2 04 00 68 48 14 40 00 ff 15 20 20 40 00 33 c0 c3 ff 25 a4 20 40 00 6a 14 68 28 22 40 3.]...hH.@.....@.3...%..@.j.h("@
9d0c0 00 e8 62 02 00 00 ff 35 88 33 40 00 8b 35 8c 20 40 00 ff d6 59 89 45 e4 83 f8 ff 75 0c ff 75 08 ..b....5.3@..5..@...Y.E....u..u.
9d0e0 ff 15 c4 20 40 00 59 eb 67 6a 08 e8 92 03 00 00 59 83 65 fc 00 ff 35 88 33 40 00 ff d6 89 45 e4 ....@.Y.gj......Y.e...5.3@....E.
9d100 ff 35 84 33 40 00 ff d6 59 59 89 45 e0 8d 45 e0 50 8d 45 e4 50 ff 75 08 8b 35 6c 20 40 00 ff d6 .5.3@...YY.E..E.P.E.P.u..5l.@...
9d120 59 50 e8 55 03 00 00 89 45 dc ff 75 e4 ff d6 a3 88 33 40 00 ff 75 e0 ff d6 83 c4 14 a3 84 33 40 YP.U....E..u.....3@..u........3@
9d140 00 c7 45 fc fe ff ff ff e8 09 00 00 00 8b 45 dc e8 18 02 00 00 c3 6a 08 e8 19 03 00 00 59 c3 8b ..E...........E.......j......Y..
9d160 ff 55 8b ec ff 75 08 e8 4e ff ff ff f7 d8 1b c0 f7 d8 59 48 5d c3 8b ff 56 b8 fc 21 40 00 be fc .U...u..N.........YH]...V..!@...
9d180 21 40 00 57 8b f8 3b c6 73 0f 8b 07 85 c0 74 02 ff d0 83 c7 04 3b fe 72 f1 5f 5e c3 8b ff 56 b8 !@.W..;.s.....t......;.r._^...V.
9d1a0 04 22 40 00 be 04 22 40 00 57 8b f8 3b c6 73 0f 8b 07 85 c0 74 02 ff d0 83 c7 04 3b fe 72 f1 5f ."@..."@.W..;.s.....t......;.r._
9d1c0 5e c3 ff 25 c8 20 40 00 cc cc cc cc 8b ff 55 8b ec 8b 4d 08 b8 4d 5a 00 00 66 39 01 74 04 33 c0 ^..%..@.......U...M..MZ..f9.t.3.
9d1e0 5d c3 8b 41 3c 03 c1 81 38 50 45 00 00 75 ef 33 d2 b9 0b 01 00 00 66 39 48 18 0f 94 c2 8b c2 5d ]..A<...8PE..u.3......f9H......]
9d200 c3 cc cc cc cc cc cc cc cc cc cc cc 8b ff 55 8b ec 8b 45 08 8b 48 3c 03 c8 0f b7 41 14 53 56 0f ..............U...E..H<....A.SV.
9d220 b7 71 06 33 d2 57 8d 44 08 18 85 f6 76 1b 8b 7d 0c 8b 48 0c 3b f9 72 09 8b 58 08 03 d9 3b fb 72 .q.3.W.D....v..}..H.;.r..X...;.r
9d240 0a 42 83 c0 28 3b d6 72 e8 33 c0 5f 5e 5b 5d c3 cc cc cc cc cc cc cc cc cc cc cc cc 8b ff 55 8b .B..(;.r.3._^[]...............U.
9d260 ec 6a fe 68 48 22 40 00 68 65 17 40 00 64 a1 00 00 00 00 50 83 ec 08 53 56 57 a1 00 30 40 00 31 .j.hH"@.he.@.d.....P...SVW..0@.1
9d280 45 f8 33 c5 50 8d 45 f0 64 a3 00 00 00 00 89 65 e8 c7 45 fc 00 00 00 00 68 00 00 40 00 e8 2a ff E.3.P.E.d......e..E.....h..@..*.
9d2a0 ff ff 83 c4 04 85 c0 74 55 8b 45 08 2d 00 00 40 00 50 68 00 00 40 00 e8 50 ff ff ff 83 c4 08 85 .......tU.E.-..@.Ph..@..P.......
9d2c0 c0 74 3b 8b 40 24 c1 e8 1f f7 d0 83 e0 01 c7 45 fc fe ff ff ff 8b 4d f0 64 89 0d 00 00 00 00 59 .t;.@$.........E......M.d......Y
9d2e0 5f 5e 5b 8b e5 5d c3 8b 45 ec 8b 08 8b 01 33 d2 3d 05 00 00 c0 0f 94 c2 8b c2 c3 8b 65 e8 c7 45 _^[..]..E.....3.=...........e..E
9d300 fc fe ff ff ff 33 c0 8b 4d f0 64 89 0d 00 00 00 00 59 5f 5e 5b 8b e5 5d c3 cc ff 25 b8 20 40 00 .....3..M.d......Y_^[..]...%..@.
9d320 ff 25 b4 20 40 00 cc cc 68 65 17 40 00 64 ff 35 00 00 00 00 8b 44 24 10 89 6c 24 10 8d 6c 24 10 .%..@...he.@.d.5.....D$..l$..l$.
9d340 2b e0 53 56 57 a1 00 30 40 00 31 45 fc 33 c5 50 89 65 e8 ff 75 f8 8b 45 fc c7 45 fc fe ff ff ff +.SVW..0@.1E.3.P.e..u..E..E.....
9d360 89 45 f8 8d 45 f0 64 a3 00 00 00 00 c3 8b 4d f0 64 89 0d 00 00 00 00 59 5f 5f 5e 5b 8b e5 5d 51 .E..E.d.......M.d......Y__^[..]Q
9d380 c3 8b ff 55 8b ec ff 75 14 ff 75 10 ff 75 0c ff 75 08 68 87 10 40 00 68 00 30 40 00 e8 e7 00 00 ...U...u..u..u..u.h..@.h.0@.....
9d3a0 00 83 c4 18 5d c3 8b ff 56 68 00 00 03 00 68 00 00 01 00 33 f6 56 e8 d9 00 00 00 83 c4 0c 85 c0 ....]...Vh....h....3.V..........
9d3c0 74 0d 56 56 56 56 56 e8 c2 00 00 00 83 c4 14 5e c3 33 c0 c3 8b ff 55 8b ec 83 ec 10 a1 00 30 40 t.VVVVV........^.3....U.......0@
9d3e0 00 83 65 f8 00 83 65 fc 00 53 57 bf 4e e6 40 bb bb 00 00 ff ff 3b c7 74 0d 85 c3 74 09 f7 d0 a3 ..e...e..SW.N.@......;.t...t....
9d400 04 30 40 00 eb 60 56 8d 45 f8 50 ff 15 3c 20 40 00 8b 75 fc 33 75 f8 ff 15 0c 20 40 00 33 f0 ff .0@..`V.E.P..<.@..u.3u.....@.3..
9d420 15 10 20 40 00 33 f0 ff 15 14 20 40 00 33 f0 8d 45 f0 50 ff 15 18 20 40 00 8b 45 f4 33 45 f0 33 ...@.3.....@.3..E.P....@..E.3E.3
9d440 f0 3b f7 75 07 be 4f e6 40 bb eb 0b 85 f3 75 07 8b c6 c1 e0 10 0b f0 89 35 00 30 40 00 f7 d6 89 .;.u..O.@.....u.........5.0@....
9d460 35 04 30 40 00 5e 5f 5b c9 c3 ff 25 74 20 40 00 ff 25 78 20 40 00 ff 25 7c 20 40 00 ff 25 80 20 5.0@.^_[...%t.@..%x.@..%|.@..%..
9d480 40 00 ff 25 84 20 40 00 ff 25 90 20 40 00 ff 25 94 20 40 00 ff 25 98 20 40 00 ff 25 d0 20 40 00 @..%..@..%..@..%..@..%..@..%..@.
9d4a0 50 64 ff 35 00 00 00 00 8d 44 24 0c 2b 64 24 0c 53 56 57 89 28 8b e8 a1 00 30 40 00 33 c5 50 89 Pd.5.....D$.+d$.SVW.(....0@.3.P.
9d4c0 45 f0 ff 75 fc c7 45 fc ff ff ff ff 8d 45 f4 64 a3 00 00 00 00 c3 8b 4d f4 64 89 0d 00 00 00 00 E..u..E......E.d.......M.d......
9d4e0 59 5f 5f 5e 5b 8b e5 5d 51 c3 8b 4d f0 33 cd e8 af f7 ff ff e9 dd ff ff ff 8d 4d d4 ff 25 54 20 Y__^[..]Q..M.3............M..%T.
9d500 40 00 8b 54 24 08 8d 42 0c 8b 4a cc 33 c8 e8 90 f7 ff ff 8b 4a fc 33 c8 e8 86 f7 ff ff b8 6c 22 @..T$..B..J.3.......J.3.......l"
9d520 40 00 e9 73 ff ff ff 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 @..s............................
9d540 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d560 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d580 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d5a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d5c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d5e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d600 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b8 23 00 00 .............................#..
9d620 ca 23 00 00 dc 23 00 00 88 29 00 00 72 29 00 00 62 29 00 00 48 29 00 00 34 29 00 00 16 29 00 00 .#...#...)..r)..b)..H)..4)...)..
9d640 fa 28 00 00 e6 28 00 00 d2 28 00 00 b4 28 00 00 ac 28 00 00 96 28 00 00 9e 29 00 00 00 00 00 00 .(...(...(...(...(...(...)......
9d660 fa 23 00 00 e0 24 00 00 1a 25 00 00 ca 25 00 00 1a 26 00 00 64 26 00 00 ae 26 00 00 a4 24 00 00 .#...$...%...%...&..d&...&...$..
9d680 00 00 00 00 28 27 00 00 c4 27 00 00 d6 27 00 00 e8 27 00 00 fe 27 00 00 1e 28 00 00 28 28 00 00 ....('...'...'...'...'...(..((..
9d6a0 36 28 00 00 a6 27 00 00 48 28 00 00 5a 28 00 00 74 28 00 00 86 28 00 00 1e 27 00 00 0e 27 00 00 6(...'..H(..Z(..t(...(...'...'..
9d6c0 00 27 00 00 96 27 00 00 82 27 00 00 6c 27 00 00 5e 27 00 00 52 27 00 00 46 27 00 00 3e 27 00 00 .'...'...'..l'..^'..R'..F'..>'..
9d6e0 3e 28 00 00 30 27 00 00 b6 27 00 00 b8 29 00 00 00 00 00 00 00 00 00 00 96 10 40 00 00 00 00 00 >(..0'...'...)............@.....
9d700 00 00 00 00 57 12 40 00 8a 14 40 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ....W.@...@.....................
9d720 ac 4d 6f 4f 00 00 00 00 02 00 00 00 6c 00 00 00 80 21 00 00 80 0f 00 00 40 30 40 00 98 30 40 00 .MoO........l....!......@0@..0@.
9d740 62 61 64 20 61 6c 6c 6f 63 61 74 69 6f 6e 00 00 00 00 00 00 48 00 00 00 00 00 00 00 00 00 00 00 bad.allocation......H...........
9d760 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9d780 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 30 40 00 f0 21 40 00 02 00 00 00 52 53 44 53 .................0@..!@.....RSDS
9d7a0 d1 8c b3 10 b4 8f 01 4a a8 21 f6 cc eb 4c 5a 00 01 00 00 00 63 3a 5c 75 73 65 72 73 5c 73 65 6c .......J.!...LZ.....c:\users\sel
9d7c0 64 5c 64 6f 63 75 6d 65 6e 74 73 5c 76 69 73 75 61 6c 20 73 74 75 64 69 6f 20 32 30 31 30 5c 50 d\documents\visual.studio.2010\P
9d7e0 72 6f 6a 65 63 74 73 5c 68 69 64 64 65 6e 69 6e 70 5c 52 65 6c 65 61 73 65 5c 68 69 64 64 65 6e rojects\hiddeninp\Release\hidden
9d800 69 6e 70 2e 70 64 62 00 00 00 00 00 65 17 00 00 e6 18 00 00 00 00 00 00 00 00 00 00 00 00 00 00 inp.pdb.....e...................
9d820 00 00 00 00 fe ff ff ff 00 00 00 00 d0 ff ff ff 00 00 00 00 fe ff ff ff 07 12 40 00 1b 12 40 00 ..........................@...@.
9d840 00 00 00 00 fe ff ff ff 00 00 00 00 cc ff ff ff 00 00 00 00 fe ff ff ff 00 00 00 00 3a 15 40 00 ............................:.@.
9d860 00 00 00 00 fe ff ff ff 00 00 00 00 d8 ff ff ff 00 00 00 00 fe ff ff ff cb 16 40 00 df 16 40 00 ..........................@...@.
9d880 ff ff ff ff dd 18 40 00 22 05 93 19 01 00 00 00 64 22 40 00 00 00 00 00 00 00 00 00 00 00 00 00 ......@.".......d"@.............
9d8a0 00 00 00 00 00 00 00 00 01 00 00 00 e0 22 00 00 00 00 00 00 00 00 00 00 ec 23 00 00 00 20 00 00 ............."...........#......
9d8c0 24 23 00 00 00 00 00 00 00 00 00 00 f4 26 00 00 44 20 00 00 48 23 00 00 00 00 00 00 00 00 00 00 $#...........&..D...H#..........
9d8e0 12 28 00 00 68 20 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 b8 23 00 00 .(..h........................#..
9d900 ca 23 00 00 dc 23 00 00 88 29 00 00 72 29 00 00 62 29 00 00 48 29 00 00 34 29 00 00 16 29 00 00 .#...#...)..r)..b)..H)..4)...)..
9d920 fa 28 00 00 e6 28 00 00 d2 28 00 00 b4 28 00 00 ac 28 00 00 96 28 00 00 9e 29 00 00 00 00 00 00 .(...(...(...(...(...(...)......
9d940 fa 23 00 00 e0 24 00 00 1a 25 00 00 ca 25 00 00 1a 26 00 00 64 26 00 00 ae 26 00 00 a4 24 00 00 .#...$...%...%...&..d&...&...$..
9d960 00 00 00 00 28 27 00 00 c4 27 00 00 d6 27 00 00 e8 27 00 00 fe 27 00 00 1e 28 00 00 28 28 00 00 ....('...'...'...'...'...(..((..
9d980 36 28 00 00 a6 27 00 00 48 28 00 00 5a 28 00 00 74 28 00 00 86 28 00 00 1e 27 00 00 0e 27 00 00 6(...'..H(..Z(..t(...(...'...'..
9d9a0 00 27 00 00 96 27 00 00 82 27 00 00 6c 27 00 00 5e 27 00 00 52 27 00 00 46 27 00 00 3e 27 00 00 .'...'...'..l'..^'..R'..F'..>'..
9d9c0 3e 28 00 00 30 27 00 00 b6 27 00 00 b8 29 00 00 00 00 00 00 95 01 47 65 74 43 6f 6e 73 6f 6c 65 >(..0'...'...)........GetConsole
9d9e0 4d 6f 64 65 00 00 b7 03 53 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 00 00 3b 02 47 65 74 53 74 64 Mode....SetConsoleMode..;.GetStd
9da00 48 61 6e 64 6c 65 00 00 4b 45 52 4e 45 4c 33 32 2e 64 6c 6c 00 00 16 00 3f 3f 24 3f 36 44 55 3f Handle..KERNEL32.dll....??$?6DU?
9da20 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 74 6f 72 $char_traits@D@std@@V?$allocator
9da40 40 44 40 31 40 40 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 @D@1@@std@@YAAAV?$basic_ostream@
9da60 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 30 40 41 41 56 31 30 40 DU?$char_traits@D@std@@@0@AAV10@
9da80 41 42 56 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 61 72 5f 74 72 61 69 74 ABV?$basic_string@DU?$char_trait
9daa0 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 40 30 40 40 5a 00 s@D@std@@V?$allocator@D@2@@0@@Z.
9dac0 91 06 3f 63 6f 75 74 40 73 74 64 40 40 33 56 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 61 6d 40 44 ..?cout@std@@3V?$basic_ostream@D
9dae0 55 3f 24 63 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 31 40 41 00 00 4a 06 3f 63 U?$char_traits@D@std@@@1@A..J.?c
9db00 69 6e 40 73 74 64 40 40 33 56 3f 24 62 61 73 69 63 5f 69 73 74 72 65 61 6d 40 44 55 3f 24 63 68 in@std@@3V?$basic_istream@DU?$ch
9db20 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 31 40 41 00 c2 00 3f 3f 24 67 65 74 6c 69 ar_traits@D@std@@@1@A...??$getli
9db40 6e 65 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 ne@DU?$char_traits@D@std@@V?$all
9db60 6f 63 61 74 6f 72 40 44 40 32 40 40 73 74 64 40 40 59 41 41 41 56 3f 24 62 61 73 69 63 5f 69 73 ocator@D@2@@std@@YAAAV?$basic_is
9db80 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 30 40 tream@DU?$char_traits@D@std@@@0@
9dba0 41 41 56 31 30 40 41 41 56 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 61 72 AAV10@AAV?$basic_string@DU?$char
9dbc0 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@
9dbe0 40 30 40 40 5a 00 1d 03 3f 3f 36 3f 24 62 61 73 69 63 5f 6f 73 74 72 65 61 6d 40 44 55 3f 24 63 @0@@Z...??6?$basic_ostream@DU?$c
9dc00 68 61 72 5f 74 72 61 69 74 73 40 44 40 73 74 64 40 40 40 73 74 64 40 40 51 41 45 41 41 56 30 31 har_traits@D@std@@@std@@QAEAAV01
9dc20 40 50 36 41 41 41 56 30 31 40 41 41 56 30 31 40 40 5a 40 5a 00 00 5f 02 3f 3f 31 3f 24 62 61 73 @P6AAAV01@AAV01@@Z@Z.._.??1?$bas
9dc40 69 63 5f 73 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 ic_string@DU?$char_traits@D@std@
9dc60 40 56 3f 24 61 6c 6c 6f 63 61 74 6f 72 40 44 40 32 40 40 73 74 64 40 40 51 41 45 40 58 5a 00 00 @V?$allocator@D@2@@std@@QAE@XZ..
9dc80 7b 01 3f 3f 30 3f 24 62 61 73 69 63 5f 73 74 72 69 6e 67 40 44 55 3f 24 63 68 61 72 5f 74 72 61 {.??0?$basic_string@DU?$char_tra
9dca0 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 40 73 74 64 its@D@std@@V?$allocator@D@2@@std
9dcc0 40 40 51 41 45 40 58 5a 00 00 b3 07 3f 65 6e 64 6c 40 73 74 64 40 40 59 41 41 41 56 3f 24 62 61 @@QAE@XZ....?endl@std@@YAAAV?$ba
9dce0 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 74 sic_ostream@DU?$char_traits@D@st
9dd00 64 40 40 40 31 40 41 41 56 32 31 40 40 5a 00 00 4d 53 56 43 50 39 30 2e 64 6c 6c 00 15 01 5f 61 d@@@1@AAV21@@Z..MSVCP90.dll..._a
9dd20 6d 73 67 5f 65 78 69 74 00 00 9f 00 5f 5f 67 65 74 6d 61 69 6e 61 72 67 73 00 2c 01 5f 63 65 78 msg_exit....__getmainargs.,._cex
9dd40 69 74 00 00 7c 01 5f 65 78 69 74 00 66 00 5f 58 63 70 74 46 69 6c 74 65 72 00 cc 04 65 78 69 74 it..|._exit.f._XcptFilter...exit
9dd60 00 00 a0 00 5f 5f 69 6e 69 74 65 6e 76 00 04 02 5f 69 6e 69 74 74 65 72 6d 00 05 02 5f 69 6e 69 ....__initenv..._initterm..._ini
9dd80 74 74 65 72 6d 5f 65 00 3c 01 5f 63 6f 6e 66 69 67 74 68 72 65 61 64 6c 6f 63 61 6c 65 00 e3 00 tterm_e.<._configthreadlocale...
9dda0 5f 5f 73 65 74 75 73 65 72 6d 61 74 68 65 72 72 00 00 0b 01 5f 61 64 6a 75 73 74 5f 66 64 69 76 __setusermatherr...._adjust_fdiv
9ddc0 00 00 cb 00 5f 5f 70 5f 5f 63 6f 6d 6d 6f 64 65 00 00 cf 00 5f 5f 70 5f 5f 66 6d 6f 64 65 00 00 ....__p__commode....__p__fmode..
9dde0 6a 01 5f 65 6e 63 6f 64 65 5f 70 6f 69 6e 74 65 72 00 e0 00 5f 5f 73 65 74 5f 61 70 70 5f 74 79 j._encode_pointer...__set_app_ty
9de00 70 65 00 00 4b 01 5f 63 72 74 5f 64 65 62 75 67 67 65 72 5f 68 6f 6f 6b 00 00 43 00 3f 74 65 72 pe..K._crt_debugger_hook..C.?ter
9de20 6d 69 6e 61 74 65 40 40 59 41 58 58 5a 00 4d 53 56 43 52 39 30 2e 64 6c 6c 00 e6 03 5f 75 6e 6c minate@@YAXXZ.MSVCR90.dll..._unl
9de40 6f 63 6b 00 96 00 5f 5f 64 6c 6c 6f 6e 65 78 69 74 00 76 02 5f 6c 6f 63 6b 00 1c 03 5f 6f 6e 65 ock...__dllonexit.v._lock..._one
9de60 78 69 74 00 60 01 5f 64 65 63 6f 64 65 5f 70 6f 69 6e 74 65 72 00 73 01 5f 65 78 63 65 70 74 5f xit.`._decode_pointer.s._except_
9de80 68 61 6e 64 6c 65 72 34 5f 63 6f 6d 6d 6f 6e 00 0b 02 5f 69 6e 76 6f 6b 65 5f 77 61 74 73 6f 6e handler4_common..._invoke_watson
9dea0 00 00 3f 01 5f 63 6f 6e 74 72 6f 6c 66 70 5f 73 00 00 bd 02 49 6e 74 65 72 6c 6f 63 6b 65 64 45 ..?._controlfp_s....InterlockedE
9dec0 78 63 68 61 6e 67 65 00 21 04 53 6c 65 65 70 00 ba 02 49 6e 74 65 72 6c 6f 63 6b 65 64 43 6f 6d xchange.!.Sleep...InterlockedCom
9dee0 70 61 72 65 45 78 63 68 61 6e 67 65 00 00 2d 04 54 65 72 6d 69 6e 61 74 65 50 72 6f 63 65 73 73 pareExchange..-.TerminateProcess
9df00 00 00 a9 01 47 65 74 43 75 72 72 65 6e 74 50 72 6f 63 65 73 73 00 3e 04 55 6e 68 61 6e 64 6c 65 ....GetCurrentProcess.>.Unhandle
9df20 64 45 78 63 65 70 74 69 6f 6e 46 69 6c 74 65 72 00 00 15 04 53 65 74 55 6e 68 61 6e 64 6c 65 64 dExceptionFilter....SetUnhandled
9df40 45 78 63 65 70 74 69 6f 6e 46 69 6c 74 65 72 00 d1 02 49 73 44 65 62 75 67 67 65 72 50 72 65 73 ExceptionFilter...IsDebuggerPres
9df60 65 6e 74 00 54 03 51 75 65 72 79 50 65 72 66 6f 72 6d 61 6e 63 65 43 6f 75 6e 74 65 72 00 66 02 ent.T.QueryPerformanceCounter.f.
9df80 47 65 74 54 69 63 6b 43 6f 75 6e 74 00 00 ad 01 47 65 74 43 75 72 72 65 6e 74 54 68 72 65 61 64 GetTickCount....GetCurrentThread
9dfa0 49 64 00 00 aa 01 47 65 74 43 75 72 72 65 6e 74 50 72 6f 63 65 73 73 49 64 00 4f 02 47 65 74 53 Id....GetCurrentProcessId.O.GetS
9dfc0 79 73 74 65 6d 54 69 6d 65 41 73 46 69 6c 65 54 69 6d 65 00 73 00 5f 5f 43 78 78 46 72 61 6d 65 ystemTimeAsFileTime.s.__CxxFrame
9dfe0 48 61 6e 64 6c 65 72 33 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 Handler3........................
9e000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 4e e6 40 bb ............................N.@.
9e020 b1 19 bf 44 ff ff ff ff ff ff ff ff fe ff ff ff 01 00 00 00 24 21 40 00 00 00 00 00 00 00 00 00 ...D................$!@.........
9e040 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e060 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e080 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e0a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e0c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e0e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e100 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e120 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e140 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e160 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e180 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e1a0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e1c0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e1e0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e200 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9e220 00 00 00 00 04 00 00 00 00 00 02 00 10 00 00 00 20 00 00 80 18 00 00 00 38 00 00 80 00 00 00 00 ........................8.......
9e240 00 00 00 00 04 00 00 00 00 00 01 00 01 00 00 00 50 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 ................P...............
9e260 00 00 01 00 01 00 00 00 68 00 00 80 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 09 04 00 00 ........h.......................
9e280 80 00 00 00 00 00 00 00 00 00 00 00 04 00 00 00 00 00 01 00 09 04 00 00 90 00 00 00 a0 40 00 00 .............................@..
9e2a0 28 03 00 00 e4 04 00 00 00 00 00 00 c8 43 00 00 56 02 00 00 e4 04 00 00 00 00 00 00 28 03 34 00 (............C..V...........(.4.
9e2c0 00 00 56 00 53 00 5f 00 56 00 45 00 52 00 53 00 49 00 4f 00 4e 00 5f 00 49 00 4e 00 46 00 4f 00 ..V.S._.V.E.R.S.I.O.N._.I.N.F.O.
9e2e0 00 00 00 00 bd 04 ef fe 00 00 01 00 00 00 01 00 00 00 00 00 00 00 01 00 00 00 00 00 17 00 00 00 ................................
9e300 00 00 00 00 04 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 86 02 00 00 01 00 53 00 ..............................S.
9e320 74 00 72 00 69 00 6e 00 67 00 46 00 69 00 6c 00 65 00 49 00 6e 00 66 00 6f 00 00 00 62 02 00 00 t.r.i.n.g.F.i.l.e.I.n.f.o...b...
9e340 01 00 30 00 34 00 30 00 39 00 30 00 34 00 62 00 30 00 00 00 ca 00 51 00 01 00 46 00 69 00 6c 00 ..0.4.0.9.0.4.b.0.....Q...F.i.l.
9e360 65 00 44 00 65 00 73 00 63 00 72 00 69 00 70 00 74 00 69 00 6f 00 6e 00 00 00 00 00 52 00 65 00 e.D.e.s.c.r.i.p.t.i.o.n.....R.e.
9e380 61 00 64 00 73 00 20 00 66 00 72 00 6f 00 6d 00 20 00 73 00 74 00 64 00 69 00 6e 00 20 00 77 00 a.d.s...f.r.o.m...s.t.d.i.n...w.
9e3a0 69 00 74 00 68 00 6f 00 75 00 74 00 20 00 6c 00 65 00 61 00 6b 00 69 00 6e 00 67 00 20 00 69 00 i.t.h.o.u.t...l.e.a.k.i.n.g...i.
9e3c0 6e 00 66 00 6f 00 20 00 74 00 6f 00 20 00 74 00 68 00 65 00 20 00 74 00 65 00 72 00 6d 00 69 00 n.f.o...t.o...t.h.e...t.e.r.m.i.
9e3e0 6e 00 61 00 6c 00 20 00 61 00 6e 00 64 00 20 00 6f 00 75 00 74 00 70 00 75 00 74 00 73 00 20 00 n.a.l...a.n.d...o.u.t.p.u.t.s...
9e400 62 00 61 00 63 00 6b 00 20 00 74 00 6f 00 20 00 73 00 74 00 64 00 6f 00 75 00 74 00 00 00 00 00 b.a.c.k...t.o...s.t.d.o.u.t.....
9e420 36 00 0b 00 01 00 46 00 69 00 6c 00 65 00 56 00 65 00 72 00 73 00 69 00 6f 00 6e 00 00 00 00 00 6.....F.i.l.e.V.e.r.s.i.o.n.....
9e440 31 00 2c 00 20 00 30 00 2c 00 20 00 30 00 2c 00 20 00 30 00 00 00 00 00 38 00 0c 00 01 00 49 00 1.,...0.,...0.,...0.....8.....I.
9e460 6e 00 74 00 65 00 72 00 6e 00 61 00 6c 00 4e 00 61 00 6d 00 65 00 00 00 68 00 69 00 64 00 64 00 n.t.e.r.n.a.l.N.a.m.e...h.i.d.d.
9e480 65 00 6e 00 69 00 6e 00 70 00 75 00 74 00 00 00 50 00 16 00 01 00 4c 00 65 00 67 00 61 00 6c 00 e.n.i.n.p.u.t...P.....L.e.g.a.l.
9e4a0 43 00 6f 00 70 00 79 00 72 00 69 00 67 00 68 00 74 00 00 00 4a 00 6f 00 72 00 64 00 69 00 20 00 C.o.p.y.r.i.g.h.t...J.o.r.d.i...
9e4c0 42 00 6f 00 67 00 67 00 69 00 61 00 6e 00 6f 00 20 00 2d 00 20 00 32 00 30 00 31 00 32 00 00 00 B.o.g.g.i.a.n.o...-...2.0.1.2...
9e4e0 48 00 10 00 01 00 4f 00 72 00 69 00 67 00 69 00 6e 00 61 00 6c 00 46 00 69 00 6c 00 65 00 6e 00 H.....O.r.i.g.i.n.a.l.F.i.l.e.n.
9e500 61 00 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 2e 00 a.m.e...h.i.d.d.e.n.i.n.p.u.t...
9e520 65 00 78 00 65 00 00 00 3a 00 0d 00 01 00 50 00 72 00 6f 00 64 00 75 00 63 00 74 00 4e 00 61 00 e.x.e...:.....P.r.o.d.u.c.t.N.a.
9e540 6d 00 65 00 00 00 00 00 48 00 69 00 64 00 64 00 65 00 6e 00 20 00 49 00 6e 00 70 00 75 00 74 00 m.e.....H.i.d.d.e.n...I.n.p.u.t.
9e560 00 00 00 00 3a 00 0b 00 01 00 50 00 72 00 6f 00 64 00 75 00 63 00 74 00 56 00 65 00 72 00 73 00 ....:.....P.r.o.d.u.c.t.V.e.r.s.
9e580 69 00 6f 00 6e 00 00 00 31 00 2c 00 20 00 30 00 2c 00 20 00 30 00 2c 00 20 00 30 00 00 00 00 00 i.o.n...1.,...0.,...0.,...0.....
9e5a0 44 00 00 00 01 00 56 00 61 00 72 00 46 00 69 00 6c 00 65 00 49 00 6e 00 66 00 6f 00 00 00 00 00 D.....V.a.r.F.i.l.e.I.n.f.o.....
9e5c0 24 00 04 00 00 00 54 00 72 00 61 00 6e 00 73 00 6c 00 61 00 74 00 69 00 6f 00 6e 00 00 00 00 00 $.....T.r.a.n.s.l.a.t.i.o.n.....
9e5e0 09 04 b0 04 3c 61 73 73 65 6d 62 6c 79 20 78 6d 6c 6e 73 3d 22 75 72 6e 3a 73 63 68 65 6d 61 73 ....<assembly.xmlns="urn:schemas
9e600 2d 6d 69 63 72 6f 73 6f 66 74 2d 63 6f 6d 3a 61 73 6d 2e 76 31 22 20 6d 61 6e 69 66 65 73 74 56 -microsoft-com:asm.v1".manifestV
9e620 65 72 73 69 6f 6e 3d 22 31 2e 30 22 3e 0d 0a 20 20 3c 74 72 75 73 74 49 6e 66 6f 20 78 6d 6c 6e ersion="1.0">....<trustInfo.xmln
9e640 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
9e660 2e 76 33 22 3e 0d 0a 20 20 20 20 3c 73 65 63 75 72 69 74 79 3e 0d 0a 20 20 20 20 20 20 3c 72 65 .v3">......<security>........<re
9e680 71 75 65 73 74 65 64 50 72 69 76 69 6c 65 67 65 73 3e 0d 0a 20 20 20 20 20 20 20 20 3c 72 65 71 questedPrivileges>..........<req
9e6a0 75 65 73 74 65 64 45 78 65 63 75 74 69 6f 6e 4c 65 76 65 6c 20 6c 65 76 65 6c 3d 22 61 73 49 6e uestedExecutionLevel.level="asIn
9e6c0 76 6f 6b 65 72 22 20 75 69 41 63 63 65 73 73 3d 22 66 61 6c 73 65 22 3e 3c 2f 72 65 71 75 65 73 voker".uiAccess="false"></reques
9e6e0 74 65 64 45 78 65 63 75 74 69 6f 6e 4c 65 76 65 6c 3e 0d 0a 20 20 20 20 20 20 3c 2f 72 65 71 75 tedExecutionLevel>........</requ
9e700 65 73 74 65 64 50 72 69 76 69 6c 65 67 65 73 3e 0d 0a 20 20 20 20 3c 2f 73 65 63 75 72 69 74 79 estedPrivileges>......</security
9e720 3e 0d 0a 20 20 3c 2f 74 72 75 73 74 49 6e 66 6f 3e 0d 0a 20 20 3c 64 65 70 65 6e 64 65 6e 63 79 >....</trustInfo>....<dependency
9e740 3e 0d 0a 20 20 20 20 3c 64 65 70 65 6e 64 65 6e 74 41 73 73 65 6d 62 6c 79 3e 0d 0a 20 20 20 20 >......<dependentAssembly>......
9e760 20 20 3c 61 73 73 65 6d 62 6c 79 49 64 65 6e 74 69 74 79 20 74 79 70 65 3d 22 77 69 6e 33 32 22 ..<assemblyIdentity.type="win32"
9e780 20 6e 61 6d 65 3d 22 4d 69 63 72 6f 73 6f 66 74 2e 56 43 39 30 2e 43 52 54 22 20 76 65 72 73 69 .name="Microsoft.VC90.CRT".versi
9e7a0 6f 6e 3d 22 39 2e 30 2e 32 31 30 32 32 2e 38 22 20 70 72 6f 63 65 73 73 6f 72 41 72 63 68 69 74 on="9.0.21022.8".processorArchit
9e7c0 65 63 74 75 72 65 3d 22 78 38 36 22 20 70 75 62 6c 69 63 4b 65 79 54 6f 6b 65 6e 3d 22 31 66 63 ecture="x86".publicKeyToken="1fc
9e7e0 38 62 33 62 39 61 31 65 31 38 65 33 62 22 3e 3c 2f 61 73 73 65 6d 62 6c 79 49 64 65 6e 74 69 74 8b3b9a1e18e3b"></assemblyIdentit
9e800 79 3e 0d 0a 20 20 20 20 3c 2f 64 65 70 65 6e 64 65 6e 74 41 73 73 65 6d 62 6c 79 3e 0d 0a 20 20 y>......</dependentAssembly>....
9e820 3c 2f 64 65 70 65 6e 64 65 6e 63 79 3e 0d 0a 3c 2f 61 73 73 65 6d 62 6c 79 3e 50 41 50 41 44 44 </dependency>..</assembly>PAPADD
9e840 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e860 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e880 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e8a0 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e8c0 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e8e0 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e900 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e920 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e940 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e960 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e980 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e9a0 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e9c0 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9e9e0 49 4e 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 INGXXPADDINGPADDINGXXPADDINGPADD
9ea00 49 4e 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 00 10 00 00 INGXXPADDINGPADDINGXXPADDING....
9ea20 40 01 00 00 03 30 10 30 21 30 2f 30 38 30 46 30 4c 30 54 30 5e 30 64 30 6e 30 7b 30 89 30 97 30 @....0.0!0/080F0L0T0^0d0n0{0.0.0
9ea40 a1 30 a8 30 ae 30 b3 30 b8 30 bd 30 c2 30 c8 30 d0 30 e4 30 ff 30 08 31 23 31 2d 31 40 31 4a 31 .0.0.0.0.0.0.0.0.0.0.0.1#1-1@1J1
9ea60 4f 31 54 31 76 31 7b 31 84 31 89 31 96 31 a7 31 ad 31 b4 31 c8 31 cd 31 d3 31 db 31 e1 31 e7 31 O1T1v1{1.1.1.1.1.1.1.1.1.1.1.1.1
9ea80 f4 31 fa 31 03 32 22 32 2a 32 33 32 39 32 41 32 4d 32 5f 32 6a 32 70 32 b9 32 bf 32 c7 32 ce 32 .1.1.2"2*23292A2M2_2j2p2.2.2.2.2
9eaa0 d3 32 d9 32 df 32 e7 32 ed 32 f4 32 fb 32 0b 33 13 33 19 33 25 33 30 33 4e 33 54 33 5a 33 60 33 .2.2.2.2.2.2.2.3.3.3%303N3T3Z3`3
9eac0 66 33 6c 33 73 33 7a 33 81 33 88 33 8f 33 96 33 9d 33 a5 33 ad 33 b5 33 c1 33 ca 33 cf 33 d5 33 f3l3s3z3.3.3.3.3.3.3.3.3.3.3.3.3
9eae0 df 33 e8 33 f3 33 ff 33 04 34 14 34 19 34 1f 34 25 34 3b 34 42 34 8b 34 91 34 9a 34 a1 34 ac 34 .3.3.3.3.4.4.4.4%4;4B4.4.4.4.4.4
9eb00 b2 34 c6 34 db 34 e6 34 fe 34 14 35 21 35 5e 35 63 35 84 35 89 35 a8 35 48 36 4d 36 5f 36 7d 36 .4.4.4.4.4.5!5^5c5.5.5.5H6M6_6}6
9eb20 91 36 97 36 00 37 06 37 0d 37 2a 37 77 37 7c 37 c1 37 e4 37 f1 37 fd 37 05 38 0d 38 19 38 3d 38 .6.6.7.7.7*7w7|7.7.7.7.7.8.8.8=8
9eb40 45 38 50 38 56 38 5c 38 62 38 68 38 6e 38 74 38 7a 38 80 38 9c 38 e2 38 02 39 00 00 00 20 00 00 E8P8V8\8b8h8n8t8z8.8.8.8.9......
9eb60 24 00 00 00 dc 30 e8 30 ec 30 1c 31 20 31 74 31 78 31 1c 32 20 32 40 32 5c 32 60 32 68 32 74 32 $....0.0.0.1.1t1x1.2.2@2\2`2h2t2
9eb80 00 30 00 00 0c 00 00 00 18 30 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 .0.......0......................
9eba0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ebc0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ebe0 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................................
9ec00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 3c 3f 70 68 ............................<?ph
9ec20 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
9ec40 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f mponent\Process;..use.Symfony\Co
9ec60 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 52 75 6e 74 69 6d mponent\Process\Exception\Runtim
9ec80 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 eException;.............class.Ph
9eca0 70 50 72 6f 63 65 73 73 20 65 78 74 65 6e 64 73 20 50 72 6f 63 65 73 73 0a 7b 0a 70 72 69 76 61 pProcess.extends.Process.{.priva
9ecc0 74 65 20 24 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a te.$executableFinder;...........
9ece0 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 73 ..public.function.__construct($s
9ed00 63 72 69 70 74 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 cript,.$cwd.=.null,.array.$env.=
9ed20 20 61 72 72 61 79 28 29 2c 20 24 74 69 6d 65 6f 75 74 20 3d 20 36 30 2c 20 61 72 72 61 79 20 24 .array(),.$timeout.=.60,.array.$
9ed40 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 options.=.array()).{.parent::__c
9ed60 6f 6e 73 74 72 75 63 74 28 6e 75 6c 6c 2c 20 24 63 77 64 2c 20 24 65 6e 76 2c 20 24 73 63 72 69 onstruct(null,.$cwd,.$env,.$scri
9ed80 70 74 2c 20 24 74 69 6d 65 6f 75 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 24 74 68 69 73 2d pt,.$timeout,.$options);..$this-
9eda0 3e 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 20 3d 20 6e 65 77 20 50 68 70 45 78 65 63 75 >executableFinder.=.new.PhpExecu
9edc0 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 63 20 66 75 tableFinder();.}.......public.fu
9ede0 6e 63 74 69 6f 6e 20 73 65 74 50 68 70 42 69 6e 61 72 79 28 24 70 68 70 29 0a 7b 0a 24 74 68 69 nction.setPhpBinary($php).{.$thi
9ee00 73 2d 3e 73 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 24 70 68 70 29 3b 0a 7d 0a 0a 0a 0a 0a 70 s->setCommandLine($php);.}.....p
9ee20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d ublic.function.start($callback.=
9ee40 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 .null).{.if.(null.===.$this->get
9ee60 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 CommandLine()).{.if.(false.===.$
9ee80 70 68 70 20 3d 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 66 php.=.$this->executableFinder->f
9eea0 69 6e 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 ind()).{.throw.new.RuntimeExcept
9eec0 69 6f 6e 28 27 55 6e 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 ion('Unable.to.find.the.PHP.exec
9eee0 75 74 61 62 6c 65 2e 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 utable.');.}.$this->setCommandLi
9ef00 6e 65 28 24 70 68 70 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 73 74 61 72 74 28 24 63 61 6c 6c ne($php);.}..parent::start($call
9ef20 62 61 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 back);.}.}.<?php...........names
9ef40 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a pace.Symfony\Component\Process;.
9ef60 0a 0a 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 .......class.ExecutableFinder.{.
9ef80 70 72 69 76 61 74 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 private.$suffixes.=.array('.exe'
9efa0 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 3b 0a 0a 0a 0a 0a 0a ,.'.bat',.'.cmd',.'.com');......
9efc0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 75 66 66 69 78 65 73 28 61 72 72 .public.function.setSuffixes(arr
9efe0 61 79 20 24 73 75 66 66 69 78 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 20 ay.$suffixes).{.$this->suffixes.
9f000 3d 20 24 73 75 66 66 69 78 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 =.$suffixes;.}.......public.func
9f020 74 69 6f 6e 20 61 64 64 53 75 66 66 69 78 28 24 73 75 66 66 69 78 29 0a 7b 0a 24 74 68 69 73 2d tion.addSuffix($suffix).{.$this-
9f040 3e 73 75 66 66 69 78 65 73 5b 5d 20 3d 20 24 73 75 66 66 69 78 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a >suffixes[].=.$suffix;.}........
9f060 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 28 24 6e 61 6d 65 2c 20 24 ...public.function.find($name,.$
9f080 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 65 78 74 72 61 44 69 72 73 default.=.null,.array.$extraDirs
9f0a0 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 69 6e 69 5f 67 65 74 28 27 6f 70 65 6e 5f .=.array()).{.if.(ini_get('open_
9f0c0 62 61 73 65 64 69 72 27 29 29 20 7b 0a 24 73 65 61 72 63 68 50 61 74 68 20 3d 20 65 78 70 6c 6f basedir')).{.$searchPath.=.explo
9f0e0 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 67 65 74 65 6e 76 28 27 6f 70 65 6e 5f de(PATH_SEPARATOR,.getenv('open_
9f100 62 61 73 65 64 69 72 27 29 29 3b 0a 24 64 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 basedir'));.$dirs.=.array();.for
9f120 65 61 63 68 20 28 24 73 65 61 72 63 68 50 61 74 68 20 61 73 20 24 70 61 74 68 29 20 7b 0a 69 66 each.($searchPath.as.$path).{.if
9f140 20 28 69 73 5f 64 69 72 28 24 70 61 74 68 29 29 20 7b 0a 24 64 69 72 73 5b 5d 20 3d 20 24 70 61 .(is_dir($path)).{.$dirs[].=.$pa
9f160 74 68 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 66 69 6c 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 th;.}.else.{.$file.=.str_replace
9f180 28 64 69 72 6e 61 6d 65 28 24 70 61 74 68 29 2c 20 27 27 2c 20 24 70 61 74 68 29 3b 0a 69 66 20 (dirname($path),.'',.$path);.if.
9f1a0 28 24 66 69 6c 65 20 3d 3d 20 24 6e 61 6d 65 20 26 26 20 69 73 5f 65 78 65 63 75 74 61 62 6c 65 ($file.==.$name.&&.is_executable
9f1c0 28 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 70 61 74 68 3b 0a 7d 0a 7d 0a 7d 0a 7d ($path)).{.return.$path;.}.}.}.}
9f1e0 20 65 6c 73 65 20 7b 0a 24 64 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a 65 78 70 .else.{.$dirs.=.array_merge(.exp
9f200 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 67 65 74 65 6e 76 28 27 50 41 54 lode(PATH_SEPARATOR,.getenv('PAT
9f220 48 27 29 20 3f 3a 20 67 65 74 65 6e 76 28 27 50 61 74 68 27 29 29 2c 0a 24 65 78 74 72 61 44 69 H').?:.getenv('Path')),.$extraDi
9f240 72 73 0a 29 3b 0a 7d 0a 0a 24 73 75 66 66 69 78 65 73 20 3d 20 61 72 72 61 79 28 27 27 29 3b 0a rs.);.}..$suffixes.=.array('');.
9f260 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e if.(defined('PHP_WINDOWS_VERSION
9f280 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 70 61 74 68 45 78 74 20 3d 20 67 65 74 65 6e 76 28 27 50 _BUILD')).{.$pathExt.=.getenv('P
9f2a0 41 54 48 45 58 54 27 29 3b 0a 24 73 75 66 66 69 78 65 73 20 3d 20 24 70 61 74 68 45 78 74 20 3f ATHEXT');.$suffixes.=.$pathExt.?
9f2c0 20 65 78 70 6c 6f 64 65 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 24 70 61 74 68 45 78 .explode(PATH_SEPARATOR,.$pathEx
9f2e0 74 29 20 3a 20 24 74 68 69 73 2d 3e 73 75 66 66 69 78 65 73 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 t).:.$this->suffixes;.}.foreach.
9f300 28 24 73 75 66 66 69 78 65 73 20 61 73 20 24 73 75 66 66 69 78 29 20 7b 0a 66 6f 72 65 61 63 68 ($suffixes.as.$suffix).{.foreach
9f320 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 69 73 5f 66 69 6c 65 28 24 .($dirs.as.$dir).{.if.(is_file($
9f340 66 69 6c 65 20 3d 20 24 64 69 72 2e 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 2e file.=.$dir.DIRECTORY_SEPARATOR.
9f360 24 6e 61 6d 65 2e 24 73 75 66 66 69 78 29 20 26 26 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f $name.$suffix).&&.(defined('PHP_
9f380 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 7c 7c 20 69 73 5f 65 78 WINDOWS_VERSION_BUILD').||.is_ex
9f3a0 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 20 24 66 69 6c 65 ecutable($file))).{.return.$file
9f3c0 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 7d 0a 7d 0a 3c 3f ;.}.}.}..return.$default;.}.}.<?
9f3e0 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\
9f400 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c Component\Process;..use.Symfony\
9f420 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 49 6e 76 61 Component\Process\Exception\Inva
9f440 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e lidArgumentException;.use.Symfon
9f460 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 4c 6f y\Component\Process\Exception\Lo
9f480 67 69 63 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e gicException;.use.Symfony\Compon
9f4a0 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 50 72 6f 63 65 73 73 54 69 6d ent\Process\Exception\ProcessTim
9f4c0 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 edOutException;.use.Symfony\Comp
9f4e0 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 52 75 6e 74 69 6d 65 45 onent\Process\Exception\RuntimeE
9f500 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 xception;..........class.Process
9f520 0a 7b 0a 63 6f 6e 73 74 20 45 52 52 20 3d 20 27 65 72 72 27 3b 0a 63 6f 6e 73 74 20 4f 55 54 20 .{.const.ERR.=.'err';.const.OUT.
9f540 3d 20 27 6f 75 74 27 3b 0a 0a 63 6f 6e 73 74 20 53 54 41 54 55 53 5f 52 45 41 44 59 20 3d 20 27 =.'out';..const.STATUS_READY.=.'
9f560 72 65 61 64 79 27 3b 0a 63 6f 6e 73 74 20 53 54 41 54 55 53 5f 53 54 41 52 54 45 44 20 3d 20 27 ready';.const.STATUS_STARTED.=.'
9f580 73 74 61 72 74 65 64 27 3b 0a 63 6f 6e 73 74 20 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 started';.const.STATUS_TERMINATE
9f5a0 44 20 3d 20 27 74 65 72 6d 69 6e 61 74 65 64 27 3b 0a 0a 63 6f 6e 73 74 20 53 54 44 49 4e 20 3d D.=.'terminated';..const.STDIN.=
9f5c0 20 30 3b 0a 63 6f 6e 73 74 20 53 54 44 4f 55 54 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 53 54 44 45 .0;.const.STDOUT.=.1;.const.STDE
9f5e0 52 52 20 3d 20 32 3b 0a 0a 0a 20 63 6f 6e 73 74 20 54 49 4d 45 4f 55 54 5f 50 52 45 43 49 53 49 RR.=.2;....const.TIMEOUT_PRECISI
9f600 4f 4e 20 3d 20 30 2e 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 61 6c 6c 62 61 63 6b 3b 0a 70 72 ON.=.0.2;..private.$callback;.pr
9f620 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 63 77 64 ivate.$commandline;.private.$cwd
9f640 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 69 6e 3b 0a ;.private.$env;.private.$stdin;.
9f660 70 72 69 76 61 74 65 20 24 73 74 61 72 74 74 69 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 6c 61 73 private.$starttime;.private.$las
9f680 74 4f 75 74 70 75 74 54 69 6d 65 3b 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 3b 0a 70 tOutputTime;.private.$timeout;.p
9f6a0 72 69 76 61 74 65 20 24 69 64 6c 65 54 69 6d 65 6f 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f 70 rivate.$idleTimeout;.private.$op
9f6c0 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 65 78 69 74 63 6f 64 65 3b 0a 70 72 69 76 61 74 tions;.private.$exitcode;.privat
9f6e0 65 20 24 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 e.$fallbackExitcode;.private.$pr
9f700 6f 63 65 73 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 ocessInformation;.private.$stdou
9f720 74 3b 0a 70 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 t;.private.$stderr;.private.$enh
9f740 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 70 72 69 76 61 74 anceWindowsCompatibility;.privat
9f760 65 20 24 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 3b e.$enhanceSigchildCompatibility;
9f780 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 24 73 74 61 74 .private.$process;.private.$stat
9f7a0 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 70 72 69 76 61 74 65 us.=.self::STATUS_READY;.private
9f7c0 20 24 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 3b 0a 70 72 69 76 61 .$incrementalOutputOffset;.priva
9f7e0 74 65 20 24 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 4f 66 66 73 65 74 te.$incrementalErrorOutputOffset
9f800 3b 0a 70 72 69 76 61 74 65 20 24 74 74 79 3b 0a 0a 70 72 69 76 61 74 65 20 24 75 73 65 46 69 6c ;.private.$tty;..private.$useFil
9f820 65 48 61 6e 64 6c 65 73 20 3d 20 66 61 6c 73 65 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 eHandles.=.false;..private.$proc
9f840 65 73 73 50 69 70 65 73 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 73 69 67 63 68 essPipes;..private.static.$sigch
9f860 69 6c 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 24 65 78 69 74 ild;.........public.static.$exit
9f880 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 3d 3e 20 27 Codes.=.array(.0.=>.'OK',.1.=>.'
9f8a0 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 20 6f 66 20 General.error',.2.=>.'Misuse.of.
9f8c0 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 76 6f 6b 65 shell.builtins',..126.=>.'Invoke
9f8e0 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 32 37 20 3d d.command.cannot.execute',.127.=
9f900 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 3e 20 27 49 >.'Command.not.found',.128.=>.'I
9f920 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 39 20 3d 3e nvalid.exit.argument',....129.=>
9f940 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 27 2c 0a 31 .'Hangup',.130.=>.'Interrupt',.1
9f960 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 31 33 32 20 31.=>.'Quit.and.dump.core',.132.
9f980 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 33 20 3d 3e =>.'Illegal.instruction',.133.=>
9f9a0 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 34 20 3d 3e .'Trace/breakpoint.trap',.134.=>
9f9c0 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 42 75 73 20 .'Process.aborted',.135.=>.'Bus.
9f9e0 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 70 6f 72 74 error:."access.to.undefined.port
9fa00 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 3d 3e 20 27 ion.of.memory.object"',.136.=>.'
9fa20 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 72 72 6f 6e Floating.point.exception:."erron
9fa40 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 0a 31 33 37 eous.arithmetic.operation"',.137
9fa60 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 74 65 6c 79 .=>.'Kill.(terminate.immediately
9fa80 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 0a 31 33 39 )',.138.=>.'User-defined.1',.139
9faa0 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 2c 0a 31 34 .=>.'Segmentation.violation',.14
9fac0 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 3e 20 27 57 0.=>.'User-defined.2',.141.=>.'W
9fae0 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 64 69 6e 67 rite.to.pipe.with.no.one.reading
9fb00 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 61 6c 61 72 ',.142.=>.'Signal.raised.by.alar
9fb20 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 75 65 73 74 m',.143.=>.'Termination.(request
9fb40 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 68 69 6c 64 .to.terminate)',...145.=>.'Child
9fb60 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 20 28 6f 72 .process.terminated,.stopped.(or
9fb80 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 6e 75 65 20 .continued*)',.146.=>.'Continue.
9fba0 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 65 63 75 74 if.stopped',.147.=>.'Stop.execut
9fbc0 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 72 6d 69 6e ing.temporarily',.148.=>.'Termin
9fbe0 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 6b 67 72 6f al.stop.signal',.149.=>.'Backgro
9fc00 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 61 64 20 66 und.process.attempting.to.read.f
9fc20 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 6b 67 72 6f rom.tty.("in")',.150.=>.'Backgro
9fc40 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 69 74 65 20 und.process.attempting.to.write.
9fc60 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 65 6e 74 20 to.tty.("out")',.151.=>.'Urgent.
9fc80 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 35 32 20 3d data.available.on.socket',.152.=
9fca0 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 0a 31 35 33 >.'CPU.time.limit.exceeded',.153
9fcc0 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 64 27 2c 0a .=>.'File.size.limit.exceeded',.
9fce0 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 65 72 20 63 154.=>.'Signal.raised.by.timer.c
9fd00 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 61 6c 20 74 ounting.virtual.time:."virtual.t
9fd20 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 69 6c 69 6e imer.expired"',.155.=>.'Profilin
9fd40 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 50 6f 6c 6c g.timer.expired',...157.=>.'Poll
9fd60 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 79 73 63 61 able.event',...159.=>.'Bad.sysca
9fd80 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 63 20 66 75 ll',.);................public.fu
9fda0 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 69 6e 65 2c nction.__construct($commandline,
9fdc0 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 75 6c 6c 2c .$cwd.=.null,.array.$env.=.null,
9fde0 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 30 2c 20 61 .$stdin.=.null,.$timeout.=.60,.a
9fe00 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 66 20 28 21 rray.$options.=.array()).{.if.(!
9fe20 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 29 20 7b 0a function_exists('proc_open')).{.
9fe40 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 throw.new.RuntimeException('The.
9fe60 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 63 5f 6f 70 65 Process.class.relies.on.proc_ope
9fe80 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 6e 20 79 6f 75 n,.which.is.not.available.on.you
9fea0 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 74 68 69 73 2d r.PHP.installation.');.}..$this-
9fec0 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 24 74 68 >commandline.=.$commandline;.$th
9fee0 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 64 3b 0a 0a 0a 20 0a 20 0a 20 0a 0a 69 66 20 28 6e 75 6c is->cwd.=.$cwd;..........if.(nul
9ff00 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 77 64 20 26 26 20 28 64 65 66 69 6e 65 64 28 27 5a 45 l.===.$this->cwd.&&.(defined('ZE
9ff20 4e 44 5f 54 48 52 45 41 44 5f 53 41 46 45 27 29 20 7c 7c 20 64 65 66 69 6e 65 64 28 27 50 48 50 ND_THREAD_SAFE').||.defined('PHP
9ff40 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 29 20 7b 0a 24 74 68 _WINDOWS_VERSION_BUILD'))).{.$th
9ff60 69 73 2d 3e 63 77 64 20 3d 20 67 65 74 63 77 64 28 29 3b 0a 7d 0a 69 66 20 28 6e 75 6c 6c 20 21 is->cwd.=.getcwd();.}.if.(null.!
9ff80 3d 3d 20 24 65 6e 76 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 45 6e 76 28 24 65 6e 76 29 3b 0a ==.$env).{.$this->setEnv($env);.
9ffa0 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 24 74 }.else.{.$this->env.=.null;.}.$t
9ffc0 68 69 73 2d 3e 73 74 64 69 6e 20 3d 20 24 73 74 64 69 6e 3b 0a 24 74 68 69 73 2d 3e 73 65 74 54 his->stdin.=.$stdin;.$this->setT
9ffe0 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 3b 0a 24 74 68 69 73 2d 3e 75 73 65 46 69 6c 65 imeout($timeout);.$this->useFile
a0000 48 61 6e 64 6c 65 73 20 3d 20 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 Handles.=.defined('PHP_WINDOWS_V
a0020 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 3b 0a 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 ERSION_BUILD');.$this->enhanceWi
a0040 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 74 72 75 65 3b 0a 24 74 68 69 73 ndowsCompatibility.=.true;.$this
a0060 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d ->enhanceSigchildCompatibility.=
a0080 20 21 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
a00a0 55 49 4c 44 27 29 20 26 26 20 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c UILD').&&.$this->isSigchildEnabl
a00c0 65 64 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 5f 72 65 70 ed();.$this->options.=.array_rep
a00e0 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 3e 20 lace(array('suppress_errors'.=>.
a0100 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 20 24 true,.'binary_pipes'.=>.true),.$
a0120 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 5f 64 options);.}..public.function.__d
a0140 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 0a 0a estruct().{...$this->stop();.}..
a0160 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6c 6f 6e 65 28 29 0a 7b 0a 24 74 68 69 public.function.__clone().{.$thi
a0180 73 2d 3e 72 65 73 65 74 50 72 6f 63 65 73 73 44 61 74 61 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a s->resetProcessData();.}........
a01a0 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 72 75 6e .............public.function.run
a01c0 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 ($callback.=.null).{.$this->star
a01e0 74 28 24 63 61 6c 6c 62 61 63 6b 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 77 61 69 t($callback);..return.$this->wai
a0200 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 t();.}.........................p
a0220 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d ublic.function.start($callback.=
a0240 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 .null).{.if.($this->isRunning())
a0260 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 .{.throw.new.RuntimeException('P
a0280 72 6f 63 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 27 29 3b 0a 7d 0a 0a rocess.is.already.running');.}..
a02a0 24 74 68 69 73 2d 3e 72 65 73 65 74 50 72 6f 63 65 73 73 44 61 74 61 28 29 3b 0a 24 74 68 69 73 $this->resetProcessData();.$this
a02c0 2d 3e 73 74 61 72 74 74 69 6d 65 20 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 4f 75 74 70 75 74 54 ->starttime.=.$this->lastOutputT
a02e0 69 6d 65 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 63 61 ime.=.microtime(true);.$this->ca
a0300 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 63 6b 28 24 63 llback.=.$this->buildCallback($c
a0320 61 6c 6c 62 61 63 6b 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 24 74 68 69 73 2d 3e allback);.$descriptors.=.$this->
a0340 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 getDescriptors();..$commandline.
a0360 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 0a 69 66 20 28 64 65 66 69 6e =.$this->commandline;..if.(defin
a0380 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 ed('PHP_WINDOWS_VERSION_BUILD').
a03a0 26 26 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 57 69 6e 64 6f 77 73 43 6f 6d 70 61 74 69 62 &&.$this->enhanceWindowsCompatib
a03c0 69 6c 69 74 79 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 27 63 6d 64 20 2f 56 3a ility).{.$commandline.=.'cmd./V:
a03e0 4f 4e 20 2f 45 3a 4f 4e 20 2f 43 20 22 27 2e 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 2e 27 22 27 3b ON./E:ON./C."'.$commandline.'"';
a0400 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 62 79 70 61 .if.(!isset($this->options['bypa
a0420 73 73 5f 73 68 65 6c 6c 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 27 62 ss_shell'])).{.$this->options['b
a0440 79 70 61 73 73 5f 73 68 65 6c 6c 27 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 ypass_shell'].=.true;.}.}..$this
a0460 2d 3e 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 24 63 6f 6d 6d 61 6e 64 6c 69 ->process.=.proc_open($commandli
a0480 6e 65 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 2c 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 ne,.$descriptors,.$this->process
a04a0 50 69 70 65 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 Pipes->pipes,.$this->cwd,.$this-
a04c0 3e 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 >env,.$this->options);..if.(!is_
a04e0 72 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 resource($this->process)).{.thro
a0500 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 6e 61 62 6c 65 20 74 w.new.RuntimeException('Unable.t
a0520 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
a0540 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
a0560 44 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 75 6e 62 6c 6f 63 6b D;..$this->processPipes->unblock
a0580 28 29 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 77 72 69 74 65 28 66 ();.$this->processPipes->write(f
a05a0 61 6c 73 65 2c 20 24 74 68 69 73 2d 3e 73 74 64 69 6e 29 3b 0a 24 74 68 69 73 2d 3e 75 70 64 61 alse,.$this->stdin);.$this->upda
a05c0 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 69 6d teStatus(false);.$this->checkTim
a05e0 65 6f 75 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 eout();.}.................public
a0600 20 66 75 6e 63 74 69 6f 6e 20 72 65 73 74 61 72 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 .function.restart($callback.=.nu
a0620 6c 6c 29 0a 7b 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 ll).{.if.($this->isRunning()).{.
a0640 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 50 72 6f 63 throw.new.RuntimeException('Proc
a0660 65 73 73 20 69 73 20 61 6c 72 65 61 64 79 20 72 75 6e 6e 69 6e 67 27 29 3b 0a 7d 0a 0a 24 70 72 ess.is.already.running');.}..$pr
a0680 6f 63 65 73 73 20 3d 20 63 6c 6f 6e 65 20 24 74 68 69 73 3b 0a 24 70 72 6f 63 65 73 73 2d 3e 73 ocess.=.clone.$this;.$process->s
a06a0 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 70 72 6f 63 65 73 tart($callback);..return.$proces
a06c0 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 20 66 75 6e 63 74 s;.}................public.funct
a06e0 69 6f 6e 20 77 61 69 74 28 24 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 ion.wait($callback.=.null).{.$th
a0700 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 6e 75 6c is->updateStatus(false);.if.(nul
a0720 6c 20 21 3d 3d 20 24 63 61 6c 6c 62 61 63 6b 29 20 7b 0a 24 74 68 69 73 2d 3e 63 61 6c 6c 62 61 l.!==.$callback).{.$this->callba
a0740 63 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 ck.=.$this->buildCallback($callb
a0760 61 63 6b 29 3b 0a 7d 0a 0a 64 6f 20 7b 0a 24 74 68 69 73 2d 3e 63 68 65 63 6b 54 69 6d 65 6f 75 ack);.}..do.{.$this->checkTimeou
a0780 74 28 29 3b 0a 24 72 75 6e 6e 69 6e 67 20 3d 20 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e t();.$running.=.defined('PHP_WIN
a07a0 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 3f 20 24 74 68 69 73 2d 3e 69 73 DOWS_VERSION_BUILD').?.$this->is
a07c0 52 75 6e 6e 69 6e 67 28 29 20 3a 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d Running().:.$this->processPipes-
a07e0 3e 68 61 73 4f 70 65 6e 48 61 6e 64 6c 65 73 28 29 3b 0a 24 63 6c 6f 73 65 20 3d 20 21 64 65 66 >hasOpenHandles();.$close.=.!def
a0800 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 ined('PHP_WINDOWS_VERSION_BUILD'
a0820 29 20 7c 7c 20 21 24 72 75 6e 6e 69 6e 67 3b 3b 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 69 70 65 ).||.!$running;;.$this->readPipe
a0840 73 28 74 72 75 65 2c 20 24 63 6c 6f 73 65 29 3b 0a 7d 20 77 68 69 6c 65 20 28 24 72 75 6e 6e 69 s(true,.$close);.}.while.($runni
a0860 6e 67 29 3b 0a 0a 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 29 ng);..while.($this->isRunning())
a0880 20 7b 0a 75 73 6c 65 65 70 28 31 30 30 30 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 .{.usleep(1000);.}..if.($this->p
a08a0 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 7b rocessInformation['signaled']).{
a08c0 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 .if.($this->isSigchildEnabled())
a08e0 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 .{.throw.new.RuntimeException('T
a0900 68 65 20 70 72 6f 63 65 73 73 20 68 61 73 20 62 65 65 6e 20 73 69 67 6e 61 6c 65 64 2e 27 29 3b he.process.has.been.signaled.');
a0920 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 .}..throw.new.RuntimeException(s
a0940 70 72 69 6e 74 66 28 27 54 68 65 20 70 72 6f 63 65 73 73 20 68 61 73 20 62 65 65 6e 20 73 69 67 printf('The.process.has.been.sig
a0960 6e 61 6c 65 64 20 77 69 74 68 20 73 69 67 6e 61 6c 20 22 25 73 22 2e 27 2c 20 24 74 68 69 73 2d naled.with.signal."%s".',.$this-
a0980 3e 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 29 29 >processInformation['termsig']))
a09a0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 3b 0a 7d 0a 0a ;.}..return.$this->exitcode;.}..
a09c0 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 69 64 28 29 0a .......public.function.getPid().
a09e0 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 {.if.($this->isSigchildEnabled()
a0a00 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 ).{.throw.new.RuntimeException('
a0a20 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 This.PHP.has.been.compiled.with.
a0a40 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 68 65 20 70 72 6f 63 65 73 73 20 69 --enable-sigchild..The.process.i
a0a60 64 65 6e 74 69 66 69 65 72 20 63 61 6e 20 6e 6f 74 20 62 65 20 72 65 74 72 69 65 76 65 64 2e 27 dentifier.can.not.be.retrieved.'
a0a80 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 );.}..$this->updateStatus(false)
a0aa0 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e 69 6e 67 28 29 20 3f 20 24 ;..return.$this->isRunning().?.$
a0ac0 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 70 69 64 27 5d 20 this->processInformation['pid'].
a0ae0 3a 20 6e 75 6c 6c 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 :.null;.}............public.func
a0b00 74 69 6f 6e 20 73 69 67 6e 61 6c 28 24 73 69 67 6e 61 6c 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 tion.signal($signal).{.if.(!$thi
a0b20 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 4c 6f 67 69 s->isRunning()).{.throw.new.Logi
a0b40 63 45 78 63 65 70 74 69 6f 6e 28 27 43 61 6e 20 6e 6f 74 20 73 65 6e 64 20 73 69 67 6e 61 6c 20 cException('Can.not.send.signal.
a0b60 6f 6e 20 61 20 6e 6f 6e 20 72 75 6e 6e 69 6e 67 20 70 72 6f 63 65 73 73 2e 27 29 3b 0a 7d 0a 0a on.a.non.running.process.');.}..
a0b80 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 if.($this->isSigchildEnabled()).
a0ba0 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 {.throw.new.RuntimeException('Th
a0bc0 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d is.PHP.has.been.compiled.with.--
a0be0 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 68 65 20 70 72 6f 63 65 73 73 20 63 61 6e enable-sigchild..The.process.can
a0c00 20 6e 6f 74 20 62 65 20 73 69 67 6e 61 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 .not.be.signaled.');.}..if.(true
a0c20 20 21 3d 3d 20 40 70 72 6f 63 5f 74 65 72 6d 69 6e 61 74 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 .!==.@proc_terminate($this->proc
a0c40 65 73 73 2c 20 24 73 69 67 6e 61 6c 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 ess,.$signal)).{.throw.new.Runti
a0c60 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 45 72 72 6f 72 20 77 68 69 6c 65 meException(sprintf('Error.while
a0c80 20 73 65 6e 64 69 6e 67 20 73 69 67 6e 61 6c 20 60 25 64 60 2e 27 2c 20 24 73 69 67 6e 61 6c 29 .sending.signal.`%d`.',.$signal)
a0ca0 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 );.}..return.$this;.}.........pu
a0cc0 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 69 blic.function.getOutput().{.$thi
a0ce0 73 2d 3e 72 65 61 64 50 69 70 65 73 28 66 61 6c 73 65 2c 20 64 65 66 69 6e 65 64 28 27 50 48 50 s->readPipes(false,.defined('PHP
a0d00 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 3f 20 21 24 74 68 69 _WINDOWS_VERSION_BUILD').?.!$thi
a0d20 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 69 6e 67 27 5d s->processInformation['running']
a0d40 20 3a 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 3b .:.true);..return.$this->stdout;
a0d60 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 67 65 74 49 .}..........public.function.getI
a0d80 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 28 29 0a 7b 0a 24 64 61 74 61 20 3d 20 24 74 68 ncrementalOutput().{.$data.=.$th
a0da0 69 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 3b 0a 0a 24 6c 61 74 65 73 74 20 3d 20 73 75 62 73 is->getOutput();..$latest.=.subs
a0dc0 74 72 28 24 64 61 74 61 2c 20 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 tr($data,.$this->incrementalOutp
a0de0 75 74 4f 66 66 73 65 74 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 utOffset);.$this->incrementalOut
a0e00 70 75 74 4f 66 66 73 65 74 20 3d 20 73 74 72 6c 65 6e 28 24 64 61 74 61 29 3b 0a 0a 72 65 74 75 putOffset.=.strlen($data);..retu
a0e20 72 6e 20 24 6c 61 74 65 73 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 rn.$latest;.}.......public.funct
a0e40 69 6f 6e 20 63 6c 65 61 72 4f 75 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 6f 75 ion.clearOutput().{.$this->stdou
a0e60 74 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 t.=.'';.$this->incrementalOutput
a0e80 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a Offset.=.0;..return.$this;.}....
a0ea0 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 75 74 .....public.function.getErrorOut
a0ec0 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 61 64 50 69 70 65 73 28 66 61 6c 73 65 2c 20 put().{.$this->readPipes(false,.
a0ee0 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 defined('PHP_WINDOWS_VERSION_BUI
a0f00 4c 44 27 29 20 3f 20 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 LD').?.!$this->processInformatio
a0f20 6e 5b 27 72 75 6e 6e 69 6e 67 27 5d 20 3a 20 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 n['running'].:.true);..return.$t
a0f40 68 69 73 2d 3e 73 74 64 65 72 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 his->stderr;.}...........public.
a0f60 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 function.getIncrementalErrorOutp
a0f80 75 74 28 29 0a 7b 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 ut().{.$data.=.$this->getErrorOu
a0fa0 74 70 75 74 28 29 3b 0a 0a 24 6c 61 74 65 73 74 20 3d 20 73 75 62 73 74 72 28 24 64 61 74 61 2c tput();..$latest.=.substr($data,
a0fc0 20 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 70 75 74 4f 66 .$this->incrementalErrorOutputOf
a0fe0 66 73 65 74 29 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 fset);.$this->incrementalErrorOu
a1000 74 70 75 74 4f 66 66 73 65 74 20 3d 20 73 74 72 6c 65 6e 28 24 64 61 74 61 29 3b 0a 0a 72 65 74 tputOffset.=.strlen($data);..ret
a1020 75 72 6e 20 24 6c 61 74 65 73 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 urn.$latest;.}.......public.func
a1040 74 69 6f 6e 20 63 6c 65 61 72 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 7b 0a 24 74 68 69 73 2d tion.clearErrorOutput().{.$this-
a1060 3e 73 74 64 65 72 72 20 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c >stderr.=.'';.$this->incremental
a1080 45 72 72 6f 72 4f 75 74 70 75 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 0a 72 65 74 75 72 6e 20 24 ErrorOutputOffset.=.0;..return.$
a10a0 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f this;.}...........public.functio
a10c0 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 n.getExitCode().{.if.($this->isS
a10e0 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 20 26 26 20 21 24 74 68 69 73 2d 3e 65 6e 68 61 igchildEnabled().&&.!$this->enha
a1100 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 29 20 7b 0a 74 68 72 6f nceSigchildCompatibility).{.thro
a1120 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 w.new.RuntimeException('This.PHP
a1140 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 .has.been.compiled.with.--enable
a1160 2d 73 69 67 63 68 69 6c 64 2e 20 59 6f 75 20 6d 75 73 74 20 75 73 65 20 73 65 74 45 6e 68 61 6e -sigchild..You.must.use.setEnhan
a1180 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 29 20 74 6f 20 75 73 65 ceSigchildCompatibility().to.use
a11a0 20 74 68 69 73 20 6d 65 74 68 6f 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 .this.method');.}..$this->update
a11c0 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 Status(false);..return.$this->ex
a11e0 69 74 63 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 itcode;.}.............public.fun
a1200 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 54 65 78 74 28 29 0a 7b 0a 24 65 78 69 74 63 ction.getExitCodeText().{.$exitc
a1220 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 0a 72 65 74 ode.=.$this->getExitCode();..ret
a1240 75 72 6e 20 69 73 73 65 74 28 73 65 6c 66 3a 3a 24 65 78 69 74 43 6f 64 65 73 5b 24 65 78 69 74 urn.isset(self::$exitCodes[$exit
a1260 63 6f 64 65 5d 29 20 3f 20 73 65 6c 66 3a 3a 24 65 78 69 74 43 6f 64 65 73 5b 24 65 78 69 74 63 code]).?.self::$exitCodes[$exitc
a1280 6f 64 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 ode].:.'Unknown.error';.}.......
a12a0 0a 0a 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 ..public.function.isSuccessful()
a12c0 0a 7b 0a 72 65 74 75 72 6e 20 30 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 45 78 69 74 43 6f .{.return.0.===.$this->getExitCo
a12e0 64 65 28 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 de();.}.............public.funct
a1300 69 6f 6e 20 68 61 73 42 65 65 6e 53 69 67 6e 61 6c 65 64 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 ion.hasBeenSignaled().{.if.($thi
a1320 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 s->isSigchildEnabled()).{.throw.
a1340 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 new.RuntimeException('This.PHP.h
a1360 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 as.been.compiled.with.--enable-s
a1380 69 67 63 68 69 6c 64 2e 20 54 65 72 6d 20 73 69 67 6e 61 6c 20 63 61 6e 20 6e 6f 74 20 62 65 20 igchild..Term.signal.can.not.be.
a13a0 72 65 74 72 69 65 76 65 64 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 retrieved');.}..$this->updateSta
a13c0 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 tus(false);..return.$this->proce
a13e0 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 69 67 6e 61 6c 65 64 27 5d 3b 0a 7d 0a 0a 0a 0a ssInformation['signaled'];.}....
a1400 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 54 65 72 6d .........public.function.getTerm
a1420 53 69 67 6e 61 6c 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 Signal().{.if.($this->isSigchild
a1440 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 Enabled()).{.throw.new.RuntimeEx
a1460 63 65 70 74 69 6f 6e 28 27 54 68 69 73 20 50 48 50 20 68 61 73 20 62 65 65 6e 20 63 6f 6d 70 69 ception('This.PHP.has.been.compi
a1480 6c 65 64 20 77 69 74 68 20 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 2e 20 54 65 72 6d led.with.--enable-sigchild..Term
a14a0 20 73 69 67 6e 61 6c 20 63 61 6e 20 6e 6f 74 20 62 65 20 72 65 74 72 69 65 76 65 64 27 29 3b 0a .signal.can.not.be.retrieved');.
a14c0 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a }..$this->updateStatus(false);..
a14e0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e return.$this->processInformation
a1500 5b 27 74 65 72 6d 73 69 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ['termsig'];.}...........public.
a1520 66 75 6e 63 74 69 6f 6e 20 68 61 73 42 65 65 6e 53 74 6f 70 70 65 64 28 29 0a 7b 0a 24 74 68 69 function.hasBeenStopped().{.$thi
a1540 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 s->updateStatus(false);..return.
a1560 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 70 $this->processInformation['stopp
a1580 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 75 6e 63 74 69 6f ed'];.}...........public.functio
a15a0 6e 20 67 65 74 53 74 6f 70 53 69 67 6e 61 6c 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 n.getStopSignal().{.$this->updat
a15c0 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 eStatus(false);..return.$this->p
a15e0 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 5b 27 73 74 6f 70 73 69 67 27 5d 3b 0a 7d 0a rocessInformation['stopsig'];.}.
a1600 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 75 6e 6e 69 6e 67 28 ......public.function.isRunning(
a1620 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 3d 3d ).{.if.(self::STATUS_STARTED.!==
a1640 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a .$this->status).{.return.false;.
a1660 7d 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a }..$this->updateStatus(false);..
a1680 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e return.$this->processInformation
a16a0 5b 27 72 75 6e 6e 69 6e 67 27 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 ['running'];.}.......public.func
a16c0 74 69 6f 6e 20 69 73 53 74 61 72 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tion.isStarted().{.return.$this-
a16e0 3e 73 74 61 74 75 73 20 21 3d 20 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 52 45 41 44 59 3b 0a 7d >status.!=.self::STATUS_READY;.}
a1700 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 54 65 72 6d 69 6e 61 .......public.function.isTermina
a1720 74 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 73 28 66 61 6c 73 ted().{.$this->updateStatus(fals
a1740 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 3d 20 73 65 6c e);..return.$this->status.==.sel
a1760 66 3a 3a 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a f::STATUS_TERMINATED;.}.........
a1780 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 74 75 73 28 29 0a 7b 0a 24 74 public.function.getStatus().{.$t
a17a0 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 0a 72 65 74 75 72 his->updateStatus(false);..retur
a17c0 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 n.$this->status;.}............pu
a17e0 62 6c 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 20 3d 20 31 30 blic.function.stop($timeout.=.10
a1800 2c 20 24 73 69 67 6e 61 6c 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 69 6d 65 6f 75 74 4d 69 63 72 ,.$signal.=.null).{.$timeoutMicr
a1820 6f 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 2b 20 24 74 69 6d 65 6f 75 74 3b 0a o.=.microtime(true).+.$timeout;.
a1840 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 72 6f 63 5f 74 if.($this->isRunning()).{.proc_t
a1860 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 64 6f 20 7b 0a 75 erminate($this->process);.do.{.u
a1880 73 6c 65 65 70 28 31 30 30 30 29 3b 0a 7d 20 77 68 69 6c 65 20 28 24 74 68 69 73 2d 3e 69 73 52 sleep(1000);.}.while.($this->isR
a18a0 75 6e 6e 69 6e 67 28 29 20 26 26 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 20 3c 20 24 74 unning().&&.microtime(true).<.$t
a18c0 69 6d 65 6f 75 74 4d 69 63 72 6f 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 52 75 6e 6e imeoutMicro);..if.($this->isRunn
a18e0 69 6e 67 28 29 20 26 26 20 21 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 45 6e 61 62 6c ing().&&.!$this->isSigchildEnabl
a1900 65 64 28 29 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 73 69 67 6e 61 6c 20 7c 7c 20 ed()).{.if.(null.!==.$signal.||.
a1920 64 65 66 69 6e 65 64 28 27 53 49 47 4b 49 4c 4c 27 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 69 67 defined('SIGKILL')).{.$this->sig
a1940 6e 61 6c 28 24 73 69 67 6e 61 6c 20 3f 3a 20 53 49 47 4b 49 4c 4c 29 3b 0a 7d 0a 7d 0a 7d 0a 0a nal($signal.?:.SIGKILL);.}.}.}..
a1960 24 74 68 69 73 2d 3e 75 70 64 61 74 65 53 74 61 74 75 73 28 66 61 6c 73 65 29 3b 0a 69 66 20 28 $this->updateStatus(false);.if.(
a1980 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 69 $this->processInformation['runni
a19a0 6e 67 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6c 6f 73 65 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 ng']).{.$this->close();.}..$this
a19c0 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 52 4d 49 4e 41 54 ->status.=.self::STATUS_TERMINAT
a19e0 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 65 3b 0a 7d 0a 0a ED;..return.$this->exitcode;.}..
a1a00 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 75 74 70 75 74 28 24 .....public.function.addOutput($
a1a20 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4f 75 74 70 75 74 54 69 6d 65 20 3d 20 line).{.$this->lastOutputTime.=.
a1a40 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 73 74 64 6f 75 74 20 2e microtime(true);.$this->stdout..
a1a60 3d 20 24 6c 69 6e 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 =.$line;.}.......public.function
a1a80 20 61 64 64 45 72 72 6f 72 4f 75 74 70 75 74 28 24 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e .addErrorOutput($line).{.$this->
a1aa0 6c 61 73 74 4f 75 74 70 75 74 54 69 6d 65 20 3d 20 6d 69 63 72 6f 74 69 6d 65 28 74 72 75 65 29 lastOutputTime.=.microtime(true)
a1ac0 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 2e 3d 20 24 6c 69 6e 65 3b 0a 7d 0a 0a 0a 0a 0a ;.$this->stderr..=.$line;.}.....
a1ae0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 ..public.function.getCommandLine
a1b00 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a ().{.return.$this->commandline;.
a1b20 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6d }.........public.function.setCom
a1b40 6d 61 6e 64 4c 69 6e 65 28 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e mandLine($commandline).{.$this->
a1b60 63 6f 6d 6d 61 6e 64 6c 69 6e 65 20 3d 20 24 63 6f 6d 6d 61 6e 64 6c 69 6e 65 3b 0a 0a 72 65 74 commandline.=.$commandline;..ret
a1b80 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 urn.$this;.}.......public.functi
a1ba0 6f 6e 20 67 65 74 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e on.getTimeout().{.return.$this->
a1bc0 74 69 6d 65 6f 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 timeout;.}.......public.function
a1be0 20 67 65 74 49 64 6c 65 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 .getIdleTimeout().{.return.$this
a1c00 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ->idleTimeout;.}.............pub
a1c20 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 lic.function.setTimeout($timeout
a1c40 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 ).{.$this->timeout.=.$this->vali
a1c60 64 61 74 65 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 dateTimeout($timeout);..return.$
a1c80 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f this;.}...........public.functio
a1ca0 6e 20 73 65 74 49 64 6c 65 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 24 74 68 n.setIdleTimeout($timeout).{.$th
a1cc0 69 73 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 74 20 3d 20 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 is->idleTimeout.=.$this->validat
a1ce0 65 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 eTimeout($timeout);..return.$thi
a1d00 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 73 65 74 s;.}.........public.function.set
a1d20 54 74 79 28 24 74 74 79 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 74 79 20 3d 20 28 42 6f 6f 6c 65 61 Tty($tty).{.$this->tty.=.(Boolea
a1d40 6e 29 20 24 74 74 79 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 n).$tty;..return.$this;.}.......
a1d60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 54 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e public.function.isTty().{.return
a1d80 20 24 74 68 69 73 2d 3e 74 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$this->tty;.}.......public.func
a1da0 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 0a 7b 0a 69 66 20 tion.getWorkingDirectory().{.if.
a1dc0 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 77 64 29 20 7b 0a 0a 20 0a 20 72 65 74 75 (null.===.$this->cwd).{.....retu
a1de0 72 6e 20 67 65 74 63 77 64 28 29 20 3f 3a 20 6e 75 6c 6c 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 rn.getcwd().?:.null;.}..return.$
a1e00 74 68 69 73 2d 3e 63 77 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 this->cwd;.}.........public.func
a1e20 74 69 6f 6e 20 73 65 74 57 6f 72 6b 69 6e 67 44 69 72 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b tion.setWorkingDirectory($cwd).{
a1e40 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 .$this->cwd.=.$cwd;..return.$thi
a1e60 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 45 6e s;.}.......public.function.getEn
a1e80 76 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 76 3b 0a 7d 0a 0a 0a 0a 0a 0a v().{.return.$this->env;.}......
a1ea0 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 45 6e 76 28 .........public.function.setEnv(
a1ec0 61 72 72 61 79 20 24 65 6e 76 29 0a 7b 0a 0a 20 24 65 6e 76 20 3d 20 61 72 72 61 79 5f 66 69 6c array.$env).{...$env.=.array_fil
a1ee0 74 65 72 28 24 65 6e 76 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 7b 20 69 66 ter($env,.function.($value).{.if
a1f00 20 28 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b 20 72 65 74 75 72 6e 20 74 72 .(!is_array($value)).{.return.tr
a1f20 75 65 3b 20 7d 20 7d 29 3b 0a 0a 24 74 68 69 73 2d 3e 65 6e 76 20 3d 20 61 72 72 61 79 28 29 3b ue;.}.});..$this->env.=.array();
a1f40 0a 66 6f 72 65 61 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 .foreach.($env.as.$key.=>.$value
a1f60 29 20 7b 0a 24 74 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 ).{.$this->env[(binary).$key].=.
a1f80 28 62 69 6e 61 72 79 29 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 (binary).$value;.}..return.$this
a1fa0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 64 ;.}.......public.function.getStd
a1fc0 69 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 64 69 6e 3b 0a 7d 0a 0a 0a in().{.return.$this->stdin;.}...
a1fe0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 64 69 6e 28 24 ......public.function.setStdin($
a2000 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 74 64 69 6e 3b 0a stdin).{.$this->stdin.=.$stdin;.
a2020 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 .return.$this;.}.......public.fu
a2040 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 74 68 nction.getOptions().{.return.$th
a2060 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 is->options;.}.........public.fu
a2080 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 6e 73 nction.setOptions(array.$options
a20a0 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 24 6f 70 74 69 6f 6e 73 3b 0a 0a ).{.$this->options.=.$options;..
a20c0 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 return.$this;.}.........public.f
a20e0 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 6d 70 61 74 69 unction.getEnhanceWindowsCompati
a2100 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 68 61 6e 63 65 bility().{.return.$this->enhance
a2120 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 0a 0a 0a 0a 0a 0a 0a WindowsCompatibility;.}.........
a2140 70 75 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 public.function.setEnhanceWindow
a2160 73 43 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 sCompatibility($enhance).{.$this
a2180 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 3d 20 ->enhanceWindowsCompatibility.=.
a21a0 28 42 6f 6f 6c 65 61 6e 29 20 24 65 6e 68 61 6e 63 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 (Boolean).$enhance;..return.$thi
a21c0 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 45 6e s;.}.......public.function.getEn
a21e0 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 28 29 0a 7b 0a 72 hanceSigchildCompatibility().{.r
a2200 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 eturn.$this->enhanceSigchildComp
a2220 61 74 69 62 69 6c 69 74 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 atibility;.}.............public.
a2240 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 function.setEnhanceSigchildCompa
a2260 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 65 6e 68 61 tibility($enhance).{.$this->enha
a2280 6e 63 65 53 69 67 63 68 69 6c 64 43 6f 6d 70 61 74 69 62 69 6c 69 74 79 20 3d 20 28 42 6f 6f 6c nceSigchildCompatibility.=.(Bool
a22a0 65 61 6e 29 20 24 65 6e 68 61 6e 63 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a ean).$enhance;..return.$this;.}.
a22c0 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 68 65 63 6b 54 69 .........public.function.checkTi
a22e0 6d 65 6f 75 74 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 74 69 meout().{.if.(null.!==.$this->ti
a2300 6d 65 6f 75 74 20 26 26 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 20 3c 20 6d 69 63 72 6f 74 meout.&&.$this->timeout.<.microt
a2320 69 6d 65 28 74 72 75 65 29 20 2d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 74 69 6d 65 29 20 7b 0a ime(true).-.$this->starttime).{.
a2340 24 74 68 69 73 2d 3e 73 74 6f 70 28 30 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 50 72 6f 63 65 $this->stop(0);..throw.new.Proce
a2360 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2c 20 50 72 6f 63 65 ssTimedOutException($this,.Proce
a2380 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 3a 3a 54 59 50 45 5f 47 45 4e 45 52 41 ssTimedOutException::TYPE_GENERA
a23a0 4c 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 3c 20 24 74 68 69 73 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 L);.}..if.(0.<.$this->idleTimeou
a23c0 74 20 26 26 20 24 74 68 69 73 2d 3e 69 64 6c 65 54 69 6d 65 6f 75 74 20 3c 20 6d 69 63 72 6f 74 t.&&.$this->idleTimeout.<.microt
a23e0 69 6d 65 28 74 72 75 65 29 20 2d 20 24 74 68 69 73 2d 3e 6c 61 73 74 4f 75 74 70 75 74 54 69 6d ime(true).-.$this->lastOutputTim
a2400 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 6f 70 28 30 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 e).{.$this->stop(0);..throw.new.
a2420 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 28 24 74 68 69 73 2c 20 ProcessTimedOutException($this,.
a2440 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 65 70 74 69 6f 6e 3a 3a 54 59 50 45 5f 49 ProcessTimedOutException::TYPE_I
a2460 44 4c 45 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e DLE);.}.}.......private.function
a2480 20 67 65 74 44 65 73 63 72 69 70 74 6f 72 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 .getDescriptors().{.$this->proce
a24a0 73 73 50 69 70 65 73 20 3d 20 6e 65 77 20 50 72 6f 63 65 73 73 50 69 70 65 73 28 24 74 68 69 73 ssPipes.=.new.ProcessPipes($this
a24c0 2d 3e 75 73 65 46 69 6c 65 48 61 6e 64 6c 65 73 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 73 20 ->useFileHandles);.$descriptors.
a24e0 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 67 65 74 44 65 73 63 72 69 =.$this->processPipes->getDescri
a2500 70 74 6f 72 73 28 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 73 65 46 69 6c 65 48 61 6e ptors();..if.(!$this->useFileHan
a2520 64 6c 65 73 20 26 26 20 24 74 68 69 73 2d 3e 65 6e 68 61 6e 63 65 53 69 67 63 68 69 6c 64 43 6f dles.&&.$this->enhanceSigchildCo
a2540 6d 70 61 74 69 62 69 6c 69 74 79 20 26 26 20 24 74 68 69 73 2d 3e 69 73 53 69 67 63 68 69 6c 64 mpatibility.&&.$this->isSigchild
a2560 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 0a 20 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 Enabled()).{...$descriptors.=.ar
a2580 72 61 79 5f 6d 65 72 67 65 28 24 64 65 73 63 72 69 70 74 6f 72 73 2c 20 61 72 72 61 79 28 61 72 ray_merge($descriptors,.array(ar
a25a0 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d ray('pipe',.'w')));..$this->comm
a25c0 61 6e 64 6c 69 6e 65 20 3d 20 27 28 27 2e 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 6c 69 6e 65 andline.=.'('.$this->commandline
a25e0 2e 27 29 20 33 3e 2f 64 65 76 2f 6e 75 6c 6c 3b 20 63 6f 64 65 3d 24 3f 3b 20 65 63 68 6f 20 24 .').3>/dev/null;.code=$?;.echo.$
a2600 63 6f 64 65 20 3e 26 33 3b 20 65 78 69 74 20 24 63 6f 64 65 27 3b 0a 7d 0a 0a 72 65 74 75 72 6e code.>&3;.exit.$code';.}..return
a2620 20 24 64 65 73 63 72 69 70 74 6f 72 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 .$descriptors;.}............prot
a2640 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 24 63 61 ected.function.buildCallback($ca
a2660 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 20 3d 20 llback).{.$that.=.$this;.$out.=.
a2680 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 24 63 61 self::OUT;.$err.=.self::ERR;.$ca
a26a0 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 74 61 29 llback.=.function.($type,.$data)
a26c0 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 20 24 65 .use.($that,.$callback,.$out,.$e
a26e0 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 68 61 74 rr).{.if.($out.==.$type).{.$that
a2700 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 24 74 68 ->addOutput($data);.}.else.{.$th
a2720 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 0a 69 66 at->addErrorOutput($data);.}..if
a2740 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 75 73 65 .(null.!==.$callback).{.call_use
a2760 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 61 29 3b r_func($callback,.$type,.$data);
a2780 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 0a 0a 0a .}.};..return.$callback;.}......
a27a0 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 73 .protected.function.updateStatus
a27c0 28 24 62 6c 6f 63 6b 69 6e 67 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 53 54 41 54 55 53 5f 53 ($blocking).{.if.(self::STATUS_S
a27e0 54 41 52 54 45 44 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 29 20 7b 0a 72 65 74 75 TARTED.!==.$this->status).{.retu
a2800 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e rn;.}..$this->processInformation
a2820 20 3d 20 70 72 6f 63 5f 67 65 74 5f 73 74 61 74 75 73 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 .=.proc_get_status($this->proces
a2840 73 29 3b 0a 24 74 68 69 73 2d 3e 63 61 70 74 75 72 65 45 78 69 74 43 6f 64 65 28 29 3b 0a 0a 24 s);.$this->captureExitCode();..$
a2860 74 68 69 73 2d 3e 72 65 61 64 50 69 70 65 73 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 64 65 66 69 6e this->readPipes($blocking,.defin
a2880 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 20 ed('PHP_WINDOWS_VERSION_BUILD').
a28a0 3f 20 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 ?.!$this->processInformation['ru
a28c0 6e 6e 69 6e 67 27 5d 20 3a 20 74 72 75 65 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 70 72 nning'].:.true);..if.(!$this->pr
a28e0 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 29 20 7b 0a 24 ocessInformation['running']).{.$
a2900 74 68 69 73 2d 3e 63 6c 6f 73 65 28 29 3b 0a 24 74 68 69 73 2d 3e 73 74 61 74 75 73 20 3d 20 73 this->close();.$this->status.=.s
a2920 65 6c 66 3a 3a 53 54 41 54 55 53 5f 54 45 52 4d 49 4e 41 54 45 44 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a elf::STATUS_TERMINATED;.}.}.....
a2940 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 69 67 63 68 69 6c 64 45 ..protected.function.isSigchildE
a2960 6e 61 62 6c 65 64 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 73 nabled().{.if.(null.!==.self::$s
a2980 69 67 63 68 69 6c 64 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c igchild).{.return.self::$sigchil
a29a0 64 3b 0a 7d 0a 0a 6f 62 5f 73 74 61 72 74 28 29 3b 0a 70 68 70 69 6e 66 6f 28 49 4e 46 4f 5f 47 d;.}..ob_start();.phpinfo(INFO_G
a29c0 45 4e 45 52 41 4c 29 3b 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 69 67 63 68 69 6c 64 ENERAL);..return.self::$sigchild
a29e0 20 3d 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 6f 62 5f 67 65 74 5f 63 6c 65 61 6e .=.false.!==.strpos(ob_get_clean
a2a00 28 29 2c 20 27 2d 2d 65 6e 61 62 6c 65 2d 73 69 67 63 68 69 6c 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a (),.'--enable-sigchild');.}.....
a2a20 0a 0a 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 54 69 6d ....private.function.validateTim
a2a40 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a 24 74 69 6d 65 6f 75 74 20 3d 20 28 66 6c 6f eout($timeout).{.$timeout.=.(flo
a2a60 61 74 29 20 24 74 69 6d 65 6f 75 74 3b 0a 0a 69 66 20 28 30 2e 30 20 3d 3d 3d 20 24 74 69 6d 65 at).$timeout;..if.(0.0.===.$time
a2a80 6f 75 74 29 20 7b 0a 24 74 69 6d 65 6f 75 74 20 3d 20 6e 75 6c 6c 3b 0a 7d 20 65 6c 73 65 69 66 out).{.$timeout.=.null;.}.elseif
a2aa0 20 28 24 74 69 6d 65 6f 75 74 20 3c 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e 76 61 .($timeout.<.0).{.throw.new.Inva
a2ac0 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 74 69 6d 65 6f 75 lidArgumentException('The.timeou
a2ae0 74 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 70 6f 73 69 74 69 76 65 t.value.must.be.a.valid.positive
a2b00 20 69 6e 74 65 67 65 72 20 6f 72 20 66 6c 6f 61 74 20 6e 75 6d 62 65 72 2e 27 29 3b 0a 7d 0a 0a .integer.or.float.number.');.}..
a2b20 72 65 74 75 72 6e 20 24 74 69 6d 65 6f 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 return.$timeout;.}.......private
a2b40 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 50 69 70 65 73 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 .function.readPipes($blocking,.$
a2b60 63 6c 6f 73 65 29 0a 7b 0a 69 66 20 28 24 63 6c 6f 73 65 29 20 7b 0a 24 72 65 73 75 6c 74 20 3d close).{.if.($close).{.$result.=
a2b80 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 72 65 61 64 41 6e 64 43 6c 6f .$this->processPipes->readAndClo
a2ba0 73 65 48 61 6e 64 6c 65 73 28 24 62 6c 6f 63 6b 69 6e 67 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 seHandles($blocking);.}.else.{.$
a2bc0 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 50 69 70 65 73 2d 3e 72 65 result.=.$this->processPipes->re
a2be0 61 64 28 24 62 6c 6f 63 6b 69 6e 67 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 65 73 75 ad($blocking);.}..foreach.($resu
a2c00 6c 74 20 61 73 20 24 74 79 70 65 20 3d 3e 20 24 64 61 74 61 29 20 7b 0a 69 66 20 28 33 20 3d 3d lt.as.$type.=>.$data).{.if.(3.==
a2c20 20 24 74 79 70 65 29 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 .$type).{.$this->fallbackExitcod
a2c40 65 20 3d 20 28 69 6e 74 29 20 24 64 61 74 61 3b 0a 7d 20 65 6c 73 65 20 7b 0a 63 61 6c 6c 5f 75 e.=.(int).$data;.}.else.{.call_u
a2c60 73 65 72 5f 66 75 6e 63 28 24 74 68 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 2c 20 24 74 79 70 65 20 ser_func($this->callback,.$type.
a2c80 3d 3d 3d 20 73 65 6c 66 3a 3a 53 54 44 4f 55 54 20 3f 20 73 65 6c 66 3a 3a 4f 55 54 20 3a 20 73 ===.self::STDOUT.?.self::OUT.:.s
a2ca0 65 6c 66 3a 3a 45 52 52 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 elf::ERR,.$data);.}.}.}.....priv
a2cc0 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 61 70 74 75 72 65 45 78 69 74 43 6f 64 65 28 29 0a 7b ate.function.captureExitCode().{
a2ce0 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 .if.(isset($this->processInforma
a2d00 74 69 6f 6e 5b 27 65 78 69 74 63 6f 64 65 27 5d 29 20 26 26 20 2d 31 20 21 3d 20 24 74 68 69 73 tion['exitcode']).&&.-1.!=.$this
a2d20 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 27 5d ->processInformation['exitcode']
a2d40 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 72 6f ).{.$this->exitcode.=.$this->pro
a2d60 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 0a 7d cessInformation['exitcode'];.}.}
a2d80 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 6c 6f 73 65 28 29 0a .......private.function.close().
a2da0 7b 0a 24 65 78 69 74 63 6f 64 65 20 3d 20 2d 31 3b 0a 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 {.$exitcode.=.-1;..$this->proces
a2dc0 73 50 69 70 65 73 2d 3e 63 6c 6f 73 65 28 29 3b 0a 69 66 20 28 69 73 5f 72 65 73 6f 75 72 63 65 sPipes->close();.if.(is_resource
a2de0 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 29 20 7b 0a 24 65 78 69 74 63 6f 64 65 20 3d 20 ($this->process)).{.$exitcode.=.
a2e00 70 72 6f 63 5f 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 24 proc_close($this->process);.}..$
a2e20 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 this->exitcode.=.$this->exitcode
a2e40 20 21 3d 3d 20 6e 75 6c 6c 20 3f 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3a 20 2d 31 .!==.null.?.$this->exitcode.:.-1
a2e60 3b 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 2d 31 20 21 3d 20 24 65 78 69 74 63 ;.$this->exitcode.=.-1.!=.$exitc
a2e80 6f 64 65 20 3f 20 24 65 78 69 74 63 6f 64 65 20 3a 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 ode.?.$exitcode.:.$this->exitcod
a2ea0 65 3b 0a 0a 69 66 20 28 2d 31 20 3d 3d 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 26 26 e;..if.(-1.==.$this->exitcode.&&
a2ec0 20 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 .null.!==.$this->fallbackExitcod
a2ee0 65 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 66 61 e).{.$this->exitcode.=.$this->fa
a2f00 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 2d 31 20 3d 3d 3d llbackExitcode;.}.elseif.(-1.===
a2f20 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 26 26 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 .$this->exitcode.&&.$this->proce
a2f40 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 20 26 26 20 30 20 3c ssInformation['signaled'].&&.0.<
a2f60 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 74 65 72 6d .$this->processInformation['term
a2f80 73 69 67 27 5d 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 31 32 38 sig']).{...$this->exitcode.=.128
a2fa0 20 2b 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 74 65 .+.$this->processInformation['te
a2fc0 72 6d 73 69 67 27 5d 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 63 6f rmsig'];.}..return.$this->exitco
a2fe0 64 65 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 72 65 73 65 74 de;.}.....private.function.reset
a3000 50 72 6f 63 65 73 73 44 61 74 61 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 74 69 6d 65 ProcessData().{.$this->starttime
a3020 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 63 61 6c 6c 62 61 63 6b 20 3d 20 6e 75 6c 6c 3b .=.null;.$this->callback.=.null;
a3040 0a 24 74 68 69 73 2d 3e 65 78 69 74 63 6f 64 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e .$this->exitcode.=.null;.$this->
a3060 66 61 6c 6c 62 61 63 6b 45 78 69 74 63 6f 64 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e fallbackExitcode.=.null;.$this->
a3080 70 72 6f 63 65 73 73 49 6e 66 6f 72 6d 61 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 processInformation.=.null;.$this
a30a0 2d 3e 73 74 64 6f 75 74 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 73 74 64 65 72 72 20 3d ->stdout.=.null;.$this->stderr.=
a30c0 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 20 3d 20 6e 75 6c 6c 3b 0a 24 74 .null;.$this->process.=.null;.$t
a30e0 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 52 45 41 44 59 his->status.=.self::STATUS_READY
a3100 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 4f 75 74 70 75 74 4f 66 66 73 65 74 ;.$this->incrementalOutputOffset
a3120 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 69 6e 63 72 65 6d 65 6e 74 61 6c 45 72 72 6f 72 4f 75 74 .=.0;.$this->incrementalErrorOut
a3140 70 75 74 4f 66 66 73 65 74 20 3d 20 30 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a putOffset.=.0;.}.}.<?php........
a3160 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
a3180 72 6f 63 65 73 73 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 50 rocess;..use.Symfony\Component\P
a31a0 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f rocess\Exception\RuntimeExceptio
a31c0 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 50 69 70 65 73 0a 7b 0a 0a 70 75 62 n;.....class.ProcessPipes.{..pub
a31e0 6c 69 63 20 24 70 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 lic.$pipes.=.array();..private.$
a3200 66 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 fileHandles.=.array();..private.
a3220 24 72 65 61 64 42 79 74 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 $readBytes.=.array();..private.$
a3240 75 73 65 46 69 6c 65 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 useFiles;..public.function.__con
a3260 73 74 72 75 63 74 28 24 75 73 65 46 69 6c 65 73 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 struct($useFiles.=.false).{.$thi
a3280 73 2d 3e 75 73 65 46 69 6c 65 73 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 75 73 65 46 69 6c 65 s->useFiles.=.(Boolean).$useFile
a32a0 73 3b 0a 0a 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 s;..................if.($this->u
a32c0 73 65 46 69 6c 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 seFiles).{.$this->fileHandles.=.
a32e0 61 72 72 61 79 28 0a 50 72 6f 63 65 73 73 3a 3a 53 54 44 4f 55 54 20 3d 3e 20 74 6d 70 66 69 6c array(.Process::STDOUT.=>.tmpfil
a3300 65 28 29 2c 0a 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 66 69 6c e(),.);.if.(false.===.$this->fil
a3320 65 48 61 6e 64 6c 65 73 5b 50 72 6f 63 65 73 73 3a 3a 53 54 44 4f 55 54 5d 29 20 7b 0a 74 68 72 eHandles[Process::STDOUT]).{.thr
a3340 6f 77 20 6e 65 77 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 41 20 74 65 6d 70 6f ow.new.RuntimeException('A.tempo
a3360 72 61 72 79 20 66 69 6c 65 20 63 6f 75 6c 64 20 6e 6f 74 20 62 65 20 6f 70 65 6e 65 64 20 74 6f rary.file.could.not.be.opened.to
a3380 20 77 72 69 74 65 20 74 68 65 20 70 72 6f 63 65 73 73 20 6f 75 74 70 75 74 20 74 6f 2c 20 76 65 .write.the.process.output.to,.ve
a33a0 72 69 66 79 20 74 68 61 74 20 79 6f 75 72 20 54 45 4d 50 20 65 6e 76 69 72 6f 6e 6d 65 6e 74 20 rify.that.your.TEMP.environment.
a33c0 76 61 72 69 61 62 6c 65 20 69 73 20 77 72 69 74 61 62 6c 65 27 29 3b 0a 7d 0a 24 74 68 69 73 2d variable.is.writable');.}.$this-
a33e0 3e 72 65 61 64 42 79 74 65 73 20 3d 20 61 72 72 61 79 28 0a 50 72 6f 63 65 73 73 3a 3a 53 54 44 >readBytes.=.array(.Process::STD
a3400 4f 55 54 20 3d 3e 20 30 2c 0a 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f OUT.=>.0,.);.}.}..public.functio
a3420 6e 20 5f 5f 64 65 73 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c 6f 73 65 28 29 3b n.__destruct().{.$this->close();
a3440 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 62 6c 6f 63 6b 28 29 .}.....public.function.unblock()
a3460 0a 7b 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 70 .{.foreach.($this->pipes.as.$pip
a3480 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 20 e).{.stream_set_blocking($pipe,.
a34a0 30 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 6f 73 0);.}.}.....public.function.clos
a34c0 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6c 6f 73 65 55 6e 69 78 50 69 70 65 73 28 29 3b 0a 66 e().{.$this->closeUnixPipes();.f
a34e0 6f 72 65 61 63 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 6f oreach.($this->fileHandles.as.$o
a3500 66 66 73 65 74 20 3d 3e 20 24 68 61 6e 64 6c 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 68 61 6e 64 ffset.=>.$handle).{.fclose($hand
a3520 6c 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 20 3d 20 61 72 72 61 le);.}.$this->fileHandles.=.arra
a3540 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 6c 6f y();.}.......public.function.clo
a3560 73 65 55 6e 69 78 50 69 70 65 73 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e seUnixPipes().{.foreach.($this->
a3580 70 69 70 65 73 20 61 73 20 24 70 69 70 65 29 20 7b 0a 66 63 6c 6f 73 65 28 24 70 69 70 65 29 3b pipes.as.$pipe).{.fclose($pipe);
a35a0 0a 7d 0a 24 74 68 69 73 2d 3e 70 69 70 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a .}.$this->pipes.=.array();.}....
a35c0 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 6f 72 ...public.function.getDescriptor
a35e0 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 75 73 65 46 69 6c 65 73 29 20 7b 0a 72 65 74 s().{.if.($this->useFiles).{.ret
a3600 75 72 6e 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 72 27 29 2c 0a 24 urn.array(.array('pipe',.'r'),.$
a3620 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 50 72 6f 63 65 73 73 3a 3a 53 54 44 4f 55 this->fileHandles[Process::STDOU
a3640 54 5d 2c 0a 0a 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 0a 29 3b 0a 7d 0a 0a T],...array('pipe',.'w'),.);.}..
a3660 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 72 27 29 return.array(.array('pipe',.'r')
a3680 2c 20 0a 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 0a 20 61 72 72 61 79 28 ,...array('pipe',.'w'),...array(
a36a0 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 0a 20 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 'pipe',.'w'),...);.}.........pub
a36c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 28 24 62 6c 6f 63 6b 69 6e 67 29 0a 7b 0a 72 lic.function.read($blocking).{.r
a36e0 65 74 75 72 6e 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 28 24 74 68 69 73 2d 3e 72 65 61 64 53 eturn.array_replace($this->readS
a3700 74 72 65 61 6d 73 28 24 62 6c 6f 63 6b 69 6e 67 29 2c 20 24 74 68 69 73 2d 3e 72 65 61 64 46 69 treams($blocking),.$this->readFi
a3720 6c 65 48 61 6e 64 6c 65 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 leHandles());.}.........public.f
a3740 75 6e 63 74 69 6f 6e 20 72 65 61 64 41 6e 64 43 6c 6f 73 65 48 61 6e 64 6c 65 73 28 24 62 6c 6f unction.readAndCloseHandles($blo
a3760 63 6b 69 6e 67 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 28 24 74 cking).{.return.array_replace($t
a3780 68 69 73 2d 3e 72 65 61 64 53 74 72 65 61 6d 73 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 74 72 75 65 his->readStreams($blocking,.true
a37a0 29 2c 20 24 74 68 69 73 2d 3e 72 65 61 64 46 69 6c 65 48 61 6e 64 6c 65 73 28 74 72 75 65 29 29 ),.$this->readFileHandles(true))
a37c0 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 68 61 73 4f 70 65 ;.}.......public.function.hasOpe
a37e0 6e 48 61 6e 64 6c 65 73 28 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 75 73 65 46 69 6c 65 nHandles().{.if.(!$this->useFile
a3800 73 29 20 7b 0a 72 65 74 75 72 6e 20 28 42 6f 6f 6c 65 61 6e 29 20 24 74 68 69 73 2d 3e 70 69 70 s).{.return.(Boolean).$this->pip
a3820 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 28 42 6f 6f 6c 65 61 6e 29 20 24 74 68 69 73 2d 3e 70 es;.}..return.(Boolean).$this->p
a3840 69 70 65 73 20 26 26 20 28 42 6f 6f 6c 65 61 6e 29 20 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e ipes.&&.(Boolean).$this->fileHan
a3860 64 6c 65 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 dles;.}........public.function.w
a3880 72 69 74 65 28 24 62 6c 6f 63 6b 69 6e 67 2c 20 24 73 74 64 69 6e 29 0a 7b 0a 69 66 20 28 6e 75 rite($blocking,.$stdin).{.if.(nu
a38a0 6c 6c 20 3d 3d 3d 20 24 73 74 64 69 6e 29 20 7b 0a 66 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 ll.===.$stdin).{.fclose($this->p
a38c0 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 5d 29 ipes[0]);.unset($this->pipes[0])
a38e0 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 77 72 69 74 65 50 69 70 65 73 20 3d 20 61 72 72 61 ;..return;.}..$writePipes.=.arra
a3900 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d y($this->pipes[0]);.unset($this-
a3920 3e 70 69 70 65 73 5b 30 5d 29 3b 0a 24 73 74 64 69 6e 4c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 >pipes[0]);.$stdinLen.=.strlen($
a3940 73 74 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 stdin);.$stdinOffset.=.0;..while
a3960 20 28 24 77 72 69 74 65 50 69 70 65 73 29 20 7b 0a 24 72 20 3d 20 6e 75 6c 6c 3b 0a 24 77 20 3d .($writePipes).{.$r.=.null;.$w.=
a3980 20 24 77 72 69 74 65 50 69 70 65 73 3b 0a 24 65 20 3d 20 6e 75 6c 6c 3b 0a 0a 69 66 20 28 66 61 .$writePipes;.$e.=.null;..if.(fa
a39a0 6c 73 65 20 3d 3d 3d 20 24 6e 20 3d 20 40 73 74 72 65 61 6d 5f 73 65 6c 65 63 74 28 24 72 2c 20 lse.===.$n.=.@stream_select($r,.
a39c0 24 77 2c 20 24 65 2c 20 30 2c 20 24 62 6c 6f 63 6b 69 6e 67 20 3f 20 63 65 69 6c 28 50 72 6f 63 $w,.$e,.0,.$blocking.?.ceil(Proc
a39e0 65 73 73 3a 3a 54 49 4d 45 4f 55 54 5f 50 52 45 43 49 53 49 4f 4e 20 2a 20 31 45 36 29 20 3a 20 ess::TIMEOUT_PRECISION.*.1E6).:.
a3a00 30 29 29 20 7b 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 53 79 73 74 65 6d 43 61 6c 6c 0)).{...if.($this->hasSystemCall
a3a20 42 65 65 6e 49 6e 74 65 72 72 75 70 74 65 64 28 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d BeenInterrupted()).{.continue;.}
a3a40 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 6e 29 20 7b 0a 63 6f 6e .break;.}....if.(0.===.$n).{.con
a3a60 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 77 29 20 7b 0a 24 77 72 69 74 74 65 6e 20 3d 20 66 tinue;.}..if.($w).{.$written.=.f
a3a80 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 72 79 29 20 73 write($writePipes[0],.(binary).s
a3aa0 75 62 73 74 72 28 24 73 74 64 69 6e 2c 20 24 73 74 64 69 6e 4f 66 66 73 65 74 29 2c 20 38 31 39 ubstr($stdin,.$stdinOffset),.819
a3ac0 32 29 3b 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 77 72 69 74 74 65 6e 29 20 7b 0a 24 73 2);.if.(false.!==.$written).{.$s
a3ae0 74 64 69 6e 4f 66 66 73 65 74 20 2b 3d 20 24 77 72 69 74 74 65 6e 3b 0a 7d 0a 69 66 20 28 24 73 tdinOffset.+=.$written;.}.if.($s
a3b00 74 64 69 6e 4f 66 66 73 65 74 20 3e 3d 20 24 73 74 64 69 6e 4c 65 6e 29 20 7b 0a 66 63 6c 6f 73 tdinOffset.>=.$stdinLen).{.fclos
a3b20 65 28 24 77 72 69 74 65 50 69 70 65 73 5b 30 5d 29 3b 0a 24 77 72 69 74 65 50 69 70 65 73 20 3d e($writePipes[0]);.$writePipes.=
a3b40 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e .null;.}.}.}.}.......private.fun
a3b60 63 74 69 6f 6e 20 72 65 61 64 46 69 6c 65 48 61 6e 64 6c 65 73 28 24 63 6c 6f 73 65 20 3d 20 66 ction.readFileHandles($close.=.f
a3b80 61 6c 73 65 29 0a 7b 0a 24 72 65 61 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 66 68 20 3d 20 24 alse).{.$read.=.array();.$fh.=.$
a3ba0 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 3b 0a 66 6f 72 65 61 63 68 20 28 24 66 68 20 this->fileHandles;.foreach.($fh.
a3bc0 61 73 20 24 74 79 70 65 20 3d 3e 20 24 66 69 6c 65 48 61 6e 64 6c 65 29 20 7b 0a 69 66 20 28 30 as.$type.=>.$fileHandle).{.if.(0
a3be0 20 21 3d 3d 20 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 .!==.fseek($fileHandle,.$this->r
a3c00 65 61 64 42 79 74 65 73 5b 24 74 79 70 65 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a eadBytes[$type])).{.continue;.}.
a3c20 24 64 61 74 61 20 3d 20 27 27 3b 0a 24 64 61 74 61 72 65 61 64 20 3d 20 6e 75 6c 6c 3b 0a 77 68 $data.=.'';.$dataread.=.null;.wh
a3c40 69 6c 65 20 28 21 66 65 6f 66 28 24 66 69 6c 65 48 61 6e 64 6c 65 29 29 20 7b 0a 69 66 20 28 66 ile.(!feof($fileHandle)).{.if.(f
a3c60 61 6c 73 65 20 21 3d 3d 20 24 64 61 74 61 72 65 61 64 20 3d 20 66 72 65 61 64 28 24 66 69 6c 65 alse.!==.$dataread.=.fread($file
a3c80 48 61 6e 64 6c 65 2c 20 31 36 33 39 32 29 29 20 7b 0a 24 64 61 74 61 20 2e 3d 20 24 64 61 74 61 Handle,.16392)).{.$data..=.$data
a3ca0 72 65 61 64 3b 0a 7d 0a 7d 0a 69 66 20 28 30 20 3c 20 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c read;.}.}.if.(0.<.$length.=.strl
a3cc0 65 6e 28 24 64 61 74 61 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 61 64 42 79 74 65 73 5b 24 74 en($data)).{.$this->readBytes[$t
a3ce0 79 70 65 5d 20 2b 3d 20 24 6c 65 6e 67 74 68 3b 0a 24 72 65 61 64 5b 24 74 79 70 65 5d 20 3d 20 ype].+=.$length;.$read[$type].=.
a3d00 24 64 61 74 61 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 72 65 61 $data;.}..if.(false.===.$datarea
a3d20 64 20 7c 7c 20 28 74 72 75 65 20 3d 3d 3d 20 24 63 6c 6f 73 65 20 26 26 20 66 65 6f 66 28 24 66 d.||.(true.===.$close.&&.feof($f
a3d40 69 6c 65 48 61 6e 64 6c 65 29 20 26 26 20 27 27 20 3d 3d 3d 20 24 64 61 74 61 29 29 20 7b 0a 66 ileHandle).&&.''.===.$data)).{.f
a3d60 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 66 69 6c 65 48 61 6e 64 6c 65 73 5b 24 74 79 70 65 5d 29 close($this->fileHandles[$type])
a3d80 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 5b 24 74 79 70 65 ;.unset($this->fileHandles[$type
a3da0 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ]);.}.}..return.$read;.}........
a3dc0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 53 74 72 65 61 6d 73 28 24 62 .private.function.readStreams($b
a3de0 6c 6f 63 6b 69 6e 67 2c 20 24 63 6c 6f 73 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 65 locking,.$close.=.false).{.if.(e
a3e00 6d 70 74 79 28 24 74 68 69 73 2d 3e 70 69 70 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 mpty($this->pipes)).{.return.arr
a3e20 61 79 28 29 3b 0a 7d 0a 0a 24 72 65 61 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 72 20 3d 20 ay();.}..$read.=.array();..$r.=.
a3e40 24 74 68 69 73 2d 3e 70 69 70 65 73 3b 0a 24 77 20 3d 20 6e 75 6c 6c 3b 0a 24 65 20 3d 20 6e 75 $this->pipes;.$w.=.null;.$e.=.nu
a3e60 6c 6c 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 6e 20 3d 20 40 73 74 72 65 61 ll;....if.(false.===.$n.=.@strea
a3e80 6d 5f 73 65 6c 65 63 74 28 24 72 2c 20 24 77 2c 20 24 65 2c 20 30 2c 20 24 62 6c 6f 63 6b 69 6e m_select($r,.$w,.$e,.0,.$blockin
a3ea0 67 20 3f 20 63 65 69 6c 28 50 72 6f 63 65 73 73 3a 3a 54 49 4d 45 4f 55 54 5f 50 52 45 43 49 53 g.?.ceil(Process::TIMEOUT_PRECIS
a3ec0 49 4f 4e 20 2a 20 31 45 36 29 20 3a 20 30 29 29 20 7b 0a 0a 20 0a 20 69 66 20 28 21 24 74 68 69 ION.*.1E6).:.0)).{.....if.(!$thi
a3ee0 73 2d 3e 68 61 73 53 79 73 74 65 6d 43 61 6c 6c 42 65 65 6e 49 6e 74 65 72 72 75 70 74 65 64 28 s->hasSystemCallBeenInterrupted(
a3f00 29 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 7d 0a 0a )).{.$this->pipes.=.array();.}..
a3f20 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 6e 29 return.$read;.}....if.(0.===.$n)
a3f40 20 7b 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 72 20 .{.return.$read;.}..foreach.($r.
a3f60 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
a3f80 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
a3fa0 72 65 61 64 28 24 70 69 70 65 2c 20 38 31 39 32 29 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 read($pipe,.8192);..if.(strlen($
a3fc0 64 61 74 61 29 20 3e 20 30 29 20 7b 0a 24 72 65 61 64 5b 24 74 79 70 65 5d 20 3d 20 24 64 61 74 data).>.0).{.$read[$type].=.$dat
a3fe0 61 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 64 61 74 61 20 7c 7c 20 28 74 72 a;.}..if.(false.===.$data.||.(tr
a4000 75 65 20 3d 3d 3d 20 24 63 6c 6f 73 65 20 26 26 20 66 65 6f 66 28 24 70 69 70 65 29 20 26 26 20 ue.===.$close.&&.feof($pipe).&&.
a4020 27 27 20 3d 3d 3d 20 24 64 61 74 61 29 29 20 7b 0a 66 63 6c 6f 73 65 28 24 74 68 69 73 2d 3e 70 ''.===.$data)).{.fclose($this->p
a4040 69 70 65 73 5b 24 74 79 70 65 5d 29 3b 0a 75 6e 73 65 74 28 24 74 68 69 73 2d 3e 70 69 70 65 73 ipes[$type]);.unset($this->pipes
a4060 5b 24 74 79 70 65 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 61 64 3b 0a 7d 0a 0a [$type]);.}.}..return.$read;.}..
a4080 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 79 73 74 65 6d 43 .....private.function.hasSystemC
a40a0 61 6c 6c 42 65 65 6e 49 6e 74 65 72 72 75 70 74 65 64 28 29 0a 7b 0a 24 6c 61 73 74 45 72 72 6f allBeenInterrupted().{.$lastErro
a40c0 72 20 3d 20 65 72 72 6f 72 5f 67 65 74 5f 6c 61 73 74 28 29 3b 0a 0a 0a 20 72 65 74 75 72 6e 20 r.=.error_get_last();....return.
a40e0 69 73 73 65 74 28 24 6c 61 73 74 45 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 29 20 26 26 20 isset($lastError['message']).&&.
a4100 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 69 70 6f 73 28 24 6c 61 73 74 45 72 72 6f 72 5b 27 6d 65 false.!==.stripos($lastError['me
a4120 73 73 61 67 65 27 5d 2c 20 27 69 6e 74 65 72 72 75 70 74 65 64 20 73 79 73 74 65 6d 20 63 61 6c ssage'],.'interrupted.system.cal
a4140 6c 27 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 l');.}.}.<?php...........namespa
a4160 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 75 ce.Symfony\Component\Process;..u
a4180 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 se.Symfony\Component\Process\Exc
a41a0 65 70 74 69 6f 6e 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b eption\InvalidArgumentException;
a41c0 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 .use.Symfony\Component\Process\E
a41e0 78 63 65 70 74 69 6f 6e 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 xception\LogicException;.......c
a4200 6c 61 73 73 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 lass.ProcessBuilder.{.private.$a
a4220 72 67 75 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 63 77 64 3b 0a 70 72 69 76 61 74 65 20 rguments;.private.$cwd;.private.
a4240 24 65 6e 76 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 73 74 64 69 6e 3b 0a $env.=.array();.private.$stdin;.
a4260 70 72 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 20 3d 20 36 30 3b 0a 70 72 69 76 61 74 65 20 24 private.$timeout.=.60;.private.$
a4280 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 68 65 options.=.array();.private.$inhe
a42a0 72 69 74 45 6e 76 20 3d 20 74 72 75 65 3b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 20 3d ritEnv.=.true;.private.$prefix.=
a42c0 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e .array();..public.function.__con
a42e0 73 74 72 75 63 74 28 61 72 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 struct(array.$arguments.=.array(
a4300 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 24 61 72 67 75 6d 65 6e )).{.$this->arguments.=.$argumen
a4320 74 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 ts;.}..public.static.function.cr
a4340 65 61 74 65 28 61 72 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 eate(array.$arguments.=.array())
a4360 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 74 61 74 69 63 28 24 61 72 67 75 6d 65 6e 74 73 29 .{.return.new.static($arguments)
a4380 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 28 ;.}.........public.function.add(
a43a0 24 61 72 67 75 6d 65 6e 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 5d 20 $argument).{.$this->arguments[].
a43c0 3d 20 24 61 72 67 75 6d 65 6e 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a =.$argument;..return.$this;.}...
a43e0 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 50 72 65 66 69 ........public.function.setPrefi
a4400 78 28 24 70 72 65 66 69 78 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 20 3d 20 69 73 5f x($prefix).{.$this->prefix.=.is_
a4420 61 72 72 61 79 28 24 70 72 65 66 69 78 29 20 3f 20 24 70 72 65 66 69 78 20 3a 20 61 72 72 61 79 array($prefix).?.$prefix.:.array
a4440 28 24 70 72 65 66 69 78 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a ($prefix);..return.$this;.}.....
a4460 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 73 28 61 ..public.function.setArguments(a
a4480 72 72 61 79 20 24 61 72 67 75 6d 65 6e 74 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 rray.$arguments).{.$this->argume
a44a0 6e 74 73 20 3d 20 24 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b nts.=.$arguments;..return.$this;
a44c0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 57 6f 72 6b 69 6e 67 44 69 .}..public.function.setWorkingDi
a44e0 72 65 63 74 6f 72 79 28 24 63 77 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 77 64 20 3d 20 24 63 77 rectory($cwd).{.$this->cwd.=.$cw
a4500 64 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 d;..return.$this;.}..public.func
a4520 74 69 6f 6e 20 69 6e 68 65 72 69 74 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 73 tion.inheritEnvironmentVariables
a4540 28 24 69 6e 68 65 72 69 74 45 6e 76 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e ($inheritEnv.=.true).{.$this->in
a4560 68 65 72 69 74 45 6e 76 20 3d 20 24 69 6e 68 65 72 69 74 45 6e 76 3b 0a 0a 72 65 74 75 72 6e 20 heritEnv.=.$inheritEnv;..return.
a4580 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 45 6e 76 $this;.}..public.function.setEnv
a45a0 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 65 6e 76 5b 24 6e 61 ($name,.$value).{.$this->env[$na
a45c0 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a me].=.$value;..return.$this;.}..
a45e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 public.function.addEnvironmentVa
a4600 72 69 61 62 6c 65 73 28 61 72 72 61 79 20 24 76 61 72 69 61 62 6c 65 73 29 0a 7b 0a 24 74 68 69 riables(array.$variables).{.$thi
a4620 73 2d 3e 65 6e 76 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 28 24 74 68 69 73 2d 3e 65 6e s->env.=.array_replace($this->en
a4640 76 2c 20 24 76 61 72 69 61 62 6c 65 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d v,.$variables);..return.$this;.}
a4660 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 24 73 74 64 69 ..public.function.setInput($stdi
a4680 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 64 69 6e 20 3d 20 24 73 74 64 69 6e 3b 0a 0a 72 65 74 n).{.$this->stdin.=.$stdin;..ret
a46a0 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 urn.$this;.}.............public.
a46c0 66 75 6e 63 74 69 6f 6e 20 73 65 74 54 69 6d 65 6f 75 74 28 24 74 69 6d 65 6f 75 74 29 0a 7b 0a function.setTimeout($timeout).{.
a46e0 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 69 6d 65 6f 75 74 29 20 7b 0a 24 74 68 69 73 2d 3e if.(null.===.$timeout).{.$this->
a4700 74 69 6d 65 6f 75 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d timeout.=.null;..return.$this;.}
a4720 0a 0a 24 74 69 6d 65 6f 75 74 20 3d 20 28 66 6c 6f 61 74 29 20 24 74 69 6d 65 6f 75 74 3b 0a 0a ..$timeout.=.(float).$timeout;..
a4740 69 66 20 28 24 74 69 6d 65 6f 75 74 20 3c 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 49 6e if.($timeout.<.0).{.throw.new.In
a4760 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 74 69 6d 65 validArgumentException('The.time
a4780 6f 75 74 20 76 61 6c 75 65 20 6d 75 73 74 20 62 65 20 61 20 76 61 6c 69 64 20 70 6f 73 69 74 69 out.value.must.be.a.valid.positi
a47a0 76 65 20 69 6e 74 65 67 65 72 20 6f 72 20 66 6c 6f 61 74 20 6e 75 6d 62 65 72 2e 27 29 3b 0a 7d ve.integer.or.float.number.');.}
a47c0 0a 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 0a 72 65 ..$this->timeout.=.$timeout;..re
a47e0 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
a4800 65 74 4f 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 etOption($name,.$value).{.$this-
a4820 3e 6f 70 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 >options[$name].=.$value;..retur
a4840 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 67 65 74 50 n.$this;.}..public.function.getP
a4860 72 6f 63 65 73 73 28 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 rocess().{.if.(0.===.count($this
a4880 2d 3e 70 72 65 66 69 78 29 20 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e ->prefix).&&.0.===.count($this->
a48a0 61 72 67 75 6d 65 6e 74 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 4c 6f 67 69 63 45 78 63 arguments)).{.throw.new.LogicExc
a48c0 65 70 74 69 6f 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 eption('You.must.add().command.a
a48e0 72 67 75 6d 65 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 rguments.before.calling.getProce
a4900 73 73 28 29 2e 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 ss().');.}..$options.=.$this->op
a4920 74 69 6f 6e 73 3b 0a 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 tions;..$arguments.=.array_merge
a4940 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 2c 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 ($this->prefix,.$this->arguments
a4960 29 3b 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_
a4980 6d 61 70 28 61 72 72 61 79 28 5f 5f 4e 41 4d 45 53 50 41 43 45 5f 5f 2e 27 5c 5c 50 72 6f 63 65 map(array(__NAMESPACE__.'\\Proce
a49a0 73 73 55 74 69 6c 73 27 2c 20 27 65 73 63 61 70 65 41 72 67 75 6d 65 6e 74 27 29 2c 20 24 61 72 ssUtils',.'escapeArgument'),.$ar
a49c0 67 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 guments));..if.($this->inheritEn
a49e0 76 29 20 7b 0a 0a 20 24 65 6e 76 20 3d 20 61 72 72 61 79 5f 72 65 70 6c 61 63 65 28 24 5f 45 4e v).{...$env.=.array_replace($_EN
a4a00 56 2c 20 24 5f 53 45 52 56 45 52 2c 20 24 74 68 69 73 2d 3e 65 6e 76 29 3b 0a 7d 20 65 6c 73 65 V,.$_SERVER,.$this->env);.}.else
a4a20 20 7b 0a 24 65 6e 76 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 .{.$env.=.$this->env;.}..return.
a4a40 6e 65 77 20 50 72 6f 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 new.Process($script,.$this->cwd,
a4a60 20 24 65 6e 76 2c 20 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 .$env,.$this->stdin,.$this->time
a4a80 6f 75 74 2c 20 24 6f 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 out,.$options);.}.}.<?php.......
a4aa0 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 5c ....namespace.Symfony\Component\
a4ac0 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 55 74 Process;.........class.ProcessUt
a4ae0 69 6c 73 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 ils.{....private.function.__cons
a4b00 74 72 75 63 74 28 29 0a 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 truct().{.}.........public.stati
a4b20 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d c.function.escapeArgument($argum
a4b40 65 6e 74 29 0a 7b 0a 0a 20 0a 20 0a 20 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f ent).{.........if.(defined('PHP_
a4b60 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 69 66 20 28 27 WINDOWS_VERSION_BUILD')).{.if.('
a4b80 27 20 3d 3d 3d 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 72 65 74 75 72 6e 20 65 73 63 61 70 65 '.===.$argument).{.return.escape
a4ba0 73 68 65 6c 6c 61 72 67 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 0a 24 65 73 63 61 70 65 64 shellarg($argument);.}..$escaped
a4bc0 41 72 67 75 6d 65 6e 74 20 3d 20 27 27 3b 0a 66 6f 72 65 61 63 68 20 28 70 72 65 67 5f 73 70 6c Argument.=.'';.foreach.(preg_spl
a4be0 69 74 28 27 2f 28 5b 25 22 5d 29 2f 69 27 2c 20 24 61 72 67 75 6d 65 6e 74 2c 20 2d 31 2c 20 50 it('/([%"])/i',.$argument,.-1,.P
a4c00 52 45 47 5f 53 50 4c 49 54 5f 4e 4f 5f 45 4d 50 54 59 20 7c 20 50 52 45 47 5f 53 50 4c 49 54 5f REG_SPLIT_NO_EMPTY.|.PREG_SPLIT_
a4c20 44 45 4c 49 4d 5f 43 41 50 54 55 52 45 29 20 61 73 20 24 70 61 72 74 29 20 7b 0a 69 66 20 28 27 DELIM_CAPTURE).as.$part).{.if.('
a4c40 22 27 20 3d 3d 3d 20 24 70 61 72 74 29 20 7b 0a 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 "'.===.$part).{.$escapedArgument
a4c60 20 2e 3d 20 27 5c 5c 22 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 25 27 20 3d 3d 3d 20 24 70 61 ..=.'\\"';.}.elseif.('%'.===.$pa
a4c80 72 74 29 20 7b 0a 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 20 2e 3d 20 27 5e 25 27 3b 0a rt).{.$escapedArgument..=.'^%';.
a4ca0 7d 20 65 6c 73 65 20 7b 0a 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 20 2e 3d 20 65 73 63 }.else.{.$escapedArgument..=.esc
a4cc0 61 70 65 73 68 65 6c 6c 61 72 67 28 24 70 61 72 74 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 apeshellarg($part);.}.}..return.
a4ce0 24 65 73 63 61 70 65 64 41 72 67 75 6d 65 6e 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 65 73 63 61 $escapedArgument;.}..return.esca
a4d00 70 65 73 68 65 6c 6c 61 72 67 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 peshellarg($argument);.}.}.<?php
a4d20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d ...........namespace.Symfony\Com
a4d40 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 ponent\Process\Exception;..use.S
a4d60 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 ymfony\Component\Process\Process
a4d80 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 72 6f 63 65 73 73 54 69 6d 65 64 4f 75 74 45 78 63 ;.......class.ProcessTimedOutExc
a4da0 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 0a eption.extends.RuntimeException.
a4dc0 7b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 47 45 4e 45 52 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 {.const.TYPE_GENERAL.=.1;.const.
a4de0 54 59 50 45 5f 49 44 4c 45 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 70 72 6f 63 65 73 73 TYPE_IDLE.=.2;..private.$process
a4e00 3b 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 6f 75 74 54 79 70 65 3b 0a 0a 70 75 62 6c 69 63 20 ;.private.$timeoutType;..public.
a4e20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 50 72 6f 63 65 73 73 20 24 70 72 function.__construct(Process.$pr
a4e40 6f 63 65 73 73 2c 20 24 74 69 6d 65 6f 75 74 54 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 ocess,.$timeoutType).{.$this->pr
a4e60 6f 63 65 73 73 20 3d 20 24 70 72 6f 63 65 73 73 3b 0a 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 ocess.=.$process;.$this->timeout
a4e80 54 79 70 65 20 3d 20 24 74 69 6d 65 6f 75 74 54 79 70 65 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f Type.=.$timeoutType;..parent::__
a4ea0 63 6f 6e 73 74 72 75 63 74 28 73 70 72 69 6e 74 66 28 0a 27 54 68 65 20 70 72 6f 63 65 73 73 20 construct(sprintf(.'The.process.
a4ec0 22 25 73 22 20 65 78 63 65 65 64 65 64 20 74 68 65 20 74 69 6d 65 6f 75 74 20 6f 66 20 25 73 20 "%s".exceeded.the.timeout.of.%s.
a4ee0 73 65 63 6f 6e 64 73 2e 27 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c seconds.',.$process->getCommandL
a4f00 69 6e 65 28 29 2c 0a 24 74 68 69 73 2d 3e 67 65 74 45 78 63 65 65 64 65 64 54 69 6d 65 6f 75 74 ine(),.$this->getExceededTimeout
a4f20 28 29 0a 29 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f ().));.}..public.function.getPro
a4f40 63 65 73 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 3b 0a cess().{.return.$this->process;.
a4f60 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 47 65 6e 65 72 61 6c 54 69 6d 65 }..public.function.isGeneralTime
a4f80 6f 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 54 79 70 out().{.return.$this->timeoutTyp
a4fa0 65 20 3d 3d 3d 20 73 65 6c 66 3a 3a 54 59 50 45 5f 47 45 4e 45 52 41 4c 3b 0a 7d 0a 0a 70 75 62 e.===.self::TYPE_GENERAL;.}..pub
a4fc0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 64 6c 65 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 72 lic.function.isIdleTimeout().{.r
a4fe0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 54 79 70 65 20 3d 3d 3d 20 73 65 6c eturn.$this->timeoutType.===.sel
a5000 66 3a 3a 54 59 50 45 5f 49 44 4c 45 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e f::TYPE_IDLE;.}..public.function
a5020 20 67 65 74 45 78 63 65 65 64 65 64 54 69 6d 65 6f 75 74 28 29 0a 7b 0a 73 77 69 74 63 68 20 28 .getExceededTimeout().{.switch.(
a5040 24 74 68 69 73 2d 3e 74 69 6d 65 6f 75 74 54 79 70 65 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a $this->timeoutType).{.case.self:
a5060 3a 54 59 50 45 5f 47 45 4e 45 52 41 4c 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f :TYPE_GENERAL:.return.$this->pro
a5080 63 65 73 73 2d 3e 67 65 74 54 69 6d 65 6f 75 74 28 29 3b 0a 0a 63 61 73 65 20 73 65 6c 66 3a 3a cess->getTimeout();..case.self::
a50a0 54 59 50 45 5f 49 44 4c 45 3a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 TYPE_IDLE:.return.$this->process
a50c0 2d 3e 67 65 74 49 64 6c 65 54 69 6d 65 6f 75 74 28 29 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 ->getIdleTimeout();..default:.th
a50e0 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 28 row.new.\LogicException(sprintf(
a5100 27 55 6e 6b 6e 6f 77 6e 20 74 69 6d 65 6f 75 74 20 74 79 70 65 20 22 25 64 22 2e 27 2c 20 24 74 'Unknown.timeout.type."%d".',.$t
a5120 68 69 73 2d 3e 74 69 6d 65 6f 75 74 54 79 70 65 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a his->timeoutType));.}.}.}.<?php.
a5140 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ..........namespace.Symfony\Comp
a5160 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 69 onent\Process\Exception;.......i
a5180 6e 74 65 72 66 61 63 65 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a nterface.ExceptionInterface.{.}.
a51a0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
a51c0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a y\Component\Process\Exception;..
a51e0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 .....class.RuntimeException.exte
a5200 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 nds.\RuntimeException.implements
a5220 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a .ExceptionInterface.{.}.<?php...
a5240 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
a5260 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 ent\Process\Exception;.......cla
a5280 73 73 20 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 4c 6f 67 69 63 ss.LogicException.extends.\Logic
a52a0 45 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 Exception.implements.ExceptionIn
a52c0 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 terface.{.}.<?php...........name
a52e0 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c space.Symfony\Component\Process\
a5300 45 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 Exception;..use.Symfony\Componen
a5320 74 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 t\Process\Process;.......class.P
a5340 72 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 rocessFailedException.extends.Ru
a5360 6e 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 ntimeException.{.private.$proces
a5380 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 75 63 74 28 s;..public.function.__construct(
a53a0 50 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 Process.$process).{.if.($process
a53c0 2d 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 49 6e ->isSuccessful()).{.throw.new.In
a53e0 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
a5400 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
a5420 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
a5440 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
a5460 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 45 78 69 74 20 e.command."%s".failed.'."\nExit.
a5480 43 6f 64 65 3a 20 25 73 28 25 73 29 5c 6e 5c 6e 4f 75 74 70 75 74 3a 5c 6e 3d 3d 3d 3d 3d 3d 3d Code:.%s(%s)\n\nOutput:\n=======
a54a0 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 25 73 5c 6e 5c 6e 45 72 72 6f 72 20 4f 75 74 70 75 74 3a 5c 6e =========\n%s\n\nError.Output:\n
a54c0 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 3d 5c 6e 25 73 22 2c 0a 24 70 72 6f 63 65 73 73 2d ================\n%s",.$process-
a54e0 3e 67 65 74 43 6f 6d 6d 61 6e 64 4c 69 6e 65 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 >getCommandLine(),.$process->get
a5500 45 78 69 74 43 6f 64 65 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 ExitCode(),.$process->getExitCod
a5520 65 54 65 78 74 28 29 2c 0a 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 4f 75 74 70 75 74 28 29 2c 0a eText(),.$process->getOutput(),.
a5540 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 72 72 6f 72 4f 75 74 70 75 74 28 29 0a 29 0a 29 3b 0a $process->getErrorOutput().).);.
a5560 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 3b 0a 7d 0a 0a 70 .$this->process.=.$process;.}..p
a5580 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 28 29 0a 7b 0a 72 65 ublic.function.getProcess().{.re
a55a0 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a turn.$this->process;.}.}.<?php..
a55c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
a55e0 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c nent\Process\Exception;.......cl
a5600 61 73 73 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 65 78 74 ass.InvalidArgumentException.ext
a5620 65 6e 64 73 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 69 ends.\InvalidArgumentException.i
a5640 6d 70 6c 65 6d 65 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d mplements.ExceptionInterface.{.}
a5660 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
a5680 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 ny\Component\Process;........cla
a56a0 73 73 20 50 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 0a 7b 0a 70 72 69 76 61 74 65 ss.PhpExecutableFinder.{.private
a56c0 20 24 65 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 .$executableFinder;..public.func
a56e0 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 65 78 65 63 tion.__construct().{.$this->exec
a5700 75 74 61 62 6c 65 46 69 6e 64 65 72 20 3d 20 6e 65 77 20 45 78 65 63 75 74 61 62 6c 65 46 69 6e utableFinder.=.new.ExecutableFin
a5720 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 der();.}.......public.function.f
a5740 69 6e 64 28 29 0a 7b 0a 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 48 48 56 4d 5f 56 45 52 53 ind().{...if.(defined('HHVM_VERS
a5760 49 4f 4e 27 29 20 26 26 20 66 61 6c 73 65 20 21 3d 3d 20 24 68 68 76 6d 20 3d 20 67 65 74 65 6e ION').&&.false.!==.$hhvm.=.geten
a5780 76 28 27 50 48 50 5f 42 49 4e 41 52 59 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 68 68 76 6d 3b v('PHP_BINARY')).{.return.$hhvm;
a57a0 0a 7d 0a 0a 0a 20 69 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 42 49 4e 41 52 59 27 29 20 .}....if.(defined('PHP_BINARY').
a57c0 26 26 20 50 48 50 5f 42 49 4e 41 52 59 20 26 26 20 69 6e 5f 61 72 72 61 79 28 50 48 50 5f 53 41 &&.PHP_BINARY.&&.in_array(PHP_SA
a57e0 50 49 2c 20 61 72 72 61 79 28 27 63 6c 69 27 2c 20 27 63 6c 69 2d 73 65 72 76 65 72 27 29 29 20 PI,.array('cli',.'cli-server')).
a5800 26 26 20 69 73 5f 66 69 6c 65 28 50 48 50 5f 42 49 4e 41 52 59 29 29 20 7b 0a 72 65 74 75 72 6e &&.is_file(PHP_BINARY)).{.return
a5820 20 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 .PHP_BINARY;.}..if.($php.=.geten
a5840 76 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 v('PHP_PATH')).{.if.(!is_executa
a5860 62 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 ble($php)).{.return.false;.}..re
a5880 74 75 72 6e 20 24 70 68 70 3b 0a 7d 0a 0a 69 66 20 28 24 70 68 70 20 3d 20 67 65 74 65 6e 76 28 turn.$php;.}..if.($php.=.getenv(
a58a0 27 50 48 50 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 'PHP_PEAR_PHP_BIN')).{.if.(is_ex
a58c0 65 63 75 74 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 ecutable($php)).{.return.$php;.}
a58e0 0a 7d 0a 0a 24 64 69 72 73 20 3d 20 61 72 72 61 79 28 50 48 50 5f 42 49 4e 44 49 52 29 3b 0a 69 .}..$dirs.=.array(PHP_BINDIR);.i
a5900 66 20 28 64 65 66 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f f.(defined('PHP_WINDOWS_VERSION_
a5920 42 55 49 4c 44 27 29 29 20 7b 0a 24 64 69 72 73 5b 5d 20 3d 20 27 43 3a 5c 78 61 6d 70 70 5c 70 BUILD')).{.$dirs[].=.'C:\xampp\p
a5940 68 70 5c 5c 27 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 61 62 hp\\';.}..return.$this->executab
a5960 6c 65 46 69 6e 64 65 72 2d 3e 66 69 6e 64 28 27 70 68 70 27 2c 20 66 61 6c 73 65 2c 20 24 64 69 leFinder->find('php',.false,.$di
a5980 72 73 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 rs);.}.}.<?php...........namespa
a59a0 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 3b 0a 0a 75 73 65 20 ce.Symfony\Component\Yaml;..use.
a59c0 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 63 65 70 74 69 6f 6e Symfony\Component\Yaml\Exception
a59e0 5c 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 72 \ParseException;.......class.Par
a5a00 73 65 72 0a 7b 0a 63 6f 6e 73 74 20 46 4f 4c 44 45 44 5f 53 43 41 4c 41 52 5f 50 41 54 54 45 52 ser.{.const.FOLDED_SCALAR_PATTER
a5a20 4e 20 3d 20 27 28 3f 50 3c 73 65 70 61 72 61 74 6f 72 3e 5c 7c 7c 3e 29 28 3f 50 3c 6d 6f 64 69 N.=.'(?P<separator>\||>)(?P<modi
a5a40 66 69 65 72 73 3e 5c 2b 7c 5c 2d 7c 5c 64 2b 7c 5c 2b 5c 64 2b 7c 5c 2d 5c 64 2b 7c 5c 64 2b 5c fiers>\+|\-|\d+|\+\d+|\-\d+|\d+\
a5a60 2b 7c 5c 64 2b 5c 2d 29 3f 28 3f 50 3c 63 6f 6d 6d 65 6e 74 73 3e 20 2b 23 2e 2a 29 3f 27 3b 0a +|\d+\-)?(?P<comments>.+#.*)?';.
a5a80 0a 70 72 69 76 61 74 65 20 24 6f 66 66 73 65 74 20 3d 20 30 3b 0a 70 72 69 76 61 74 65 20 24 6c .private.$offset.=.0;.private.$l
a5aa0 69 6e 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 75 72 72 65 6e 74 ines.=.array();.private.$current
a5ac0 4c 69 6e 65 4e 62 20 3d 20 2d 31 3b 0a 70 72 69 76 61 74 65 20 24 63 75 72 72 65 6e 74 4c 69 6e LineNb.=.-1;.private.$currentLin
a5ae0 65 20 3d 20 27 27 3b 0a 70 72 69 76 61 74 65 20 24 72 65 66 73 20 3d 20 61 72 72 61 79 28 29 3b e.=.'';.private.$refs.=.array();
a5b00 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
a5b20 63 74 28 24 6f 66 66 73 65 74 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 66 66 73 65 74 20 ct($offset.=.0).{.$this->offset.
a5b40 3d 20 24 6f 66 66 73 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 =.$offset;.}.............public.
a5b60 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 24 76 61 6c 75 65 2c 20 24 65 78 63 65 70 74 69 6f function.parse($value,.$exceptio
a5b80 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 20 3d 20 66 61 6c 73 65 2c 20 24 6f 62 6a 65 63 74 53 nOnInvalidType.=.false,.$objectS
a5ba0 75 70 70 6f 72 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 upport.=.false).{.$this->current
a5bc0 4c 69 6e 65 4e 62 20 3d 20 2d 31 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 20 LineNb.=.-1;.$this->currentLine.
a5be0 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 6c 69 6e 65 73 20 3d 20 65 78 70 6c 6f 64 65 28 22 5c 6e =.'';.$this->lines.=.explode("\n
a5c00 22 2c 20 24 74 68 69 73 2d 3e 63 6c 65 61 6e 75 70 28 24 76 61 6c 75 65 29 29 3b 0a 0a 69 66 20 ",.$this->cleanup($value));..if.
a5c20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f (function_exists('mb_detect_enco
a5c40 64 69 6e 67 27 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 6d 62 5f 64 65 74 65 63 74 5f 65 6e ding').&&.false.===.mb_detect_en
a5c60 63 6f 64 69 6e 67 28 24 76 61 6c 75 65 2c 20 27 55 54 46 2d 38 27 2c 20 74 72 75 65 29 29 20 7b coding($value,.'UTF-8',.true)).{
a5c80 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 59 .throw.new.ParseException('The.Y
a5ca0 41 4d 4c 20 76 61 6c 75 65 20 64 6f 65 73 20 6e 6f 74 20 61 70 70 65 61 72 20 74 6f 20 62 65 20 AML.value.does.not.appear.to.be.
a5cc0 76 61 6c 69 64 20 55 54 46 2d 38 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f valid.UTF-8.');.}..if.(function_
a5ce0 65 78 69 73 74 73 28 27 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 27 29 20 26 exists('mb_internal_encoding').&
a5d00 26 20 28 28 69 6e 74 29 20 69 6e 69 5f 67 65 74 28 27 6d 62 73 74 72 69 6e 67 2e 66 75 6e 63 5f &.((int).ini_get('mbstring.func_
a5d20 6f 76 65 72 6c 6f 61 64 27 29 29 20 26 20 32 29 20 7b 0a 24 6d 62 45 6e 63 6f 64 69 6e 67 20 3d overload')).&.2).{.$mbEncoding.=
a5d40 20 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 28 29 3b 0a 6d 62 5f 69 6e 74 65 .mb_internal_encoding();.mb_inte
a5d60 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 28 27 55 54 46 2d 38 27 29 3b 0a 7d 0a 0a 24 64 61 74 61 rnal_encoding('UTF-8');.}..$data
a5d80 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 63 6f 6e 74 65 78 74 20 3d 20 6e 75 6c 6c 3b 0a 77 68 69 .=.array();.$context.=.null;.whi
a5da0 6c 65 20 28 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 29 20 7b 0a 69 le.($this->moveToNextLine()).{.i
a5dc0 66 20 28 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 45 6d 70 74 79 28 29 29 20 f.($this->isCurrentLineEmpty()).
a5de0 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 22 5c 74 22 20 3d 3d 3d 20 24 74 {.continue;.}....if.("\t".===.$t
a5e00 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 5b 30 5d 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 his->currentLine[0]).{.throw.new
a5e20 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 27 41 20 59 41 4d 4c 20 66 69 6c 65 20 63 61 6e .ParseException('A.YAML.file.can
a5e40 6e 6f 74 20 63 6f 6e 74 61 69 6e 20 74 61 62 73 20 61 73 20 69 6e 64 65 6e 74 61 74 69 6f 6e 2e not.contain.tabs.as.indentation.
a5e60 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 ',.$this->getRealCurrentLineNb()
a5e80 20 2b 20 31 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 7d 0a 0a 24 69 .+.1,.$this->currentLine);.}..$i
a5ea0 73 52 65 66 20 3d 20 24 69 73 49 6e 50 6c 61 63 65 20 3d 20 24 69 73 50 72 6f 63 65 73 73 65 64 sRef.=.$isInPlace.=.$isProcessed
a5ec0 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 5c 2d 28 28 .=.false;.if.(preg_match('#^\-((
a5ee0 3f 50 3c 6c 65 61 64 73 70 61 63 65 73 3e 5c 73 2b 29 28 3f 50 3c 76 61 6c 75 65 3e 2e 2b 3f 29 ?P<leadspaces>\s+)(?P<value>.+?)
a5f00 29 3f 5c 73 2a 24 23 75 27 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 2c 20 24 )?\s*$#u',.$this->currentLine,.$
a5f20 76 61 6c 75 65 73 29 29 20 7b 0a 69 66 20 28 24 63 6f 6e 74 65 78 74 20 26 26 20 27 6d 61 70 70 values)).{.if.($context.&&.'mapp
a5f40 69 6e 67 27 20 3d 3d 20 24 63 6f 6e 74 65 78 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 ing'.==.$context).{.throw.new.Pa
a5f60 72 73 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 6e 6f 74 20 64 65 66 69 6e 65 20 rseException('You.cannot.define.
a5f80 61 20 73 65 71 75 65 6e 63 65 20 69 74 65 6d 20 77 68 65 6e 20 69 6e 20 61 20 6d 61 70 70 69 6e a.sequence.item.when.in.a.mappin
a5fa0 67 27 29 3b 0a 7d 0a 24 63 6f 6e 74 65 78 74 20 3d 20 27 73 65 71 75 65 6e 63 65 27 3b 0a 0a 69 g');.}.$context.=.'sequence';..i
a5fc0 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 29 20 26 26 20 70 72 f.(isset($values['value']).&&.pr
a5fe0 65 67 5f 6d 61 74 63 68 28 27 23 5e 26 28 3f 50 3c 72 65 66 3e 5b 5e 20 5d 2b 29 20 2a 28 3f 50 eg_match('#^&(?P<ref>[^.]+).*(?P
a6000 3c 76 61 6c 75 65 3e 2e 2a 29 23 75 27 2c 20 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c <value>.*)#u',.$values['value'],
a6020 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 69 73 52 65 66 20 3d 20 24 6d 61 74 63 68 65 73 5b .$matches)).{.$isRef.=.$matches[
a6040 27 72 65 66 27 5d 3b 0a 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 20 3d 20 24 6d 61 74 63 'ref'];.$values['value'].=.$matc
a6060 68 65 73 5b 27 76 61 6c 75 65 27 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 76 hes['value'];.}....if.(!isset($v
a6080 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 29 20 7c 7c 20 27 27 20 3d 3d 20 74 72 69 6d 28 24 76 alues['value']).||.''.==.trim($v
a60a0 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c 20 27 20 27 29 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 alues['value'],.'.').||.0.===.st
a60c0 72 70 6f 73 28 6c 74 72 69 6d 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c 20 27 20 27 rpos(ltrim($values['value'],.'.'
a60e0 29 2c 20 27 23 27 29 29 20 7b 0a 24 63 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 ),.'#')).{.$c.=.$this->getRealCu
a6100 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 3b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 rrentLineNb().+.1;.$parser.=.new
a6120 20 50 61 72 73 65 72 28 24 63 29 3b 0a 24 70 61 72 73 65 72 2d 3e 72 65 66 73 20 3d 26 20 24 74 .Parser($c);.$parser->refs.=&.$t
a6140 68 69 73 2d 3e 72 65 66 73 3b 0a 24 64 61 74 61 5b 5d 20 3d 20 24 70 61 72 73 65 72 2d 3e 70 61 his->refs;.$data[].=.$parser->pa
a6160 72 73 65 28 24 74 68 69 73 2d 3e 67 65 74 4e 65 78 74 45 6d 62 65 64 42 6c 6f 63 6b 28 29 2c 20 rse($this->getNextEmbedBlock(),.
a6180 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 $exceptionOnInvalidType,.$object
a61a0 53 75 70 70 6f 72 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 76 61 Support);.}.else.{.if.(isset($va
a61c0 6c 75 65 73 5b 27 6c 65 61 64 73 70 61 63 65 73 27 5d 29 0a 26 26 20 27 20 27 20 3d 3d 20 24 76 lues['leadspaces']).&&.'.'.==.$v
a61e0 61 6c 75 65 73 5b 27 6c 65 61 64 73 70 61 63 65 73 27 5d 0a 26 26 20 70 72 65 67 5f 6d 61 74 63 alues['leadspaces'].&&.preg_matc
a6200 68 28 27 23 5e 28 3f 50 3c 6b 65 79 3e 27 2e 49 6e 6c 69 6e 65 3a 3a 52 45 47 45 58 5f 51 55 4f h('#^(?P<key>'.Inline::REGEX_QUO
a6220 54 45 44 5f 53 54 52 49 4e 47 2e 27 7c 5b 5e 20 5c 27 22 5c 7b 5c 5b 5d 2e 2a 3f 29 20 2a 5c 3a TED_STRING.'|[^.\'"\{\[].*?).*\:
a6240 28 5c 73 2b 28 3f 50 3c 76 61 6c 75 65 3e 2e 2b 3f 29 29 3f 5c 73 2a 24 23 75 27 2c 20 24 76 61 (\s+(?P<value>.+?))?\s*$#u',.$va
a6260 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c 20 24 6d 61 74 63 68 65 73 29 0a 29 20 7b 0a 0a 20 24 lues['value'],.$matches).).{...$
a6280 63 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 c.=.$this->getRealCurrentLineNb(
a62a0 29 3b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 77 20 50 61 72 73 65 72 28 24 63 29 3b 0a 24 70 61 );.$parser.=.new.Parser($c);.$pa
a62c0 72 73 65 72 2d 3e 72 65 66 73 20 3d 26 20 24 74 68 69 73 2d 3e 72 65 66 73 3b 0a 0a 24 62 6c 6f rser->refs.=&.$this->refs;..$blo
a62e0 63 6b 20 3d 20 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 3b 0a 69 66 20 28 24 74 68 69 73 ck.=.$values['value'];.if.($this
a6300 2d 3e 69 73 4e 65 78 74 4c 69 6e 65 49 6e 64 65 6e 74 65 64 28 29 29 20 7b 0a 24 62 6c 6f 63 6b ->isNextLineIndented()).{.$block
a6320 20 2e 3d 20 22 5c 6e 22 2e 24 74 68 69 73 2d 3e 67 65 74 4e 65 78 74 45 6d 62 65 64 42 6c 6f 63 ..=."\n".$this->getNextEmbedBloc
a6340 6b 28 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 k($this->getCurrentLineIndentati
a6360 6f 6e 28 29 20 2b 20 32 29 3b 0a 7d 0a 0a 24 64 61 74 61 5b 5d 20 3d 20 24 70 61 72 73 65 72 2d on().+.2);.}..$data[].=.$parser-
a6380 3e 70 61 72 73 65 28 24 62 6c 6f 63 6b 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c >parse($block,.$exceptionOnInval
a63a0 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 20 65 6c 73 65 20 idType,.$objectSupport);.}.else.
a63c0 7b 0a 24 64 61 74 61 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 61 6c 75 65 28 24 76 {.$data[].=.$this->parseValue($v
a63e0 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 alues['value'],.$exceptionOnInva
a6400 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 0a 7d 0a 7d 20 lidType,.$objectSupport);.}.}.}.
a6420 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 23 5e 28 3f 50 3c 6b 65 79 3e 27 2e elseif.(preg_match('#^(?P<key>'.
a6440 49 6e 6c 69 6e 65 3a 3a 52 45 47 45 58 5f 51 55 4f 54 45 44 5f 53 54 52 49 4e 47 2e 27 7c 5b 5e Inline::REGEX_QUOTED_STRING.'|[^
a6460 20 5c 27 22 5c 5b 5c 7b 5d 2e 2a 3f 29 20 2a 5c 3a 28 5c 73 2b 28 3f 50 3c 76 61 6c 75 65 3e 2e .\'"\[\{].*?).*\:(\s+(?P<value>.
a6480 2b 3f 29 29 3f 5c 73 2a 24 23 75 27 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 +?))?\s*$#u',.$this->currentLine
a64a0 2c 20 24 76 61 6c 75 65 73 29 20 26 26 20 66 61 6c 73 65 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 ,.$values).&&.false.===.strpos($
a64c0 76 61 6c 75 65 73 5b 27 6b 65 79 27 5d 2c 27 20 23 27 29 29 20 7b 0a 69 66 20 28 24 63 6f 6e 74 values['key'],'.#')).{.if.($cont
a64e0 65 78 74 20 26 26 20 27 73 65 71 75 65 6e 63 65 27 20 3d 3d 20 24 63 6f 6e 74 65 78 74 29 20 7b ext.&&.'sequence'.==.$context).{
a6500 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 .throw.new.ParseException('You.c
a6520 61 6e 6e 6f 74 20 64 65 66 69 6e 65 20 61 20 6d 61 70 70 69 6e 67 20 69 74 65 6d 20 77 68 65 6e annot.define.a.mapping.item.when
a6540 20 69 6e 20 61 20 73 65 71 75 65 6e 63 65 27 29 3b 0a 7d 0a 24 63 6f 6e 74 65 78 74 20 3d 20 27 .in.a.sequence');.}.$context.=.'
a6560 6d 61 70 70 69 6e 67 27 3b 0a 0a 0a 20 49 6e 6c 69 6e 65 3a 3a 70 61 72 73 65 28 6e 75 6c 6c 2c mapping';....Inline::parse(null,
a6580 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 .$exceptionOnInvalidType,.$objec
a65a0 74 53 75 70 70 6f 72 74 29 3b 0a 74 72 79 20 7b 0a 24 6b 65 79 20 3d 20 49 6e 6c 69 6e 65 3a 3a tSupport);.try.{.$key.=.Inline::
a65c0 70 61 72 73 65 53 63 61 6c 61 72 28 24 76 61 6c 75 65 73 5b 27 6b 65 79 27 5d 29 3b 0a 7d 20 63 parseScalar($values['key']);.}.c
a65e0 61 74 63 68 20 28 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 65 2d 3e 73 atch.(ParseException.$e).{.$e->s
a6600 65 74 50 61 72 73 65 64 4c 69 6e 65 28 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 etParsedLine($this->getRealCurre
a6620 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 29 3b 0a 24 65 2d 3e 73 65 74 53 6e 69 70 70 65 74 28 ntLineNb().+.1);.$e->setSnippet(
a6640 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 0a 74 68 72 6f 77 20 24 65 3b 0a $this->currentLine);..throw.$e;.
a6660 7d 0a 0a 69 66 20 28 27 3c 3c 27 20 3d 3d 3d 20 24 6b 65 79 29 20 7b 0a 69 66 20 28 69 73 73 65 }..if.('<<'.===.$key).{.if.(isse
a6680 74 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 29 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 t($values['value']).&&.0.===.str
a66a0 70 6f 73 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c 20 27 2a 27 29 29 20 7b 0a 24 69 pos($values['value'],.'*')).{.$i
a66c0 73 49 6e 50 6c 61 63 65 20 3d 20 73 75 62 73 74 72 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 sInPlace.=.substr($values['value
a66e0 27 5d 2c 20 31 29 3b 0a 69 66 20 28 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 69 '],.1);.if.(!array_key_exists($i
a6700 73 49 6e 50 6c 61 63 65 2c 20 24 74 68 69 73 2d 3e 72 65 66 73 29 29 20 7b 0a 74 68 72 6f 77 20 sInPlace,.$this->refs)).{.throw.
a6720 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 52 65 66 65 new.ParseException(sprintf('Refe
a6740 72 65 6e 63 65 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 69 73 rence."%s".does.not.exist.',.$is
a6760 49 6e 50 6c 61 63 65 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c InPlace),.$this->getRealCurrentL
a6780 69 6e 65 4e 62 28 29 20 2b 20 31 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 ineNb().+.1,.$this->currentLine)
a67a0 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 ;.}.}.else.{.if.(isset($values['
a67c0 76 61 6c 75 65 27 5d 29 20 26 26 20 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 20 21 3d 3d value']).&&.$values['value'].!==
a67e0 20 27 27 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d .'').{.$value.=.$values['value']
a6800 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 61 6c 75 65 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 65 ;.}.else.{.$value.=.$this->getNe
a6820 78 74 45 6d 62 65 64 42 6c 6f 63 6b 28 29 3b 0a 7d 0a 24 63 20 3d 20 24 74 68 69 73 2d 3e 67 65 xtEmbedBlock();.}.$c.=.$this->ge
a6840 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 3b 0a 24 70 61 72 73 65 tRealCurrentLineNb().+.1;.$parse
a6860 72 20 3d 20 6e 65 77 20 50 61 72 73 65 72 28 24 63 29 3b 0a 24 70 61 72 73 65 72 2d 3e 72 65 66 r.=.new.Parser($c);.$parser->ref
a6880 73 20 3d 26 20 24 74 68 69 73 2d 3e 72 65 66 73 3b 0a 24 70 61 72 73 65 64 20 3d 20 24 70 61 72 s.=&.$this->refs;.$parsed.=.$par
a68a0 73 65 72 2d 3e 70 61 72 73 65 28 24 76 61 6c 75 65 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 ser->parse($value,.$exceptionOnI
a68c0 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 0a 24 6d nvalidType,.$objectSupport);..$m
a68e0 65 72 67 65 64 20 3d 20 61 72 72 61 79 28 29 3b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 erged.=.array();.if.(!is_array($
a6900 70 61 72 73 65 64 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 parsed)).{.throw.new.ParseExcept
a6920 69 6f 6e 28 27 59 41 4d 4c 20 6d 65 72 67 65 20 6b 65 79 73 20 75 73 65 64 20 77 69 74 68 20 61 ion('YAML.merge.keys.used.with.a
a6940 20 73 63 61 6c 61 72 20 76 61 6c 75 65 20 69 6e 73 74 65 61 64 20 6f 66 20 61 6e 20 61 72 72 61 .scalar.value.instead.of.an.arra
a6960 79 2e 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 y.',.$this->getRealCurrentLineNb
a6980 28 29 20 2b 20 31 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 7d 20 65 ().+.1,.$this->currentLine);.}.e
a69a0 6c 73 65 69 66 20 28 69 73 73 65 74 28 24 70 61 72 73 65 64 5b 30 5d 29 29 20 7b 0a 0a 20 66 6f lseif.(isset($parsed[0])).{...fo
a69c0 72 65 61 63 68 20 28 61 72 72 61 79 5f 72 65 76 65 72 73 65 28 24 70 61 72 73 65 64 29 20 61 73 reach.(array_reverse($parsed).as
a69e0 20 24 70 61 72 73 65 64 49 74 65 6d 29 20 7b 0a 69 66 20 28 21 69 73 5f 61 72 72 61 79 28 24 70 .$parsedItem).{.if.(!is_array($p
a6a00 61 72 73 65 64 49 74 65 6d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 arsedItem)).{.throw.new.ParseExc
a6a20 65 70 74 69 6f 6e 28 27 4d 65 72 67 65 20 69 74 65 6d 73 20 6d 75 73 74 20 62 65 20 61 72 72 61 eption('Merge.items.must.be.arra
a6a40 79 73 2e 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e ys.',.$this->getRealCurrentLineN
a6a60 62 28 29 20 2b 20 31 2c 20 24 70 61 72 73 65 64 49 74 65 6d 29 3b 0a 7d 0a 24 6d 65 72 67 65 64 b().+.1,.$parsedItem);.}.$merged
a6a80 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 70 61 72 73 65 64 49 74 65 6d 2c 20 24 6d 65 72 .=.array_merge($parsedItem,.$mer
a6aa0 67 65 64 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 6d 65 72 67 65 64 20 3d 20 61 72 72 ged);.}.}.else.{...$merged.=.arr
a6ac0 61 79 5f 6d 65 72 67 65 28 24 6d 65 72 67 65 64 2c 20 24 70 61 72 73 65 64 29 3b 0a 7d 0a 0a 24 ay_merge($merged,.$parsed);.}..$
a6ae0 69 73 50 72 6f 63 65 73 73 65 64 20 3d 20 24 6d 65 72 67 65 64 3b 0a 7d 0a 7d 20 65 6c 73 65 69 isProcessed.=.$merged;.}.}.elsei
a6b00 66 20 28 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 29 20 26 26 20 70 72 f.(isset($values['value']).&&.pr
a6b20 65 67 5f 6d 61 74 63 68 28 27 23 5e 26 28 3f 50 3c 72 65 66 3e 5b 5e 20 5d 2b 29 20 2a 28 3f 50 eg_match('#^&(?P<ref>[^.]+).*(?P
a6b40 3c 76 61 6c 75 65 3e 2e 2a 29 23 75 27 2c 20 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c <value>.*)#u',.$values['value'],
a6b60 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 69 73 52 65 66 20 3d 20 24 6d 61 74 63 68 65 73 5b .$matches)).{.$isRef.=.$matches[
a6b80 27 72 65 66 27 5d 3b 0a 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 20 3d 20 24 6d 61 74 63 'ref'];.$values['value'].=.$matc
a6ba0 68 65 73 5b 27 76 61 6c 75 65 27 5d 3b 0a 7d 0a 0a 69 66 20 28 24 69 73 50 72 6f 63 65 73 73 65 hes['value'];.}..if.($isProcesse
a6bc0 64 29 20 7b 0a 0a 20 24 64 61 74 61 20 3d 20 24 69 73 50 72 6f 63 65 73 73 65 64 3b 0a 0a 20 7d d).{...$data.=.$isProcessed;...}
a6be0 20 65 6c 73 65 69 66 20 28 21 69 73 73 65 74 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d .elseif.(!isset($values['value']
a6c00 29 20 7c 7c 20 27 27 20 3d 3d 20 74 72 69 6d 28 24 76 61 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d ).||.''.==.trim($values['value']
a6c20 2c 20 27 20 27 29 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 6c 74 72 69 6d 28 24 76 61 ,.'.').||.0.===.strpos(ltrim($va
a6c40 6c 75 65 73 5b 27 76 61 6c 75 65 27 5d 2c 20 27 20 27 29 2c 20 27 23 27 29 29 20 7b 0a 0a 20 69 lues['value'],.'.'),.'#')).{...i
a6c60 66 20 28 21 24 74 68 69 73 2d 3e 69 73 4e 65 78 74 4c 69 6e 65 49 6e 64 65 6e 74 65 64 28 29 20 f.(!$this->isNextLineIndented().
a6c80 26 26 20 21 24 74 68 69 73 2d 3e 69 73 4e 65 78 74 4c 69 6e 65 55 6e 49 6e 64 65 6e 74 65 64 43 &&.!$this->isNextLineUnIndentedC
a6ca0 6f 6c 6c 65 63 74 69 6f 6e 28 29 29 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 5d 20 3d 20 6e 75 6c ollection()).{.$data[$key].=.nul
a6cc0 6c 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 63 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c 43 l;.}.else.{.$c.=.$this->getRealC
a6ce0 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 3b 0a 24 70 61 72 73 65 72 20 3d 20 6e 65 urrentLineNb().+.1;.$parser.=.ne
a6d00 77 20 50 61 72 73 65 72 28 24 63 29 3b 0a 24 70 61 72 73 65 72 2d 3e 72 65 66 73 20 3d 26 20 24 w.Parser($c);.$parser->refs.=&.$
a6d20 74 68 69 73 2d 3e 72 65 66 73 3b 0a 24 64 61 74 61 5b 24 6b 65 79 5d 20 3d 20 24 70 61 72 73 65 this->refs;.$data[$key].=.$parse
a6d40 72 2d 3e 70 61 72 73 65 28 24 74 68 69 73 2d 3e 67 65 74 4e 65 78 74 45 6d 62 65 64 42 6c 6f 63 r->parse($this->getNextEmbedBloc
a6d60 6b 28 29 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f k(),.$exceptionOnInvalidType,.$o
a6d80 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 69 bjectSupport);.}.}.else.{.if.($i
a6da0 73 49 6e 50 6c 61 63 65 29 20 7b 0a 24 64 61 74 61 20 3d 20 24 74 68 69 73 2d 3e 72 65 66 73 5b sInPlace).{.$data.=.$this->refs[
a6dc0 24 69 73 49 6e 50 6c 61 63 65 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 64 61 74 61 5b 24 6b 65 79 $isInPlace];.}.else.{.$data[$key
a6de0 5d 20 3d 20 24 74 68 69 73 2d 3e 70 61 72 73 65 56 61 6c 75 65 28 24 76 61 6c 75 65 73 5b 27 76 ].=.$this->parseValue($values['v
a6e00 61 6c 75 65 27 5d 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c alue'],.$exceptionOnInvalidType,
a6e20 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a .$objectSupport);.}.}.}.else.{..
a6e40 20 24 6c 69 6e 65 43 6f 75 6e 74 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 6e 65 73 .$lineCount.=.count($this->lines
a6e60 29 3b 0a 69 66 20 28 31 20 3d 3d 3d 20 24 6c 69 6e 65 43 6f 75 6e 74 20 7c 7c 20 28 32 20 3d 3d );.if.(1.===.$lineCount.||.(2.==
a6e80 3d 20 24 6c 69 6e 65 43 6f 75 6e 74 20 26 26 20 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 6c 69 6e =.$lineCount.&&.empty($this->lin
a6ea0 65 73 5b 31 5d 29 29 29 20 7b 0a 74 72 79 20 7b 0a 24 76 61 6c 75 65 20 3d 20 49 6e 6c 69 6e 65 es[1]))).{.try.{.$value.=.Inline
a6ec0 3a 3a 70 61 72 73 65 28 24 74 68 69 73 2d 3e 6c 69 6e 65 73 5b 30 5d 2c 20 24 65 78 63 65 70 74 ::parse($this->lines[0],.$except
a6ee0 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 ionOnInvalidType,.$objectSupport
a6f00 29 3b 0a 7d 20 63 61 74 63 68 20 28 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b );.}.catch.(ParseException.$e).{
a6f20 0a 24 65 2d 3e 73 65 74 50 61 72 73 65 64 4c 69 6e 65 28 24 74 68 69 73 2d 3e 67 65 74 52 65 61 .$e->setParsedLine($this->getRea
a6f40 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 29 3b 0a 24 65 2d 3e 73 65 74 53 6e lCurrentLineNb().+.1);.$e->setSn
a6f60 69 70 70 65 74 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 0a 74 68 72 6f ippet($this->currentLine);..thro
a6f80 77 20 24 65 3b 0a 7d 0a 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 29 20 7b w.$e;.}..if.(is_array($value)).{
a6fa0 0a 24 66 69 72 73 74 20 3d 20 72 65 73 65 74 28 24 76 61 6c 75 65 29 3b 0a 69 66 20 28 69 73 5f .$first.=.reset($value);.if.(is_
a6fc0 73 74 72 69 6e 67 28 24 66 69 72 73 74 29 20 26 26 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 string($first).&&.0.===.strpos($
a6fe0 66 69 72 73 74 2c 20 27 2a 27 29 29 20 7b 0a 24 64 61 74 61 20 3d 20 61 72 72 61 79 28 29 3b 0a first,.'*')).{.$data.=.array();.
a7000 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 64 61 foreach.($value.as.$alias).{.$da
a7020 74 61 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 72 65 66 73 5b 73 75 62 73 74 72 28 24 61 6c 69 61 73 ta[].=.$this->refs[substr($alias
a7040 2c 20 31 29 5d 3b 0a 7d 0a 24 76 61 6c 75 65 20 3d 20 24 64 61 74 61 3b 0a 7d 0a 7d 0a 0a 69 66 ,.1)];.}.$value.=.$data;.}.}..if
a7060 20 28 69 73 73 65 74 28 24 6d 62 45 6e 63 6f 64 69 6e 67 29 29 20 7b 0a 6d 62 5f 69 6e 74 65 72 .(isset($mbEncoding)).{.mb_inter
a7080 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 28 24 6d 62 45 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 72 65 nal_encoding($mbEncoding);.}..re
a70a0 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 70 72 65 67 5f 6c 61 73 turn.$value;.}..switch.(preg_las
a70c0 74 5f 65 72 72 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 50 52 45 47 5f 49 4e 54 45 52 4e 41 4c 5f t_error()).{.case.PREG_INTERNAL_
a70e0 45 52 52 4f 52 3a 0a 24 65 72 72 6f 72 20 3d 20 27 49 6e 74 65 72 6e 61 6c 20 50 43 52 45 20 65 ERROR:.$error.=.'Internal.PCRE.e
a7100 72 72 6f 72 2e 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 50 52 45 47 5f 42 41 43 4b 54 52 41 rror.';.break;.case.PREG_BACKTRA
a7120 43 4b 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 3a 0a 24 65 72 72 6f 72 20 3d 20 27 70 63 72 65 2e 62 CK_LIMIT_ERROR:.$error.=.'pcre.b
a7140 61 63 6b 74 72 61 63 6b 5f 6c 69 6d 69 74 20 72 65 61 63 68 65 64 2e 27 3b 0a 62 72 65 61 6b 3b acktrack_limit.reached.';.break;
a7160 0a 63 61 73 65 20 50 52 45 47 5f 52 45 43 55 52 53 49 4f 4e 5f 4c 49 4d 49 54 5f 45 52 52 4f 52 .case.PREG_RECURSION_LIMIT_ERROR
a7180 3a 0a 24 65 72 72 6f 72 20 3d 20 27 70 63 72 65 2e 72 65 63 75 72 73 69 6f 6e 5f 6c 69 6d 69 74 :.$error.=.'pcre.recursion_limit
a71a0 20 72 65 61 63 68 65 64 2e 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 50 52 45 47 5f 42 41 44 .reached.';.break;.case.PREG_BAD
a71c0 5f 55 54 46 38 5f 45 52 52 4f 52 3a 0a 24 65 72 72 6f 72 20 3d 20 27 4d 61 6c 66 6f 72 6d 65 64 _UTF8_ERROR:.$error.=.'Malformed
a71e0 20 55 54 46 2d 38 20 64 61 74 61 2e 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 50 52 45 47 5f .UTF-8.data.';.break;.case.PREG_
a7200 42 41 44 5f 55 54 46 38 5f 4f 46 46 53 45 54 5f 45 52 52 4f 52 3a 0a 24 65 72 72 6f 72 20 3d 20 BAD_UTF8_OFFSET_ERROR:.$error.=.
a7220 27 4f 66 66 73 65 74 20 64 6f 65 73 6e 5c 27 74 20 63 6f 72 72 65 73 70 6f 6e 64 20 74 6f 20 74 'Offset.doesn\'t.correspond.to.t
a7240 68 65 20 62 65 67 69 6e 20 6f 66 20 61 20 76 61 6c 69 64 20 55 54 46 2d 38 20 63 6f 64 65 20 70 he.begin.of.a.valid.UTF-8.code.p
a7260 6f 69 6e 74 2e 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 65 72 72 6f 72 20 3d oint.';.break;.default:.$error.=
a7280 20 27 55 6e 61 62 6c 65 20 74 6f 20 70 61 72 73 65 2e 27 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 .'Unable.to.parse.';.}..throw.ne
a72a0 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 6f 72 2c 20 24 74 68 69 73 2d 3e w.ParseException($error,.$this->
a72c0 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 2c 20 24 74 68 69 getRealCurrentLineNb().+.1,.$thi
a72e0 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 73 52 65 66 29 20 s->currentLine);.}..if.($isRef).
a7300 7b 0a 24 74 68 69 73 2d 3e 72 65 66 73 5b 24 69 73 52 65 66 5d 20 3d 20 65 6e 64 28 24 64 61 74 {.$this->refs[$isRef].=.end($dat
a7320 61 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6d 62 45 6e 63 6f 64 69 6e 67 29 29 a);.}.}..if.(isset($mbEncoding))
a7340 20 7b 0a 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 28 24 6d 62 45 6e 63 6f 64 .{.mb_internal_encoding($mbEncod
a7360 69 6e 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 65 6d 70 74 79 28 24 64 61 74 61 29 20 3f 20 6e ing);.}..return.empty($data).?.n
a7380 75 6c 6c 20 3a 20 24 64 61 74 61 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e ull.:.$data;.}.......private.fun
a73a0 63 74 69 6f 6e 20 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 0a 7b 0a 72 ction.getRealCurrentLineNb().{.r
a73c0 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 4e 62 20 2b 20 24 74 68 eturn.$this->currentLineNb.+.$th
a73e0 69 73 2d 3e 6f 66 66 73 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 is->offset;.}.......private.func
a7400 74 69 6f 6e 20 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 6f 6e 28 29 tion.getCurrentLineIndentation()
a7420 0a 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c .{.return.strlen($this->currentL
a7440 69 6e 65 29 20 2d 20 73 74 72 6c 65 6e 28 6c 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 75 72 72 65 ine).-.strlen(ltrim($this->curre
a7460 6e 74 4c 69 6e 65 2c 20 27 20 27 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 ntLine,.'.'));.}...........priva
a7480 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 65 78 74 45 6d 62 65 64 42 6c 6f 63 6b 28 24 69 te.function.getNextEmbedBlock($i
a74a0 6e 64 65 6e 74 61 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 ndentation.=.null).{.$this->move
a74c0 54 6f 4e 65 78 74 4c 69 6e 65 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 69 6e 64 ToNextLine();..if.(null.===.$ind
a74e0 65 6e 74 61 74 69 6f 6e 29 20 7b 0a 24 6e 65 77 49 6e 64 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e entation).{.$newIndent.=.$this->
a7500 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 6f 6e 28 29 3b 0a 0a 24 75 getCurrentLineIndentation();..$u
a7520 6e 69 6e 64 65 6e 74 65 64 45 6d 62 65 64 42 6c 6f 63 6b 20 3d 20 24 74 68 69 73 2d 3e 69 73 53 nindentedEmbedBlock.=.$this->isS
a7540 74 72 69 6e 67 55 6e 49 6e 64 65 6e 74 65 64 43 6f 6c 6c 65 63 74 69 6f 6e 49 74 65 6d 28 24 74 tringUnIndentedCollectionItem($t
a7560 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e his->currentLine);..if.(!$this->
a7580 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 45 6d 70 74 79 28 29 20 26 26 20 30 20 3d 3d 3d 20 24 6e isCurrentLineEmpty().&&.0.===.$n
a75a0 65 77 49 6e 64 65 6e 74 20 26 26 20 21 24 75 6e 69 6e 64 65 6e 74 65 64 45 6d 62 65 64 42 6c 6f ewIndent.&&.!$unindentedEmbedBlo
a75c0 63 6b 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 27 ck).{.throw.new.ParseException('
a75e0 49 6e 64 65 6e 74 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 2e 27 2c 20 24 74 68 69 73 2d 3e 67 65 Indentation.problem.',.$this->ge
a7600 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 2c 20 24 74 68 69 73 2d tRealCurrentLineNb().+.1,.$this-
a7620 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 65 77 49 6e >currentLine);.}.}.else.{.$newIn
a7640 64 65 6e 74 20 3d 20 24 69 6e 64 65 6e 74 61 74 69 6f 6e 3b 0a 7d 0a 0a 24 64 61 74 61 20 3d 20 dent.=.$indentation;.}..$data.=.
a7660 61 72 72 61 79 28 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 2c array(substr($this->currentLine,
a7680 20 24 6e 65 77 49 6e 64 65 6e 74 29 29 3b 0a 0a 24 69 73 49 74 55 6e 69 6e 64 65 6e 74 65 64 43 .$newIndent));..$isItUnindentedC
a76a0 6f 6c 6c 65 63 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 69 73 53 74 72 69 6e 67 55 6e 49 6e 64 ollection.=.$this->isStringUnInd
a76c0 65 6e 74 65 64 43 6f 6c 6c 65 63 74 69 6f 6e 49 74 65 6d 28 24 74 68 69 73 2d 3e 63 75 72 72 65 entedCollectionItem($this->curre
a76e0 6e 74 4c 69 6e 65 29 3b 0a 0a 0a 20 24 72 65 6d 6f 76 65 43 6f 6d 6d 65 6e 74 73 50 61 74 74 65 ntLine);....$removeCommentsPatte
a7700 72 6e 20 3d 20 27 7e 27 2e 73 65 6c 66 3a 3a 46 4f 4c 44 45 44 5f 53 43 41 4c 41 52 5f 50 41 54 rn.=.'~'.self::FOLDED_SCALAR_PAT
a7720 54 45 52 4e 2e 27 24 7e 27 3b 0a 24 72 65 6d 6f 76 65 43 6f 6d 6d 65 6e 74 73 20 3d 20 21 70 72 TERN.'$~';.$removeComments.=.!pr
a7740 65 67 5f 6d 61 74 63 68 28 24 72 65 6d 6f 76 65 43 6f 6d 6d 65 6e 74 73 50 61 74 74 65 72 6e 2c eg_match($removeCommentsPattern,
a7760 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 0a 77 68 69 6c 65 20 28 24 74 .$this->currentLine);..while.($t
a7780 68 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 29 20 7b 0a 69 66 20 28 24 74 68 his->moveToNextLine()).{.if.($th
a77a0 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 6f 6e 28 29 20 is->getCurrentLineIndentation().
a77c0 3d 3d 3d 20 24 6e 65 77 49 6e 64 65 6e 74 29 20 7b 0a 24 72 65 6d 6f 76 65 43 6f 6d 6d 65 6e 74 ===.$newIndent).{.$removeComment
a77e0 73 20 3d 20 21 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 6d 6f 76 65 43 6f 6d 6d 65 6e 74 73 50 s.=.!preg_match($removeCommentsP
a7800 61 74 74 65 72 6e 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 7d 0a 0a attern,.$this->currentLine);.}..
a7820 69 66 20 28 24 69 73 49 74 55 6e 69 6e 64 65 6e 74 65 64 43 6f 6c 6c 65 63 74 69 6f 6e 20 26 26 if.($isItUnindentedCollection.&&
a7840 20 21 24 74 68 69 73 2d 3e 69 73 53 74 72 69 6e 67 55 6e 49 6e 64 65 6e 74 65 64 43 6f 6c 6c 65 .!$this->isStringUnIndentedColle
a7860 63 74 69 6f 6e 49 74 65 6d 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 29 20 7b ctionItem($this->currentLine)).{
a7880 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 50 72 65 76 69 6f 75 73 4c 69 6e 65 28 29 3b 0a 62 72 .$this->moveToPreviousLine();.br
a78a0 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 72 65 6d 6f 76 65 43 6f 6d 6d 65 6e 74 73 20 26 26 20 24 eak;.}..if.($removeComments.&&.$
a78c0 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 45 6d 70 74 79 28 29 20 7c 7c 20 24 74 this->isCurrentLineEmpty().||.$t
a78e0 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 28 29 29 20 7b 0a 69 66 20 his->isCurrentLineBlank()).{.if.
a7900 28 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 28 29 29 20 7b 0a ($this->isCurrentLineBlank()).{.
a7920 24 64 61 74 61 5b 5d 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c $data[].=.substr($this->currentL
a7940 69 6e 65 2c 20 24 6e 65 77 49 6e 64 65 6e 74 29 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d ine,.$newIndent);.}..continue;.}
a7960 0a 0a 24 69 6e 64 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 4c 69 6e ..$indent.=.$this->getCurrentLin
a7980 65 49 6e 64 65 6e 74 61 74 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 eIndentation();..if.(preg_match(
a79a0 27 23 5e 28 3f 50 3c 74 65 78 74 3e 20 2a 29 24 23 27 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 '#^(?P<text>.*)$#',.$this->curre
a79c0 6e 74 4c 69 6e 65 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 0a 20 24 64 61 74 61 5b 5d 20 3d 20 24 ntLine,.$match)).{...$data[].=.$
a79e0 6d 61 74 63 68 5b 27 74 65 78 74 27 5d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 64 65 6e 74 match['text'];.}.elseif.($indent
a7a00 20 3e 3d 20 24 6e 65 77 49 6e 64 65 6e 74 29 20 7b 0a 24 64 61 74 61 5b 5d 20 3d 20 73 75 62 73 .>=.$newIndent).{.$data[].=.subs
a7a20 74 72 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 2c 20 24 6e 65 77 49 6e 64 65 6e tr($this->currentLine,.$newInden
a7a40 74 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 30 20 3d 3d 20 24 69 6e 64 65 6e 74 29 20 7b 0a 24 74 t);.}.elseif.(0.==.$indent).{.$t
a7a60 68 69 73 2d 3e 6d 6f 76 65 54 6f 50 72 65 76 69 6f 75 73 4c 69 6e 65 28 29 3b 0a 0a 62 72 65 61 his->moveToPreviousLine();..brea
a7a80 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 k;.}.else.{.throw.new.ParseExcep
a7aa0 74 69 6f 6e 28 27 49 6e 64 65 6e 74 61 74 69 6f 6e 20 70 72 6f 62 6c 65 6d 2e 27 2c 20 24 74 68 tion('Indentation.problem.',.$th
a7ac0 69 73 2d 3e 67 65 74 52 65 61 6c 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 2c 20 is->getRealCurrentLineNb().+.1,.
a7ae0 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e $this->currentLine);.}.}..return
a7b00 20 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 64 61 74 61 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 .implode("\n",.$data);.}.......p
a7b20 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 rivate.function.moveToNextLine()
a7b40 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 4e 62 20 3e 3d 20 63 .{.if.($this->currentLineNb.>=.c
a7b60 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 69 6e 65 73 29 20 2d 20 31 29 20 7b 0a 72 65 74 75 72 6e ount($this->lines).-.1).{.return
a7b80 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 20 3d 20 .false;.}..$this->currentLine.=.
a7ba0 24 74 68 69 73 2d 3e 6c 69 6e 65 73 5b 2b 2b 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e $this->lines[++$this->currentLin
a7bc0 65 4e 62 5d 3b 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 eNb];..return.true;.}.....privat
a7be0 65 20 66 75 6e 63 74 69 6f 6e 20 6d 6f 76 65 54 6f 50 72 65 76 69 6f 75 73 4c 69 6e 65 28 29 0a e.function.moveToPreviousLine().
a7c00 7b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 20 3d 20 24 74 68 69 73 2d 3e 6c 69 {.$this->currentLine.=.$this->li
a7c20 6e 65 73 5b 2d 2d 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 4e 62 5d 3b 0a 7d 0a 0a nes[--$this->currentLineNb];.}..
a7c40 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 70 61 72 73 ...........private.function.pars
a7c60 65 56 61 6c 75 65 28 24 76 61 6c 75 65 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c eValue($value,.$exceptionOnInval
a7c80 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 0a 7b 0a 69 66 20 28 30 20 idType,.$objectSupport).{.if.(0.
a7ca0 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 61 6c 75 65 2c 20 27 2a 27 29 29 20 7b 0a 69 66 20 28 66 ===.strpos($value,.'*')).{.if.(f
a7cc0 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 76 61 6c 75 65 2c 20 27 alse.!==.$pos.=.strpos($value,.'
a7ce0 23 27 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c 20 31 #')).{.$value.=.substr($value,.1
a7d00 2c 20 24 70 6f 73 20 2d 20 32 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 76 61 6c 75 65 20 3d 20 73 ,.$pos.-.2);.}.else.{.$value.=.s
a7d20 75 62 73 74 72 28 24 76 61 6c 75 65 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 21 61 72 72 61 79 5f ubstr($value,.1);.}..if.(!array_
a7d40 6b 65 79 5f 65 78 69 73 74 73 28 24 76 61 6c 75 65 2c 20 24 74 68 69 73 2d 3e 72 65 66 73 29 29 key_exists($value,.$this->refs))
a7d60 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 .{.throw.new.ParseException(spri
a7d80 6e 74 66 28 27 52 65 66 65 72 65 6e 63 65 20 22 25 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 ntf('Reference."%s".does.not.exi
a7da0 73 74 2e 27 2c 20 24 76 61 6c 75 65 29 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e st.',.$value),.$this->currentLin
a7dc0 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 66 73 5b 24 76 61 6c 75 65 e);.}..return.$this->refs[$value
a7de0 5d 3b 0a 7d 0a 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 27 2e 73 65 6c 66 3a 3a ];.}..if.(preg_match('/^'.self::
a7e00 46 4f 4c 44 45 44 5f 53 43 41 4c 41 52 5f 50 41 54 54 45 52 4e 2e 27 24 2f 27 2c 20 24 76 61 6c FOLDED_SCALAR_PATTERN.'$/',.$val
a7e20 75 65 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 6d 6f 64 69 66 69 65 72 73 20 3d 20 69 73 ue,.$matches)).{.$modifiers.=.is
a7e40 73 65 74 28 24 6d 61 74 63 68 65 73 5b 27 6d 6f 64 69 66 69 65 72 73 27 5d 29 20 3f 20 24 6d 61 set($matches['modifiers']).?.$ma
a7e60 74 63 68 65 73 5b 27 6d 6f 64 69 66 69 65 72 73 27 5d 20 3a 20 27 27 3b 0a 0a 72 65 74 75 72 6e tches['modifiers'].:.'';..return
a7e80 20 24 74 68 69 73 2d 3e 70 61 72 73 65 46 6f 6c 64 65 64 53 63 61 6c 61 72 28 24 6d 61 74 63 68 .$this->parseFoldedScalar($match
a7ea0 65 73 5b 27 73 65 70 61 72 61 74 6f 72 27 5d 2c 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 es['separator'],.preg_replace('#
a7ec0 5c 64 2b 23 27 2c 20 27 27 2c 20 24 6d 6f 64 69 66 69 65 72 73 29 2c 20 69 6e 74 76 61 6c 28 61 \d+#',.'',.$modifiers),.intval(a
a7ee0 62 73 28 24 6d 6f 64 69 66 69 65 72 73 29 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 bs($modifiers)));.}..try.{.retur
a7f00 6e 20 49 6e 6c 69 6e 65 3a 3a 70 61 72 73 65 28 24 76 61 6c 75 65 2c 20 24 65 78 63 65 70 74 69 n.Inline::parse($value,.$excepti
a7f20 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 onOnInvalidType,.$objectSupport)
a7f40 3b 0a 7d 20 63 61 74 63 68 20 28 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a ;.}.catch.(ParseException.$e).{.
a7f60 24 65 2d 3e 73 65 74 50 61 72 73 65 64 4c 69 6e 65 28 24 74 68 69 73 2d 3e 67 65 74 52 65 61 6c $e->setParsedLine($this->getReal
a7f80 43 75 72 72 65 6e 74 4c 69 6e 65 4e 62 28 29 20 2b 20 31 29 3b 0a 24 65 2d 3e 73 65 74 53 6e 69 CurrentLineNb().+.1);.$e->setSni
a7fa0 70 70 65 74 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 3b 0a 0a 74 68 72 6f 77 ppet($this->currentLine);..throw
a7fc0 20 24 65 3b 0a 7d 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 .$e;.}.}...........private.funct
a7fe0 69 6f 6e 20 70 61 72 73 65 46 6f 6c 64 65 64 53 63 61 6c 61 72 28 24 73 65 70 61 72 61 74 6f 72 ion.parseFoldedScalar($separator
a8000 2c 20 24 69 6e 64 69 63 61 74 6f 72 20 3d 20 27 27 2c 20 24 69 6e 64 65 6e 74 61 74 69 6f 6e 20 ,.$indicator.=.'',.$indentation.
a8020 3d 20 30 29 0a 7b 0a 24 6e 6f 74 45 4f 46 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 =.0).{.$notEOF.=.$this->moveToNe
a8040 78 74 4c 69 6e 65 28 29 3b 0a 69 66 20 28 21 24 6e 6f 74 45 4f 46 29 20 7b 0a 72 65 74 75 72 6e xtLine();.if.(!$notEOF).{.return
a8060 20 27 27 3b 0a 7d 0a 0a 24 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 20 3d 20 24 74 .'';.}..$isCurrentLineBlank.=.$t
a8080 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 28 29 3b 0a 24 74 65 78 74 his->isCurrentLineBlank();.$text
a80a0 20 3d 20 27 27 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 24 6e 6f 74 45 4f 46 20 26 26 20 24 69 73 43 .=.'';....while.($notEOF.&&.$isC
a80c0 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 29 20 7b 0a 0a 20 69 66 20 28 24 6e 6f 74 45 4f 46 urrentLineBlank).{...if.($notEOF
a80e0 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 29 20 7b 0a 24 74 .=.$this->moveToNextLine()).{.$t
a8100 65 78 74 20 2e 3d 20 22 5c 6e 22 3b 0a 24 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b ext..=."\n";.$isCurrentLineBlank
a8120 20 3d 20 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 28 29 3b 0a .=.$this->isCurrentLineBlank();.
a8140 7d 0a 7d 0a 0a 0a 20 69 66 20 28 30 20 3d 3d 3d 20 24 69 6e 64 65 6e 74 61 74 69 6f 6e 29 20 7b }.}....if.(0.===.$indentation).{
a8160 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 20 2b 2f 27 2c 20 24 74 68 69 73 2d 3e .if.(preg_match('/^.+/',.$this->
a8180 63 75 72 72 65 6e 74 4c 69 6e 65 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 24 69 6e 64 65 6e currentLine,.$matches)).{.$inden
a81a0 74 61 74 69 6f 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 65 73 5b 30 5d 29 3b 0a 7d 0a tation.=.strlen($matches[0]);.}.
a81c0 7d 0a 0a 69 66 20 28 24 69 6e 64 65 6e 74 61 74 69 6f 6e 20 3e 20 30 29 20 7b 0a 24 70 61 74 74 }..if.($indentation.>.0).{.$patt
a81e0 65 72 6e 20 3d 20 73 70 72 69 6e 74 66 28 27 2f 5e 20 7b 25 64 7d 28 2e 2a 29 24 2f 27 2c 20 24 ern.=.sprintf('/^.{%d}(.*)$/',.$
a8200 69 6e 64 65 6e 74 61 74 69 6f 6e 29 3b 0a 0a 77 68 69 6c 65 20 28 0a 24 6e 6f 74 45 4f 46 20 26 indentation);..while.(.$notEOF.&
a8220 26 20 28 0a 24 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 20 7c 7c 0a 70 72 65 67 5f &.(.$isCurrentLineBlank.||.preg_
a8240 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e 2c 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 match($pattern,.$this->currentLi
a8260 6e 65 2c 20 24 6d 61 74 63 68 65 73 29 0a 29 0a 29 20 7b 0a 69 66 20 28 24 69 73 43 75 72 72 65 ne,.$matches).).).{.if.($isCurre
a8280 6e 74 4c 69 6e 65 42 6c 61 6e 6b 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 73 75 62 73 74 72 28 24 ntLineBlank).{.$text..=.substr($
a82a0 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 2c 20 24 69 6e 64 65 6e 74 61 74 69 6f 6e 29 this->currentLine,.$indentation)
a82c0 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 65 78 74 20 2e 3d 20 24 6d 61 74 63 68 65 73 5b 31 5d 3b ;.}.else.{.$text..=.$matches[1];
a82e0 0a 7d 0a 0a 0a 20 69 66 20 28 24 6e 6f 74 45 4f 46 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 76 65 54 .}....if.($notEOF.=.$this->moveT
a8300 6f 4e 65 78 74 4c 69 6e 65 28 29 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 22 5c 6e 22 3b 0a 24 69 oNextLine()).{.$text..=."\n";.$i
a8320 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 20 3d 20 24 74 68 69 73 2d 3e 69 73 43 75 72 sCurrentLineBlank.=.$this->isCur
a8340 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 28 29 3b 0a 7d 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 rentLineBlank();.}.}.}.elseif.($
a8360 6e 6f 74 45 4f 46 29 20 7b 0a 24 74 65 78 74 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 0a 69 66 20 28 notEOF).{.$text..=."\n";.}..if.(
a8380 24 6e 6f 74 45 4f 46 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 50 72 65 76 69 6f 75 73 $notEOF).{.$this->moveToPrevious
a83a0 4c 69 6e 65 28 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 27 3e 27 20 3d 3d 3d 20 24 73 65 70 61 72 61 Line();.}....if.('>'.===.$separa
a83c0 74 6f 72 29 20 7b 0a 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 28 5c 6e 2a 29 24 2f 27 2c 20 24 74 tor).{.preg_match('/(\n*)$/',.$t
a83e0 65 78 74 2c 20 24 6d 61 74 63 68 65 73 29 3b 0a 24 74 65 78 74 20 3d 20 70 72 65 67 5f 72 65 70 ext,.$matches);.$text.=.preg_rep
a8400 6c 61 63 65 28 27 2f 28 3f 3c 21 5c 6e 29 5c 6e 28 3f 21 5c 6e 29 2f 27 2c 20 27 20 27 2c 20 72 lace('/(?<!\n)\n(?!\n)/',.'.',.r
a8420 74 72 69 6d 28 24 74 65 78 74 2c 20 22 5c 6e 22 29 29 3b 0a 24 74 65 78 74 20 2e 3d 20 24 6d 61 trim($text,."\n"));.$text..=.$ma
a8440 74 63 68 65 73 5b 31 5d 3b 0a 7d 0a 0a 0a 20 69 66 20 28 27 27 20 3d 3d 3d 20 24 69 6e 64 69 63 tches[1];.}....if.(''.===.$indic
a8460 61 74 6f 72 29 20 7b 0a 24 74 65 78 74 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c ator).{.$text.=.preg_replace('/\
a8480 6e 2b 24 2f 73 27 2c 20 22 5c 6e 22 2c 20 24 74 65 78 74 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 n+$/s',."\n",.$text);.}.elseif.(
a84a0 27 2d 27 20 3d 3d 3d 20 24 69 6e 64 69 63 61 74 6f 72 29 20 7b 0a 24 74 65 78 74 20 3d 20 70 72 '-'.===.$indicator).{.$text.=.pr
a84c0 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c 6e 2b 24 2f 73 27 2c 20 27 27 2c 20 24 74 65 78 74 29 eg_replace('/\n+$/s',.'',.$text)
a84e0 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 ;.}..return.$text;.}.......priva
a8500 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 4e 65 78 74 4c 69 6e 65 49 6e 64 65 6e 74 65 64 28 29 te.function.isNextLineIndented()
a8520 0a 7b 0a 24 63 75 72 72 65 6e 74 49 6e 64 65 6e 74 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e .{.$currentIndentation.=.$this->
a8540 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 6f 6e 28 29 3b 0a 24 45 4f getCurrentLineIndentation();.$EO
a8560 46 20 3d 20 21 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 3b 0a 0a 77 F.=.!$this->moveToNextLine();..w
a8580 68 69 6c 65 20 28 21 24 45 4f 46 20 26 26 20 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c hile.(!$EOF.&&.$this->isCurrentL
a85a0 69 6e 65 45 6d 70 74 79 28 29 29 20 7b 0a 24 45 4f 46 20 3d 20 21 24 74 68 69 73 2d 3e 6d 6f 76 ineEmpty()).{.$EOF.=.!$this->mov
a85c0 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 24 45 4f 46 29 20 7b 0a 72 65 eToNextLine();.}..if.($EOF).{.re
a85e0 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 24 72 65 74 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 turn.false;.}..$ret.=.false;.if.
a8600 28 24 74 68 69 73 2d 3e 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 6f ($this->getCurrentLineIndentatio
a8620 6e 28 29 20 3e 20 24 63 75 72 72 65 6e 74 49 6e 64 65 6e 74 61 74 69 6f 6e 29 20 7b 0a 24 72 65 n().>.$currentIndentation).{.$re
a8640 74 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 50 72 65 76 69 6f t.=.true;.}..$this->moveToPrevio
a8660 75 73 4c 69 6e 65 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a usLine();..return.$ret;.}.......
a8680 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 45 6d private.function.isCurrentLineEm
a86a0 70 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c pty().{.return.$this->isCurrentL
a86c0 69 6e 65 42 6c 61 6e 6b 28 29 20 7c 7c 20 24 74 68 69 73 2d 3e 69 73 43 75 72 72 65 6e 74 4c 69 ineBlank().||.$this->isCurrentLi
a86e0 6e 65 43 6f 6d 6d 65 6e 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e neComment();.}.......private.fun
a8700 63 74 69 6f 6e 20 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 42 6c 61 6e 6b 28 29 0a 7b 0a 72 65 74 ction.isCurrentLineBlank().{.ret
a8720 75 72 6e 20 27 27 20 3d 3d 20 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e urn.''.==.trim($this->currentLin
a8740 65 2c 20 27 20 27 29 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 e,.'.');.}.......private.functio
a8760 6e 20 69 73 43 75 72 72 65 6e 74 4c 69 6e 65 43 6f 6d 6d 65 6e 74 28 29 0a 7b 0a 0a 20 24 6c 74 n.isCurrentLineComment().{...$lt
a8780 72 69 6d 6d 65 64 4c 69 6e 65 20 3d 20 6c 74 72 69 6d 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e rimmedLine.=.ltrim($this->curren
a87a0 74 4c 69 6e 65 2c 20 27 20 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 74 72 69 6d 6d 65 64 4c 69 tLine,.'.');..return.$ltrimmedLi
a87c0 6e 65 5b 30 5d 20 3d 3d 3d 20 27 23 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 ne[0].===.'#';.}.........private
a87e0 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 28 24 76 61 6c 75 65 29 0a 7b 0a 24 76 61 6c .function.cleanup($value).{.$val
a8800 75 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 61 72 72 61 79 28 22 5c 72 5c 6e 22 2c 20 22 ue.=.str_replace(array("\r\n",."
a8820 5c 72 22 29 2c 20 22 5c 6e 22 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 20 24 63 6f 75 6e 74 20 3d \r"),."\n",.$value);....$count.=
a8840 20 30 3b 0a 24 76 61 6c 75 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5e 5c 25 59 .0;.$value.=.preg_replace('#^\%Y
a8860 41 4d 4c 5b 3a 20 5d 5b 5c 64 5c 2e 5d 2b 2e 2a 5c 6e 23 73 75 27 2c 20 27 27 2c 20 24 76 61 6c AML[:.][\d\.]+.*\n#su',.'',.$val
a8880 75 65 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b 0a 24 74 68 69 73 2d 3e 6f 66 66 73 65 74 20 2b ue,.-1,.$count);.$this->offset.+
a88a0 3d 20 24 63 6f 75 6e 74 3b 0a 0a 0a 20 24 74 72 69 6d 6d 65 64 56 61 6c 75 65 20 3d 20 70 72 65 =.$count;....$trimmedValue.=.pre
a88c0 67 5f 72 65 70 6c 61 63 65 28 27 23 5e 28 5c 23 2e 2a 3f 5c 6e 29 2b 23 73 27 2c 20 27 27 2c 20 g_replace('#^(\#.*?\n)+#s',.'',.
a88e0 24 76 61 6c 75 65 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b 0a 69 66 20 28 24 63 6f 75 6e 74 20 $value,.-1,.$count);.if.($count.
a8900 3d 3d 20 31 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6f 66 66 73 65 74 20 2b 3d 20 73 75 62 73 74 ==.1).{...$this->offset.+=.subst
a8920 72 5f 63 6f 75 6e 74 28 24 76 61 6c 75 65 2c 20 22 5c 6e 22 29 20 2d 20 73 75 62 73 74 72 5f 63 r_count($value,."\n").-.substr_c
a8940 6f 75 6e 74 28 24 74 72 69 6d 6d 65 64 56 61 6c 75 65 2c 20 22 5c 6e 22 29 3b 0a 24 76 61 6c 75 ount($trimmedValue,."\n");.$valu
a8960 65 20 3d 20 24 74 72 69 6d 6d 65 64 56 61 6c 75 65 3b 0a 7d 0a 0a 0a 20 24 74 72 69 6d 6d 65 64 e.=.$trimmedValue;.}....$trimmed
a8980 56 61 6c 75 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5e 5c 2d 5c 2d 5c 2d 2e 2a Value.=.preg_replace('#^\-\-\-.*
a89a0 3f 5c 6e 23 73 27 2c 20 27 27 2c 20 24 76 61 6c 75 65 2c 20 2d 31 2c 20 24 63 6f 75 6e 74 29 3b ?\n#s',.'',.$value,.-1,.$count);
a89c0 0a 69 66 20 28 24 63 6f 75 6e 74 20 3d 3d 20 31 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 6f 66 66 .if.($count.==.1).{...$this->off
a89e0 73 65 74 20 2b 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 76 61 6c 75 65 2c 20 22 5c 6e 22 set.+=.substr_count($value,."\n"
a8a00 29 20 2d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 74 72 69 6d 6d 65 64 56 61 6c 75 65 2c 20 ).-.substr_count($trimmedValue,.
a8a20 22 5c 6e 22 29 3b 0a 24 76 61 6c 75 65 20 3d 20 24 74 72 69 6d 6d 65 64 56 61 6c 75 65 3b 0a 0a "\n");.$value.=.$trimmedValue;..
a8a40 0a 20 24 76 61 6c 75 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 28 27 23 5c 2e 5c 2e 5c 2e ..$value.=.preg_replace('#\.\.\.
a8a60 5c 73 2a 24 23 73 27 2c 20 27 27 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 \s*$#s',.'',.$value);.}..return.
a8a80 24 76 61 6c 75 65 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 6e $value;.}.......private.function
a8aa0 20 69 73 4e 65 78 74 4c 69 6e 65 55 6e 49 6e 64 65 6e 74 65 64 43 6f 6c 6c 65 63 74 69 6f 6e 28 .isNextLineUnIndentedCollection(
a8ac0 29 0a 7b 0a 24 63 75 72 72 65 6e 74 49 6e 64 65 6e 74 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d ).{.$currentIndentation.=.$this-
a8ae0 3e 67 65 74 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 6f 6e 28 29 3b 0a 24 6e >getCurrentLineIndentation();.$n
a8b00 6f 74 45 4f 46 20 3d 20 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 3b otEOF.=.$this->moveToNextLine();
a8b20 0a 0a 77 68 69 6c 65 20 28 24 6e 6f 74 45 4f 46 20 26 26 20 24 74 68 69 73 2d 3e 69 73 43 75 72 ..while.($notEOF.&&.$this->isCur
a8b40 72 65 6e 74 4c 69 6e 65 45 6d 70 74 79 28 29 29 20 7b 0a 24 6e 6f 74 45 4f 46 20 3d 20 24 74 68 rentLineEmpty()).{.$notEOF.=.$th
a8b60 69 73 2d 3e 6d 6f 76 65 54 6f 4e 65 78 74 4c 69 6e 65 28 29 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c is->moveToNextLine();.}..if.(fal
a8b80 73 65 20 3d 3d 3d 20 24 6e 6f 74 45 4f 46 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a se.===.$notEOF).{.return.false;.
a8ba0 7d 0a 0a 24 72 65 74 20 3d 20 66 61 6c 73 65 3b 0a 69 66 20 28 0a 24 74 68 69 73 2d 3e 67 65 74 }..$ret.=.false;.if.(.$this->get
a8bc0 43 75 72 72 65 6e 74 4c 69 6e 65 49 6e 64 65 6e 74 61 74 69 6f 6e 28 29 20 3d 3d 20 24 63 75 72 CurrentLineIndentation().==.$cur
a8be0 72 65 6e 74 49 6e 64 65 6e 74 61 74 69 6f 6e 0a 26 26 0a 24 74 68 69 73 2d 3e 69 73 53 74 72 69 rentIndentation.&&.$this->isStri
a8c00 6e 67 55 6e 49 6e 64 65 6e 74 65 64 43 6f 6c 6c 65 63 74 69 6f 6e 49 74 65 6d 28 24 74 68 69 73 ngUnIndentedCollectionItem($this
a8c20 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 29 0a 29 20 7b 0a 24 72 65 74 20 3d 20 74 72 75 65 3b 0a ->currentLine).).{.$ret.=.true;.
a8c40 7d 0a 0a 24 74 68 69 73 2d 3e 6d 6f 76 65 54 6f 50 72 65 76 69 6f 75 73 4c 69 6e 65 28 29 3b 0a }..$this->moveToPreviousLine();.
a8c60 0a 72 65 74 75 72 6e 20 24 72 65 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 .return.$ret;.}.......private.fu
a8c80 6e 63 74 69 6f 6e 20 69 73 53 74 72 69 6e 67 55 6e 49 6e 64 65 6e 74 65 64 43 6f 6c 6c 65 63 74 nction.isStringUnIndentedCollect
a8ca0 69 6f 6e 49 74 65 6d 28 29 0a 7b 0a 72 65 74 75 72 6e 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 ionItem().{.return.(0.===.strpos
a8cc0 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 4c 69 6e 65 2c 20 27 2d 20 27 29 29 3b 0a 7d 0a 0a ($this->currentLine,.'-.'));.}..
a8ce0 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
a8d00 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 ony\Component\Yaml;........class
a8d20 20 55 6e 65 73 63 61 70 65 72 0a 7b 0a 0a 20 0a 20 63 6f 6e 73 74 20 45 4e 43 4f 44 49 4e 47 20 .Unescaper.{.....const.ENCODING.
a8d40 3d 20 27 55 54 46 2d 38 27 3b 0a 0a 0a 20 0a 20 63 6f 6e 73 74 20 52 45 47 45 58 5f 45 53 43 41 =.'UTF-8';......const.REGEX_ESCA
a8d60 50 45 44 5f 43 48 41 52 41 43 54 45 52 20 3d 20 22 5c 5c 5c 5c 28 5b 30 61 62 74 5c 74 6e 76 66 PED_CHARACTER.=."\\\\([0abt\tnvf
a8d80 72 65 20 5c 5c 5c 22 5c 5c 2f 5c 5c 5c 5c 4e 5f 4c 50 5d 7c 78 5b 30 2d 39 61 2d 66 41 2d 46 5d re.\\\"\\/\\\\N_LP]|x[0-9a-fA-F]
a8da0 7b 32 7d 7c 75 5b 30 2d 39 61 2d 66 41 2d 46 5d 7b 34 7d 7c 55 5b 30 2d 39 61 2d 66 41 2d 46 5d {2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]
a8dc0 7b 38 7d 29 22 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 75 {8})";.........public.function.u
a8de0 6e 65 73 63 61 70 65 53 69 6e 67 6c 65 51 75 6f 74 65 64 53 74 72 69 6e 67 28 24 76 61 6c 75 65 nescapeSingleQuotedString($value
a8e00 29 0a 7b 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 27 5c 27 27 2c 20 27 ).{.return.str_replace('\'\'',.'
a8e20 5c 27 27 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 \'',.$value);.}.........public.f
a8e40 75 6e 63 74 69 6f 6e 20 75 6e 65 73 63 61 70 65 44 6f 75 62 6c 65 51 75 6f 74 65 64 53 74 72 69 unction.unescapeDoubleQuotedStri
a8e60 6e 67 28 24 76 61 6c 75 65 29 0a 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 24 63 61 6c ng($value).{.$self.=.$this;.$cal
a8e80 6c 62 61 63 6b 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 29 20 75 73 65 20 28 24 lback.=.function.($match).use.($
a8ea0 73 65 6c 66 29 20 7b 0a 72 65 74 75 72 6e 20 24 73 65 6c 66 2d 3e 75 6e 65 73 63 61 70 65 43 68 self).{.return.$self->unescapeCh
a8ec0 61 72 61 63 74 65 72 28 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 3b 0a 0a 0a 20 72 65 74 75 72 6e aracter($match[0]);.};....return
a8ee0 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 27 2e 73 65 6c 66 3a .preg_replace_callback('/'.self:
a8f00 3a 52 45 47 45 58 5f 45 53 43 41 50 45 44 5f 43 48 41 52 41 43 54 45 52 2e 27 2f 75 27 2c 20 24 :REGEX_ESCAPED_CHARACTER.'/u',.$
a8f20 63 61 6c 6c 62 61 63 6b 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 callback,.$value);.}.........pub
a8f40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 65 73 63 61 70 65 43 68 61 72 61 63 74 65 72 28 24 lic.function.unescapeCharacter($
a8f60 76 61 6c 75 65 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 76 61 6c 75 65 7b 31 7d 29 20 7b 0a 63 61 value).{.switch.($value{1}).{.ca
a8f80 73 65 20 27 30 27 3a 0a 72 65 74 75 72 6e 20 22 5c 78 30 22 3b 0a 63 61 73 65 20 27 61 27 3a 0a se.'0':.return."\x0";.case.'a':.
a8fa0 72 65 74 75 72 6e 20 22 5c 78 37 22 3b 0a 63 61 73 65 20 27 62 27 3a 0a 72 65 74 75 72 6e 20 22 return."\x7";.case.'b':.return."
a8fc0 5c 78 38 22 3b 0a 63 61 73 65 20 27 74 27 3a 0a 72 65 74 75 72 6e 20 22 5c 74 22 3b 0a 63 61 73 \x8";.case.'t':.return."\t";.cas
a8fe0 65 20 22 5c 74 22 3a 0a 72 65 74 75 72 6e 20 22 5c 74 22 3b 0a 63 61 73 65 20 27 6e 27 3a 0a 72 e."\t":.return."\t";.case.'n':.r
a9000 65 74 75 72 6e 20 22 5c 6e 22 3b 0a 63 61 73 65 20 27 76 27 3a 0a 72 65 74 75 72 6e 20 22 5c 78 eturn."\n";.case.'v':.return."\x
a9020 62 22 3b 0a 63 61 73 65 20 27 66 27 3a 0a 72 65 74 75 72 6e 20 22 5c 78 63 22 3b 0a 63 61 73 65 b";.case.'f':.return."\xc";.case
a9040 20 27 72 27 3a 0a 72 65 74 75 72 6e 20 22 5c 78 64 22 3b 0a 63 61 73 65 20 27 65 27 3a 0a 72 65 .'r':.return."\xd";.case.'e':.re
a9060 74 75 72 6e 20 22 5c 78 31 62 22 3b 0a 63 61 73 65 20 27 20 27 3a 0a 72 65 74 75 72 6e 20 27 20 turn."\x1b";.case.'.':.return.'.
a9080 27 3b 0a 63 61 73 65 20 27 22 27 3a 0a 72 65 74 75 72 6e 20 27 22 27 3b 0a 63 61 73 65 20 27 2f ';.case.'"':.return.'"';.case.'/
a90a0 27 3a 0a 72 65 74 75 72 6e 20 27 2f 27 3b 0a 63 61 73 65 20 27 5c 5c 27 3a 0a 72 65 74 75 72 6e ':.return.'/';.case.'\\':.return
a90c0 20 27 5c 5c 27 3b 0a 63 61 73 65 20 27 4e 27 3a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d .'\\';.case.'N':...return.$this-
a90e0 3e 63 6f 6e 76 65 72 74 45 6e 63 6f 64 69 6e 67 28 22 5c 78 30 30 5c 78 38 35 22 2c 20 73 65 6c >convertEncoding("\x00\x85",.sel
a9100 66 3a 3a 45 4e 43 4f 44 49 4e 47 2c 20 27 55 43 53 2d 32 42 45 27 29 3b 0a 63 61 73 65 20 27 5f f::ENCODING,.'UCS-2BE');.case.'_
a9120 27 3a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 76 65 72 74 45 6e 63 6f 64 69 ':...return.$this->convertEncodi
a9140 6e 67 28 22 5c 78 30 30 5c 78 41 30 22 2c 20 73 65 6c 66 3a 3a 45 4e 43 4f 44 49 4e 47 2c 20 27 ng("\x00\xA0",.self::ENCODING,.'
a9160 55 43 53 2d 32 42 45 27 29 3b 0a 63 61 73 65 20 27 4c 27 3a 0a 0a 20 72 65 74 75 72 6e 20 24 74 UCS-2BE');.case.'L':...return.$t
a9180 68 69 73 2d 3e 63 6f 6e 76 65 72 74 45 6e 63 6f 64 69 6e 67 28 22 5c 78 32 30 5c 78 32 38 22 2c his->convertEncoding("\x20\x28",
a91a0 20 73 65 6c 66 3a 3a 45 4e 43 4f 44 49 4e 47 2c 20 27 55 43 53 2d 32 42 45 27 29 3b 0a 63 61 73 .self::ENCODING,.'UCS-2BE');.cas
a91c0 65 20 27 50 27 3a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 76 65 72 74 45 6e e.'P':...return.$this->convertEn
a91e0 63 6f 64 69 6e 67 28 22 5c 78 32 30 5c 78 32 39 22 2c 20 73 65 6c 66 3a 3a 45 4e 43 4f 44 49 4e coding("\x20\x29",.self::ENCODIN
a9200 47 2c 20 27 55 43 53 2d 32 42 45 27 29 3b 0a 63 61 73 65 20 27 78 27 3a 0a 24 63 68 61 72 20 3d G,.'UCS-2BE');.case.'x':.$char.=
a9220 20 70 61 63 6b 28 27 6e 27 2c 20 68 65 78 64 65 63 28 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c .pack('n',.hexdec(substr($value,
a9240 20 32 2c 20 32 29 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 76 65 72 74 .2,.2)));..return.$this->convert
a9260 45 6e 63 6f 64 69 6e 67 28 24 63 68 61 72 2c 20 73 65 6c 66 3a 3a 45 4e 43 4f 44 49 4e 47 2c 20 Encoding($char,.self::ENCODING,.
a9280 27 55 43 53 2d 32 42 45 27 29 3b 0a 63 61 73 65 20 27 75 27 3a 0a 24 63 68 61 72 20 3d 20 70 61 'UCS-2BE');.case.'u':.$char.=.pa
a92a0 63 6b 28 27 6e 27 2c 20 68 65 78 64 65 63 28 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c 20 32 2c ck('n',.hexdec(substr($value,.2,
a92c0 20 34 29 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 76 65 72 74 45 6e 63 .4)));..return.$this->convertEnc
a92e0 6f 64 69 6e 67 28 24 63 68 61 72 2c 20 73 65 6c 66 3a 3a 45 4e 43 4f 44 49 4e 47 2c 20 27 55 43 oding($char,.self::ENCODING,.'UC
a9300 53 2d 32 42 45 27 29 3b 0a 63 61 73 65 20 27 55 27 3a 0a 24 63 68 61 72 20 3d 20 70 61 63 6b 28 S-2BE');.case.'U':.$char.=.pack(
a9320 27 4e 27 2c 20 68 65 78 64 65 63 28 73 75 62 73 74 72 28 24 76 61 6c 75 65 2c 20 32 2c 20 38 29 'N',.hexdec(substr($value,.2,.8)
a9340 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6e 76 65 72 74 45 6e 63 6f 64 69 ));..return.$this->convertEncodi
a9360 6e 67 28 24 63 68 61 72 2c 20 73 65 6c 66 3a 3a 45 4e 43 4f 44 49 4e 47 2c 20 27 55 43 53 2d 34 ng($char,.self::ENCODING,.'UCS-4
a9380 42 45 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 BE');.}.}.............private.fu
a93a0 6e 63 74 69 6f 6e 20 63 6f 6e 76 65 72 74 45 6e 63 6f 64 69 6e 67 28 24 76 61 6c 75 65 2c 20 24 nction.convertEncoding($value,.$
a93c0 74 6f 2c 20 24 66 72 6f 6d 29 0a 7b 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 to,.$from).{.if.(function_exists
a93e0 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 72 65 74 75 72 ('mb_convert_encoding')).{.retur
a9400 6e 20 6d 62 5f 63 6f 6e 76 65 72 74 5f 65 6e 63 6f 64 69 6e 67 28 24 76 61 6c 75 65 2c 20 24 74 n.mb_convert_encoding($value,.$t
a9420 6f 2c 20 24 66 72 6f 6d 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 o,.$from);.}.elseif.(function_ex
a9440 69 73 74 73 28 27 69 63 6f 6e 76 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 69 63 6f 6e 76 28 24 66 ists('iconv')).{.return.iconv($f
a9460 72 6f 6d 2c 20 24 74 6f 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 rom,.$to,.$value);.}..throw.new.
a9480 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 73 75 69 74 61 62 6c 65 20 63 \RuntimeException('No.suitable.c
a94a0 6f 6e 76 65 72 74 20 65 6e 63 6f 64 69 6e 67 20 66 75 6e 63 74 69 6f 6e 20 28 69 6e 73 74 61 6c onvert.encoding.function.(instal
a94c0 6c 20 74 68 65 20 69 63 6f 6e 76 20 6f 72 20 6d 62 73 74 72 69 6e 67 20 65 78 74 65 6e 73 69 6f l.the.iconv.or.mbstring.extensio
a94e0 6e 29 2e 27 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 n).');.}.}.<?php...........names
a9500 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 3b 0a 0a 75 73 pace.Symfony\Component\Yaml;..us
a9520 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 63 65 70 74 69 e.Symfony\Component\Yaml\Excepti
a9540 6f 6e 5c 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 on\ParseException;.........class
a9560 20 59 61 6d 6c 0a 7b 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 .Yaml.{.........................
a9580 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 28 24 ..public.static.function.parse($
a95a0 69 6e 70 75 74 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 20 3d input,.$exceptionOnInvalidType.=
a95c0 20 66 61 6c 73 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 20 3d 20 66 61 6c 73 65 29 0a .false,.$objectSupport.=.false).
a95e0 7b 0a 0a 20 24 66 69 6c 65 20 3d 20 27 27 3b 0a 69 66 20 28 73 74 72 70 6f 73 28 24 69 6e 70 75 {...$file.=.'';.if.(strpos($inpu
a9600 74 2c 20 22 5c 6e 22 29 20 3d 3d 3d 20 66 61 6c 73 65 20 26 26 20 69 73 5f 66 69 6c 65 28 24 69 t,."\n").===.false.&&.is_file($i
a9620 6e 70 75 74 29 29 20 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 69 73 5f 72 65 61 64 61 62 nput)).{.if.(false.===.is_readab
a9640 6c 65 28 24 69 6e 70 75 74 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 le($input)).{.throw.new.ParseExc
a9660 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 61 62 6c 65 20 74 6f 20 70 61 72 73 65 20 eption(sprintf('Unable.to.parse.
a9680 22 25 73 22 20 61 73 20 74 68 65 20 66 69 6c 65 20 69 73 20 6e 6f 74 20 72 65 61 64 61 62 6c 65 "%s".as.the.file.is.not.readable
a96a0 2e 27 2c 20 24 69 6e 70 75 74 29 29 3b 0a 7d 0a 0a 24 66 69 6c 65 20 3d 20 24 69 6e 70 75 74 3b .',.$input));.}..$file.=.$input;
a96c0 0a 24 69 6e 70 75 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 66 69 6c .$input.=.file_get_contents($fil
a96e0 65 29 3b 0a 7d 0a 0a 24 79 61 6d 6c 20 3d 20 6e 65 77 20 50 61 72 73 65 72 28 29 3b 0a 0a 74 72 e);.}..$yaml.=.new.Parser();..tr
a9700 79 20 7b 0a 72 65 74 75 72 6e 20 24 79 61 6d 6c 2d 3e 70 61 72 73 65 28 24 69 6e 70 75 74 2c 20 y.{.return.$yaml->parse($input,.
a9720 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 $exceptionOnInvalidType,.$object
a9740 53 75 70 70 6f 72 74 29 3b 0a 7d 20 63 61 74 63 68 20 28 50 61 72 73 65 45 78 63 65 70 74 69 6f Support);.}.catch.(ParseExceptio
a9760 6e 20 24 65 29 20 7b 0a 69 66 20 28 24 66 69 6c 65 29 20 7b 0a 24 65 2d 3e 73 65 74 50 61 72 73 n.$e).{.if.($file).{.$e->setPars
a9780 65 64 46 69 6c 65 28 24 66 69 6c 65 29 3b 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a edFile($file);.}..throw.$e;.}.}.
a97a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 .................public.static.f
a97c0 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 24 61 72 72 61 79 2c 20 24 69 6e 6c 69 6e 65 20 3d 20 32 unction.dump($array,.$inline.=.2
a97e0 2c 20 24 69 6e 64 65 6e 74 20 3d 20 34 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c ,.$indent.=.4,.$exceptionOnInval
a9800 69 64 54 79 70 65 20 3d 20 66 61 6c 73 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 20 3d idType.=.false,.$objectSupport.=
a9820 20 66 61 6c 73 65 29 0a 7b 0a 24 79 61 6d 6c 20 3d 20 6e 65 77 20 44 75 6d 70 65 72 28 29 3b 0a .false).{.$yaml.=.new.Dumper();.
a9840 24 79 61 6d 6c 2d 3e 73 65 74 49 6e 64 65 6e 74 61 74 69 6f 6e 28 24 69 6e 64 65 6e 74 29 3b 0a $yaml->setIndentation($indent);.
a9860 0a 72 65 74 75 72 6e 20 24 79 61 6d 6c 2d 3e 64 75 6d 70 28 24 61 72 72 61 79 2c 20 24 69 6e 6c .return.$yaml->dump($array,.$inl
a9880 69 6e 65 2c 20 30 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c ine,.0,.$exceptionOnInvalidType,
a98a0 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a .$objectSupport);.}.}.<?php.....
a98c0 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
a98e0 74 5c 59 61 6d 6c 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 75 6d 70 65 72 0a 7b 0a 0a 0a 0a t\Yaml;.......class.Dumper.{....
a9900 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 64 65 6e 74 61 74 69 6f 6e 20 3d 20 34 3b 0a 0a 0a ..protected.$indentation.=.4;...
a9920 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 64 65 6e 74 61 74 69 ....public.function.setIndentati
a9940 6f 6e 28 24 6e 75 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 61 74 69 6f 6e 20 3d 20 on($num).{.$this->indentation.=.
a9960 28 69 6e 74 29 20 24 6e 75 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 (int).$num;.}.............public
a9980 20 66 75 6e 63 74 69 6f 6e 20 64 75 6d 70 28 24 69 6e 70 75 74 2c 20 24 69 6e 6c 69 6e 65 20 3d .function.dump($input,.$inline.=
a99a0 20 30 2c 20 24 69 6e 64 65 6e 74 20 3d 20 30 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 .0,.$indent.=.0,.$exceptionOnInv
a99c0 61 6c 69 64 54 79 70 65 20 3d 20 66 61 6c 73 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 alidType.=.false,.$objectSupport
a99e0 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6f 75 74 70 75 74 20 3d 20 27 27 3b 0a 24 70 72 65 66 69 .=.false).{.$output.=.'';.$prefi
a9a00 78 20 3d 20 24 69 6e 64 65 6e 74 20 3f 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 69 x.=.$indent.?.str_repeat('.',.$i
a9a20 6e 64 65 6e 74 29 20 3a 20 27 27 3b 0a 0a 69 66 20 28 24 69 6e 6c 69 6e 65 20 3c 3d 20 30 20 7c ndent).:.'';..if.($inline.<=.0.|
a9a40 7c 20 21 69 73 5f 61 72 72 61 79 28 24 69 6e 70 75 74 29 20 7c 7c 20 65 6d 70 74 79 28 24 69 6e |.!is_array($input).||.empty($in
a9a60 70 75 74 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 2e 3d 20 24 70 72 65 66 69 78 2e 49 6e 6c 69 6e put)).{.$output..=.$prefix.Inlin
a9a80 65 3a 3a 64 75 6d 70 28 24 69 6e 70 75 74 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 e::dump($input,.$exceptionOnInva
a9aa0 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 20 65 6c 73 65 lidType,.$objectSupport);.}.else
a9ac0 20 7b 0a 24 69 73 41 48 61 73 68 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 69 6e 70 75 74 29 .{.$isAHash.=.array_keys($input)
a9ae0 20 21 3d 3d 20 72 61 6e 67 65 28 30 2c 20 63 6f 75 6e 74 28 24 69 6e 70 75 74 29 20 2d 20 31 29 .!==.range(0,.count($input).-.1)
a9b00 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 69 6e 70 75 74 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 ;..foreach.($input.as.$key.=>.$v
a9b20 61 6c 75 65 29 20 7b 0a 24 77 69 6c 6c 42 65 49 6e 6c 69 6e 65 64 20 3d 20 24 69 6e 6c 69 6e 65 alue).{.$willBeInlined.=.$inline
a9b40 20 2d 20 31 20 3c 3d 20 30 20 7c 7c 20 21 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 20 7c .-.1.<=.0.||.!is_array($value).|
a9b60 7c 20 65 6d 70 74 79 28 24 76 61 6c 75 65 29 3b 0a 0a 24 6f 75 74 70 75 74 20 2e 3d 20 73 70 72 |.empty($value);..$output..=.spr
a9b80 69 6e 74 66 28 27 25 73 25 73 25 73 25 73 27 2c 0a 24 70 72 65 66 69 78 2c 0a 24 69 73 41 48 61 intf('%s%s%s%s',.$prefix,.$isAHa
a9ba0 73 68 20 3f 20 49 6e 6c 69 6e 65 3a 3a 64 75 6d 70 28 24 6b 65 79 2c 20 24 65 78 63 65 70 74 69 sh.?.Inline::dump($key,.$excepti
a9bc0 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 onOnInvalidType,.$objectSupport)
a9be0 2e 27 3a 27 20 3a 20 27 2d 27 2c 0a 24 77 69 6c 6c 42 65 49 6e 6c 69 6e 65 64 20 3f 20 27 20 27 .':'.:.'-',.$willBeInlined.?.'.'
a9c00 20 3a 20 22 5c 6e 22 2c 0a 24 74 68 69 73 2d 3e 64 75 6d 70 28 24 76 61 6c 75 65 2c 20 24 69 6e .:."\n",.$this->dump($value,.$in
a9c20 6c 69 6e 65 20 2d 20 31 2c 20 24 77 69 6c 6c 42 65 49 6e 6c 69 6e 65 64 20 3f 20 30 20 3a 20 24 line.-.1,.$willBeInlined.?.0.:.$
a9c40 69 6e 64 65 6e 74 20 2b 20 24 74 68 69 73 2d 3e 69 6e 64 65 6e 74 61 74 69 6f 6e 2c 20 24 65 78 indent.+.$this->indentation,.$ex
a9c60 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 ceptionOnInvalidType,.$objectSup
a9c80 70 6f 72 74 29 0a 29 2e 28 24 77 69 6c 6c 42 65 49 6e 6c 69 6e 65 64 20 3f 20 22 5c 6e 22 20 3a port).).($willBeInlined.?."\n".:
a9ca0 20 27 27 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c .'');.}.}..return.$output;.}.}.<
a9cc0 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
a9ce0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 69 66 20 28 \Component\Yaml\Exception;..if.(
a9d00 21 64 65 66 69 6e 65 64 28 27 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 !defined('JSON_UNESCAPED_UNICODE
a9d20 27 29 29 20 7b 0a 64 65 66 69 6e 65 28 27 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 ')).{.define('JSON_UNESCAPED_SLA
a9d40 53 48 45 53 27 2c 20 36 34 29 3b 0a 64 65 66 69 6e 65 28 27 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 SHES',.64);.define('JSON_UNESCAP
a9d60 45 44 5f 55 4e 49 43 4f 44 45 27 2c 20 32 35 36 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 ED_UNICODE',.256);.}.........cla
a9d80 73 73 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 6d ss.ParseException.extends.Runtim
a9da0 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 61 72 73 65 64 46 69 6c 65 eException.{.private.$parsedFile
a9dc0 3b 0a 70 72 69 76 61 74 65 20 24 70 61 72 73 65 64 4c 69 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 ;.private.$parsedLine;.private.$
a9de0 73 6e 69 70 70 65 74 3b 0a 70 72 69 76 61 74 65 20 24 72 61 77 4d 65 73 73 61 67 65 3b 0a 0a 0a snippet;.private.$rawMessage;...
a9e00 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
a9e20 75 63 74 28 24 6d 65 73 73 61 67 65 2c 20 24 70 61 72 73 65 64 4c 69 6e 65 20 3d 20 2d 31 2c 20 uct($message,.$parsedLine.=.-1,.
a9e40 24 73 6e 69 70 70 65 74 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 72 73 65 64 46 69 6c 65 20 3d 20 6e $snippet.=.null,.$parsedFile.=.n
a9e60 75 6c 6c 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f 75 73 20 3d 20 6e 75 6c 6c ull,.\Exception.$previous.=.null
a9e80 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 64 46 69 6c 65 20 3d 20 24 70 61 72 73 65 64 46 ).{.$this->parsedFile.=.$parsedF
a9ea0 69 6c 65 3b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 64 4c 69 6e 65 20 3d 20 24 70 61 72 73 65 64 ile;.$this->parsedLine.=.$parsed
a9ec0 4c 69 6e 65 3b 0a 24 74 68 69 73 2d 3e 73 6e 69 70 70 65 74 20 3d 20 24 73 6e 69 70 70 65 74 3b Line;.$this->snippet.=.$snippet;
a9ee0 0a 24 74 68 69 73 2d 3e 72 61 77 4d 65 73 73 61 67 65 20 3d 20 24 6d 65 73 73 61 67 65 3b 0a 0a .$this->rawMessage.=.$message;..
a9f00 24 74 68 69 73 2d 3e 75 70 64 61 74 65 52 65 70 72 28 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f $this->updateRepr();..parent::__
a9f20 63 6f 6e 73 74 72 75 63 74 28 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 2c 20 30 2c 20 24 70 72 construct($this->message,.0,.$pr
a9f40 65 76 69 6f 75 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 evious);.}.......public.function
a9f60 20 67 65 74 53 6e 69 70 70 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6e .getSnippet().{.return.$this->sn
a9f80 69 70 70 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 73 ippet;.}.......public.function.s
a9fa0 65 74 53 6e 69 70 70 65 74 28 24 73 6e 69 70 70 65 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6e 69 etSnippet($snippet).{.$this->sni
a9fc0 70 70 65 74 20 3d 20 24 73 6e 69 70 70 65 74 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 52 ppet.=.$snippet;..$this->updateR
a9fe0 65 70 72 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 epr();.}.........public.function
aa000 20 67 65 74 50 61 72 73 65 64 46 69 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .getParsedFile().{.return.$this-
aa020 3e 70 61 72 73 65 64 46 69 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 >parsedFile;.}.......public.func
aa040 74 69 6f 6e 20 73 65 74 50 61 72 73 65 64 46 69 6c 65 28 24 70 61 72 73 65 64 46 69 6c 65 29 0a tion.setParsedFile($parsedFile).
aa060 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 64 46 69 6c 65 20 3d 20 24 70 61 72 73 65 64 46 69 6c {.$this->parsedFile.=.$parsedFil
aa080 65 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 65 52 65 70 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a e;..$this->updateRepr();.}......
aa0a0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 73 65 64 4c 69 6e 65 28 29 .public.function.getParsedLine()
aa0c0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 72 73 65 64 4c 69 6e 65 3b 0a 7d 0a 0a .{.return.$this->parsedLine;.}..
aa0e0 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 61 72 73 65 64 4c 69 .....public.function.setParsedLi
aa100 6e 65 28 24 70 61 72 73 65 64 4c 69 6e 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 64 4c ne($parsedLine).{.$this->parsedL
aa120 69 6e 65 20 3d 20 24 70 61 72 73 65 64 4c 69 6e 65 3b 0a 0a 24 74 68 69 73 2d 3e 75 70 64 61 74 ine.=.$parsedLine;..$this->updat
aa140 65 52 65 70 72 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 75 70 64 eRepr();.}..private.function.upd
aa160 61 74 65 52 65 70 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 20 3d 20 24 74 68 ateRepr().{.$this->message.=.$th
aa180 69 73 2d 3e 72 61 77 4d 65 73 73 61 67 65 3b 0a 0a 24 64 6f 74 20 3d 20 66 61 6c 73 65 3b 0a 69 is->rawMessage;..$dot.=.false;.i
aa1a0 66 20 28 27 2e 27 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 f.('.'.===.substr($this->message
aa1c0 2c 20 2d 31 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 20 3d 20 73 75 62 73 74 72 ,.-1)).{.$this->message.=.substr
aa1e0 28 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 2c 20 30 2c 20 2d 31 29 3b 0a 24 64 6f 74 20 3d 20 ($this->message,.0,.-1);.$dot.=.
aa200 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 70 61 72 true;.}..if.(null.!==.$this->par
aa220 73 65 64 46 69 6c 65 29 20 7b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 20 2e 3d 20 73 70 72 sedFile).{.$this->message..=.spr
aa240 69 6e 74 66 28 27 20 69 6e 20 25 73 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 74 68 69 73 intf('.in.%s',.json_encode($this
aa260 2d 3e 70 61 72 73 65 64 46 69 6c 65 2c 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 ->parsedFile,.JSON_UNESCAPED_SLA
aa280 53 48 45 53 20 7c 20 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 29 29 3b SHES.|.JSON_UNESCAPED_UNICODE));
aa2a0 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 4c 69 6e 65 20 3e 3d 20 30 29 20 .}..if.($this->parsedLine.>=.0).
aa2c0 7b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 20 2e 3d 20 73 70 72 69 6e 74 66 28 27 20 61 74 {.$this->message..=.sprintf('.at
aa2e0 20 6c 69 6e 65 20 25 64 27 2c 20 24 74 68 69 73 2d 3e 70 61 72 73 65 64 4c 69 6e 65 29 3b 0a 7d .line.%d',.$this->parsedLine);.}
aa300 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 6e 69 70 70 65 74 29 20 7b 0a 24 74 68 69 73 2d 3e 6d ..if.($this->snippet).{.$this->m
aa320 65 73 73 61 67 65 20 2e 3d 20 73 70 72 69 6e 74 66 28 27 20 28 6e 65 61 72 20 22 25 73 22 29 27 essage..=.sprintf('.(near."%s")'
aa340 2c 20 24 74 68 69 73 2d 3e 73 6e 69 70 70 65 74 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 6f 74 29 20 ,.$this->snippet);.}..if.($dot).
aa360 7b 0a 24 74 68 69 73 2d 3e 6d 65 73 73 61 67 65 20 2e 3d 20 27 2e 27 3b 0a 7d 0a 7d 0a 7d 0a 3c {.$this->message..=.'.';.}.}.}.<
aa380 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
aa3a0 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a \Component\Yaml\Exception;......
aa3c0 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a ...interface.ExceptionInterface.
aa3e0 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 {.}.<?php...........namespace.Sy
aa400 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 63 65 70 74 69 6f 6e 3b 0a mfony\Component\Yaml\Exception;.
aa420 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 65 ........class.RuntimeException.e
aa440 78 74 65 6e 64 73 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 xtends.\RuntimeException.impleme
aa460 6e 74 73 20 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 7d 0a 3c 3f 70 68 70 nts.ExceptionInterface.{.}.<?php
aa480 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d ...........namespace.Symfony\Com
aa4a0 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 ponent\Yaml\Exception;.........c
aa4c0 6c 61 73 73 20 44 75 6d 70 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 52 75 6e 74 69 lass.DumpException.extends.Runti
aa4e0 6d 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a meException.{.}.<?php...........
aa500 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 59 61 6d 6c namespace.Symfony\Component\Yaml
aa520 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 73 63 61 70 65 72 0a 7b 0a 0a 20 63 6f 6e 73 74 ;........class.Escaper.{...const
aa540 20 52 45 47 45 58 5f 43 48 41 52 41 43 54 45 52 5f 54 4f 5f 45 53 43 41 50 45 20 3d 20 22 5b 5c .REGEX_CHARACTER_TO_ESCAPE.=."[\
aa560 5c 78 30 30 2d 5c 5c 78 31 66 5d 7c 5c 78 63 32 5c 78 38 35 7c 5c 78 63 32 5c 78 61 30 7c 5c 78 \x00-\\x1f]|\xc2\x85|\xc2\xa0|\x
aa580 65 32 5c 78 38 30 5c 78 61 38 7c 5c 78 65 32 5c 78 38 30 5c 78 61 39 22 3b 0a 0a 0a 20 0a 20 0a e2\x80\xa8|\xe2\x80\xa9";.......
aa5a0 20 0a 20 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 65 73 63 61 70 65 65 73 20 3d 20 61 72 ...private.static.$escapees.=.ar
aa5c0 72 61 79 28 27 5c 5c 5c 5c 27 2c 20 27 5c 5c 22 27 2c 20 27 22 27 2c 0a 22 5c 78 30 30 22 2c 20 ray('\\\\',.'\\"',.'"',."\x00",.
aa5e0 22 5c 78 30 31 22 2c 20 22 5c 78 30 32 22 2c 20 22 5c 78 30 33 22 2c 20 22 5c 78 30 34 22 2c 20 "\x01",."\x02",."\x03",."\x04",.
aa600 22 5c 78 30 35 22 2c 20 22 5c 78 30 36 22 2c 20 22 5c 78 30 37 22 2c 0a 22 5c 78 30 38 22 2c 20 "\x05",."\x06",."\x07",."\x08",.
aa620 22 5c 78 30 39 22 2c 20 22 5c 78 30 61 22 2c 20 22 5c 78 30 62 22 2c 20 22 5c 78 30 63 22 2c 20 "\x09",."\x0a",."\x0b",."\x0c",.
aa640 22 5c 78 30 64 22 2c 20 22 5c 78 30 65 22 2c 20 22 5c 78 30 66 22 2c 0a 22 5c 78 31 30 22 2c 20 "\x0d",."\x0e",."\x0f",."\x10",.
aa660 22 5c 78 31 31 22 2c 20 22 5c 78 31 32 22 2c 20 22 5c 78 31 33 22 2c 20 22 5c 78 31 34 22 2c 20 "\x11",."\x12",."\x13",."\x14",.
aa680 22 5c 78 31 35 22 2c 20 22 5c 78 31 36 22 2c 20 22 5c 78 31 37 22 2c 0a 22 5c 78 31 38 22 2c 20 "\x15",."\x16",."\x17",."\x18",.
aa6a0 22 5c 78 31 39 22 2c 20 22 5c 78 31 61 22 2c 20 22 5c 78 31 62 22 2c 20 22 5c 78 31 63 22 2c 20 "\x19",."\x1a",."\x1b",."\x1c",.
aa6c0 22 5c 78 31 64 22 2c 20 22 5c 78 31 65 22 2c 20 22 5c 78 31 66 22 2c 0a 22 5c 78 63 32 5c 78 38 "\x1d",."\x1e",."\x1f",."\xc2\x8
aa6e0 35 22 2c 20 22 5c 78 63 32 5c 78 61 30 22 2c 20 22 5c 78 65 32 5c 78 38 30 5c 78 61 38 22 2c 20 5",."\xc2\xa0",."\xe2\x80\xa8",.
aa700 22 5c 78 65 32 5c 78 38 30 5c 78 61 39 22 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 "\xe2\x80\xa9");.private.static.
aa720 24 65 73 63 61 70 65 64 20 3d 20 61 72 72 61 79 28 27 5c 5c 22 27 2c 20 27 5c 5c 5c 5c 27 2c 20 $escaped.=.array('\\"',.'\\\\',.
aa740 27 5c 5c 22 27 2c 0a 22 5c 5c 30 22 2c 20 22 5c 5c 78 30 31 22 2c 20 22 5c 5c 78 30 32 22 2c 20 '\\"',."\\0",."\\x01",."\\x02",.
aa760 22 5c 5c 78 30 33 22 2c 20 22 5c 5c 78 30 34 22 2c 20 22 5c 5c 78 30 35 22 2c 20 22 5c 5c 78 30 "\\x03",."\\x04",."\\x05",."\\x0
aa780 36 22 2c 20 22 5c 5c 61 22 2c 0a 22 5c 5c 62 22 2c 20 22 5c 5c 74 22 2c 20 22 5c 5c 6e 22 2c 20 6",."\\a",."\\b",."\\t",."\\n",.
aa7a0 22 5c 5c 76 22 2c 20 22 5c 5c 66 22 2c 20 22 5c 5c 72 22 2c 20 22 5c 5c 78 30 65 22 2c 20 22 5c "\\v",."\\f",."\\r",."\\x0e",."\
aa7c0 5c 78 30 66 22 2c 0a 22 5c 5c 78 31 30 22 2c 20 22 5c 5c 78 31 31 22 2c 20 22 5c 5c 78 31 32 22 \x0f",."\\x10",."\\x11",."\\x12"
aa7e0 2c 20 22 5c 5c 78 31 33 22 2c 20 22 5c 5c 78 31 34 22 2c 20 22 5c 5c 78 31 35 22 2c 20 22 5c 5c ,."\\x13",."\\x14",."\\x15",."\\
aa800 78 31 36 22 2c 20 22 5c 5c 78 31 37 22 2c 0a 22 5c 5c 78 31 38 22 2c 20 22 5c 5c 78 31 39 22 2c x16",."\\x17",."\\x18",."\\x19",
aa820 20 22 5c 5c 78 31 61 22 2c 20 22 5c 5c 65 22 2c 20 22 5c 5c 78 31 63 22 2c 20 22 5c 5c 78 31 64 ."\\x1a",."\\e",."\\x1c",."\\x1d
aa840 22 2c 20 22 5c 5c 78 31 65 22 2c 20 22 5c 5c 78 31 66 22 2c 0a 22 5c 5c 4e 22 2c 20 22 5c 5c 5f ",."\\x1e",."\\x1f",."\\N",."\\_
aa860 22 2c 20 22 5c 5c 4c 22 2c 20 22 5c 5c 50 22 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ",."\\L",."\\P");.........public
aa880 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 71 75 69 72 65 73 44 6f 75 62 6c 65 51 .static.function.requiresDoubleQ
aa8a0 75 6f 74 69 6e 67 28 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 uoting($value).{.return.preg_mat
aa8c0 63 68 28 27 2f 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 43 48 41 52 41 43 54 45 52 5f 54 4f 5f ch('/'.self::REGEX_CHARACTER_TO_
aa8e0 45 53 43 41 50 45 2e 27 2f 75 27 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a ESCAPE.'/u',.$value);.}.........
aa900 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 57 69 74 public.static.function.escapeWit
aa920 68 44 6f 75 62 6c 65 51 75 6f 74 65 73 28 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 73 hDoubleQuotes($value).{.return.s
aa940 70 72 69 6e 74 66 28 27 22 25 73 22 27 2c 20 73 74 72 5f 72 65 70 6c 61 63 65 28 73 65 6c 66 3a printf('"%s"',.str_replace(self:
aa960 3a 24 65 73 63 61 70 65 65 73 2c 20 73 65 6c 66 3a 3a 24 65 73 63 61 70 65 64 2c 20 24 76 61 6c :$escapees,.self::$escaped,.$val
aa980 75 65 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 ue));.}.........public.static.fu
aa9a0 6e 63 74 69 6f 6e 20 72 65 71 75 69 72 65 73 53 69 6e 67 6c 65 51 75 6f 74 69 6e 67 28 24 76 61 nction.requiresSingleQuoting($va
aa9c0 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5b 20 5c 73 20 lue).{.return.preg_match('/[.\s.
aa9e0 5c 27 20 22 20 5c 3a 20 5c 7b 20 5c 7d 20 5c 5b 20 5c 5d 20 2c 20 26 20 5c 2a 20 5c 23 20 5c 3f \'.".\:.\{.\}.\[.\].,.&.\*.\#.\?
aaa00 5d 20 7c 20 5c 41 5b 20 5c 2d 20 3f 20 7c 20 3c 20 3e 20 3d 20 21 20 25 20 40 20 60 20 5d 2f 78 ].|.\A[.\-.?.|.<.>.=.!.%.@.`.]/x
aaa20 27 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 ',.$value);.}.........public.sta
aaa40 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 57 69 74 68 53 69 6e 67 6c 65 51 75 6f tic.function.escapeWithSingleQuo
aaa60 74 65 73 28 24 76 61 6c 75 65 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 22 27 25 tes($value).{.return.sprintf("'%
aaa80 73 27 22 2c 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 27 27 2c 20 27 5c 27 5c 27 27 2c 20 24 s'",.str_replace('\'',.'\'\'',.$
aaaa0 76 61 6c 75 65 29 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 value));.}.}.<?php...........nam
aaac0 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 59 61 6d 6c 3b 0a 0a espace.Symfony\Component\Yaml;..
aaae0 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 63 65 70 use.Symfony\Component\Yaml\Excep
aab00 74 69 6f 6e 5c 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 tion\ParseException;.use.Symfony
aab20 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 59 61 6d 6c 5c 45 78 63 65 70 74 69 6f 6e 5c 44 75 6d 70 45 78 \Component\Yaml\Exception\DumpEx
aab40 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 49 6e 6c 69 6e 65 0a 7b 0a 63 6f ception;.......class.Inline.{.co
aab60 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 3a 22 28 nst.REGEX_QUOTED_STRING.=.'(?:"(
aab80 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 22 7c 5c [^"\\\\]*(?:\\\\.[^"\\\\]*)*)"|\
aaba0 27 28 5b 5e 5c 27 5d 2a 28 3f 3a 5c 27 5c 27 5b 5e 5c 27 5d 2a 29 2a 29 5c 27 29 27 3b 0a 0a 70 '([^\']*(?:\'\'[^\']*)*)\')';..p
aabc0 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 rivate.static.$exceptionOnInvali
aabe0 64 54 79 70 65 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6f dType.=.false;.private.static.$o
aac00 62 6a 65 63 74 53 75 70 70 6f 72 74 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a bjectSupport.=.false;...........
aac20 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 28 24 ..public.static.function.parse($
aac40 76 61 6c 75 65 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 20 3d value,.$exceptionOnInvalidType.=
aac60 20 66 61 6c 73 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 20 3d 20 66 61 6c 73 65 29 0a .false,.$objectSupport.=.false).
aac80 7b 0a 73 65 6c 66 3a 3a 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 20 {.self::$exceptionOnInvalidType.
aaca0 3d 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 3b 0a 73 65 6c 66 3a =.$exceptionOnInvalidType;.self:
aacc0 3a 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 20 3d 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 :$objectSupport.=.$objectSupport
aace0 3b 0a 0a 24 76 61 6c 75 65 20 3d 20 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a 0a 69 66 20 28 30 ;..$value.=.trim($value);..if.(0
aad00 20 3d 3d 20 73 74 72 6c 65 6e 28 24 76 61 6c 75 65 29 29 20 7b 0a 72 65 74 75 72 6e 20 27 27 3b .==.strlen($value)).{.return.'';
aad20 0a 7d 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 69 6e 74 65 .}..if.(function_exists('mb_inte
aad40 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 27 29 20 26 26 20 28 28 69 6e 74 29 20 69 6e 69 5f 67 65 rnal_encoding').&&.((int).ini_ge
aad60 74 28 27 6d 62 73 74 72 69 6e 67 2e 66 75 6e 63 5f 6f 76 65 72 6c 6f 61 64 27 29 29 20 26 20 32 t('mbstring.func_overload')).&.2
aad80 29 20 7b 0a 24 6d 62 45 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e ).{.$mbEncoding.=.mb_internal_en
aada0 63 6f 64 69 6e 67 28 29 3b 0a 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 28 27 coding();.mb_internal_encoding('
aadc0 41 53 43 49 49 27 29 3b 0a 7d 0a 0a 24 69 20 3d 20 30 3b 0a 73 77 69 74 63 68 20 28 24 76 61 6c ASCII');.}..$i.=.0;.switch.($val
aade0 75 65 5b 30 5d 29 20 7b 0a 63 61 73 65 20 27 5b 27 3a 0a 24 72 65 73 75 6c 74 20 3d 20 73 65 6c ue[0]).{.case.'[':.$result.=.sel
aae00 66 3a 3a 70 61 72 73 65 53 65 71 75 65 6e 63 65 28 24 76 61 6c 75 65 2c 20 24 69 29 3b 0a 2b 2b f::parseSequence($value,.$i);.++
aae20 24 69 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 7b 27 3a 0a 24 72 65 73 75 6c 74 20 3d 20 73 $i;.break;.case.'{':.$result.=.s
aae40 65 6c 66 3a 3a 70 61 72 73 65 4d 61 70 70 69 6e 67 28 24 76 61 6c 75 65 2c 20 24 69 29 3b 0a 2b elf::parseMapping($value,.$i);.+
aae60 2b 24 69 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 72 65 73 75 6c 74 20 3d 20 73 +$i;.break;.default:.$result.=.s
aae80 65 6c 66 3a 3a 70 61 72 73 65 53 63 61 6c 61 72 28 24 76 61 6c 75 65 2c 20 6e 75 6c 6c 2c 20 61 elf::parseScalar($value,.null,.a
aaea0 72 72 61 79 28 27 22 27 2c 20 22 27 22 29 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 70 72 rray('"',."'"),.$i);.}....if.(pr
aaec0 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 5c 73 2b 23 2e 2a 24 2f 41 27 2c 20 27 27 2c 20 73 75 62 eg_replace('/\s+#.*$/A',.'',.sub
aaee0 73 74 72 28 24 76 61 6c 75 65 2c 20 24 69 29 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 str($value,.$i))).{.throw.new.Pa
aaf00 72 73 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 65 78 70 65 63 74 65 64 rseException(sprintf('Unexpected
aaf20 20 63 68 61 72 61 63 74 65 72 73 20 6e 65 61 72 20 22 25 73 22 2e 27 2c 20 73 75 62 73 74 72 28 .characters.near."%s".',.substr(
aaf40 24 76 61 6c 75 65 2c 20 24 69 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6d 62 45 $value,.$i)));.}..if.(isset($mbE
aaf60 6e 63 6f 64 69 6e 67 29 29 20 7b 0a 6d 62 5f 69 6e 74 65 72 6e 61 6c 5f 65 6e 63 6f 64 69 6e 67 ncoding)).{.mb_internal_encoding
aaf80 28 24 6d 62 45 6e 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 73 75 6c 74 ($mbEncoding);.}..return.$result
aafa0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 ;.}.............public.static.fu
aafc0 6e 63 74 69 6f 6e 20 64 75 6d 70 28 24 76 61 6c 75 65 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e nction.dump($value,.$exceptionOn
aafe0 49 6e 76 61 6c 69 64 54 79 70 65 20 3d 20 66 61 6c 73 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 InvalidType.=.false,.$objectSupp
ab000 6f 72 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 73 77 69 74 63 68 20 28 74 72 75 65 29 20 7b 0a 63 ort.=.false).{.switch.(true).{.c
ab020 61 73 65 20 69 73 5f 72 65 73 6f 75 72 63 65 28 24 76 61 6c 75 65 29 3a 0a 69 66 20 28 24 65 78 ase.is_resource($value):.if.($ex
ab040 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 ceptionOnInvalidType).{.throw.ne
ab060 77 20 44 75 6d 70 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 61 62 6c 65 20 w.DumpException(sprintf('Unable.
ab080 74 6f 20 64 75 6d 70 20 50 48 50 20 72 65 73 6f 75 72 63 65 73 20 69 6e 20 61 20 59 41 4d 4c 20 to.dump.PHP.resources.in.a.YAML.
ab0a0 66 69 6c 65 20 28 22 25 73 22 29 2e 27 2c 20 67 65 74 5f 72 65 73 6f 75 72 63 65 5f 74 79 70 65 file.("%s").',.get_resource_type
ab0c0 28 24 76 61 6c 75 65 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 6e 75 6c 6c 27 3b 0a 63 61 ($value)));.}..return.'null';.ca
ab0e0 73 65 20 69 73 5f 6f 62 6a 65 63 74 28 24 76 61 6c 75 65 29 3a 0a 69 66 20 28 24 6f 62 6a 65 63 se.is_object($value):.if.($objec
ab100 74 53 75 70 70 6f 72 74 29 20 7b 0a 72 65 74 75 72 6e 20 27 21 21 70 68 70 2f 6f 62 6a 65 63 74 tSupport).{.return.'!!php/object
ab120 3a 27 2e 73 65 72 69 61 6c 69 7a 65 28 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 65 78 :'.serialize($value);.}..if.($ex
ab140 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 ceptionOnInvalidType).{.throw.ne
ab160 77 20 44 75 6d 70 45 78 63 65 70 74 69 6f 6e 28 27 4f 62 6a 65 63 74 20 73 75 70 70 6f 72 74 20 w.DumpException('Object.support.
ab180 77 68 65 6e 20 64 75 6d 70 69 6e 67 20 61 20 59 41 4d 4c 20 66 69 6c 65 20 68 61 73 20 62 65 65 when.dumping.a.YAML.file.has.bee
ab1a0 6e 20 64 69 73 61 62 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 6e 75 6c 6c 27 3b n.disabled.');.}..return.'null';
ab1c0 0a 63 61 73 65 20 69 73 5f 61 72 72 61 79 28 24 76 61 6c 75 65 29 3a 0a 72 65 74 75 72 6e 20 73 .case.is_array($value):.return.s
ab1e0 65 6c 66 3a 3a 64 75 6d 70 41 72 72 61 79 28 24 76 61 6c 75 65 2c 20 24 65 78 63 65 70 74 69 6f elf::dumpArray($value,.$exceptio
ab200 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b nOnInvalidType,.$objectSupport);
ab220 0a 63 61 73 65 20 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 3a 0a 72 65 74 75 72 6e 20 27 6e .case.null.===.$value:.return.'n
ab240 75 6c 6c 27 3b 0a 63 61 73 65 20 74 72 75 65 20 3d 3d 3d 20 24 76 61 6c 75 65 3a 0a 72 65 74 75 ull';.case.true.===.$value:.retu
ab260 72 6e 20 27 74 72 75 65 27 3b 0a 63 61 73 65 20 66 61 6c 73 65 20 3d 3d 3d 20 24 76 61 6c 75 65 rn.'true';.case.false.===.$value
ab280 3a 0a 72 65 74 75 72 6e 20 27 66 61 6c 73 65 27 3b 0a 63 61 73 65 20 63 74 79 70 65 5f 64 69 67 :.return.'false';.case.ctype_dig
ab2a0 69 74 28 24 76 61 6c 75 65 29 3a 0a 72 65 74 75 72 6e 20 69 73 5f 73 74 72 69 6e 67 28 24 76 61 it($value):.return.is_string($va
ab2c0 6c 75 65 29 20 3f 20 22 27 24 76 61 6c 75 65 27 22 20 3a 20 28 69 6e 74 29 20 24 76 61 6c 75 65 lue).?."'$value'".:.(int).$value
ab2e0 3b 0a 63 61 73 65 20 69 73 5f 6e 75 6d 65 72 69 63 28 24 76 61 6c 75 65 29 3a 0a 24 6c 6f 63 61 ;.case.is_numeric($value):.$loca
ab300 6c 65 20 3d 20 73 65 74 6c 6f 63 61 6c 65 28 4c 43 5f 4e 55 4d 45 52 49 43 2c 20 30 29 3b 0a 69 le.=.setlocale(LC_NUMERIC,.0);.i
ab320 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 6c 6f 63 61 6c 65 29 20 7b 0a 73 65 74 6c 6f 63 61 6c f.(false.!==.$locale).{.setlocal
ab340 65 28 4c 43 5f 4e 55 4d 45 52 49 43 2c 20 27 43 27 29 3b 0a 7d 0a 24 72 65 70 72 20 3d 20 69 73 e(LC_NUMERIC,.'C');.}.$repr.=.is
ab360 5f 73 74 72 69 6e 67 28 24 76 61 6c 75 65 29 20 3f 20 22 27 24 76 61 6c 75 65 27 22 20 3a 20 28 _string($value).?."'$value'".:.(
ab380 69 73 5f 69 6e 66 69 6e 69 74 65 28 24 76 61 6c 75 65 29 20 3f 20 73 74 72 5f 69 72 65 70 6c 61 is_infinite($value).?.str_irepla
ab3a0 63 65 28 27 49 4e 46 27 2c 20 27 2e 49 6e 66 27 2c 20 73 74 72 76 61 6c 28 24 76 61 6c 75 65 29 ce('INF',.'.Inf',.strval($value)
ab3c0 29 20 3a 20 73 74 72 76 61 6c 28 24 76 61 6c 75 65 29 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 ).:.strval($value));..if.(false.
ab3e0 21 3d 3d 20 24 6c 6f 63 61 6c 65 29 20 7b 0a 73 65 74 6c 6f 63 61 6c 65 28 4c 43 5f 4e 55 4d 45 !==.$locale).{.setlocale(LC_NUME
ab400 52 49 43 2c 20 24 6c 6f 63 61 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 72 65 70 72 3b 0a RIC,.$locale);.}..return.$repr;.
ab420 63 61 73 65 20 45 73 63 61 70 65 72 3a 3a 72 65 71 75 69 72 65 73 44 6f 75 62 6c 65 51 75 6f 74 case.Escaper::requiresDoubleQuot
ab440 69 6e 67 28 24 76 61 6c 75 65 29 3a 0a 72 65 74 75 72 6e 20 45 73 63 61 70 65 72 3a 3a 65 73 63 ing($value):.return.Escaper::esc
ab460 61 70 65 57 69 74 68 44 6f 75 62 6c 65 51 75 6f 74 65 73 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 apeWithDoubleQuotes($value);.cas
ab480 65 20 45 73 63 61 70 65 72 3a 3a 72 65 71 75 69 72 65 73 53 69 6e 67 6c 65 51 75 6f 74 69 6e 67 e.Escaper::requiresSingleQuoting
ab4a0 28 24 76 61 6c 75 65 29 3a 0a 72 65 74 75 72 6e 20 45 73 63 61 70 65 72 3a 3a 65 73 63 61 70 65 ($value):.return.Escaper::escape
ab4c0 57 69 74 68 53 69 6e 67 6c 65 51 75 6f 74 65 73 28 24 76 61 6c 75 65 29 3b 0a 63 61 73 65 20 27 WithSingleQuotes($value);.case.'
ab4e0 27 20 3d 3d 20 24 76 61 6c 75 65 3a 0a 72 65 74 75 72 6e 20 22 27 27 22 3b 0a 63 61 73 65 20 70 '.==.$value:.return."''";.case.p
ab500 72 65 67 5f 6d 61 74 63 68 28 73 65 6c 66 3a 3a 67 65 74 54 69 6d 65 73 74 61 6d 70 52 65 67 65 reg_match(self::getTimestampRege
ab520 78 28 29 2c 20 24 76 61 6c 75 65 29 3a 0a 63 61 73 65 20 69 6e 5f 61 72 72 61 79 28 73 74 72 74 x(),.$value):.case.in_array(strt
ab540 6f 6c 6f 77 65 72 28 24 76 61 6c 75 65 29 2c 20 61 72 72 61 79 28 27 6e 75 6c 6c 27 2c 20 27 7e olower($value),.array('null',.'~
ab560 27 2c 20 27 74 72 75 65 27 2c 20 27 66 61 6c 73 65 27 29 29 3a 0a 72 65 74 75 72 6e 20 22 27 24 ',.'true',.'false')):.return."'$
ab580 76 61 6c 75 65 27 22 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b value'";.default:.return.$value;
ab5a0 0a 7d 0a 7d 0a 0a 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 .}.}...........private.static.fu
ab5c0 6e 63 74 69 6f 6e 20 64 75 6d 70 41 72 72 61 79 28 24 76 61 6c 75 65 2c 20 24 65 78 63 65 70 74 nction.dumpArray($value,.$except
ab5e0 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 ionOnInvalidType,.$objectSupport
ab600 29 0a 7b 0a 0a 20 24 6b 65 79 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 76 61 6c 75 65 29 ).{...$keys.=.array_keys($value)
ab620 3b 0a 69 66 20 28 28 31 20 3d 3d 20 63 6f 75 6e 74 28 24 6b 65 79 73 29 20 26 26 20 27 30 27 20 ;.if.((1.==.count($keys).&&.'0'.
ab640 3d 3d 20 24 6b 65 79 73 5b 30 5d 29 0a 7c 7c 20 28 63 6f 75 6e 74 28 24 6b 65 79 73 29 20 3e 20 ==.$keys[0]).||.(count($keys).>.
ab660 31 20 26 26 20 61 72 72 61 79 5f 72 65 64 75 63 65 28 24 6b 65 79 73 2c 20 66 75 6e 63 74 69 6f 1.&&.array_reduce($keys,.functio
ab680 6e 20 28 24 76 2c 20 24 77 29 20 7b 20 72 65 74 75 72 6e 20 28 69 6e 74 65 67 65 72 29 20 24 76 n.($v,.$w).{.return.(integer).$v
ab6a0 20 2b 20 24 77 3b 20 7d 2c 20 30 29 20 3d 3d 20 63 6f 75 6e 74 28 24 6b 65 79 73 29 20 2a 20 28 .+.$w;.},.0).==.count($keys).*.(
ab6c0 63 6f 75 6e 74 28 24 6b 65 79 73 29 20 2d 20 31 29 20 2f 20 32 29 0a 29 20 7b 0a 24 6f 75 74 70 count($keys).-.1)./.2).).{.$outp
ab6e0 75 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 76 61 6c 75 65 20 61 73 ut.=.array();.foreach.($value.as
ab700 20 24 76 61 6c 29 20 7b 0a 24 6f 75 74 70 75 74 5b 5d 20 3d 20 73 65 6c 66 3a 3a 64 75 6d 70 28 .$val).{.$output[].=.self::dump(
ab720 24 76 61 6c 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c 20 24 $val,.$exceptionOnInvalidType,.$
ab740 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 objectSupport);.}..return.sprint
ab760 66 28 27 5b 25 73 5d 27 2c 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 6f 75 74 70 75 74 29 f('[%s]',.implode(',.',.$output)
ab780 29 3b 0a 7d 0a 0a 0a 20 24 6f 75 74 70 75 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 );.}....$output.=.array();.forea
ab7a0 63 68 20 28 24 76 61 6c 75 65 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 24 6f ch.($value.as.$key.=>.$val).{.$o
ab7c0 75 74 70 75 74 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 25 73 3a 20 25 73 27 2c 20 73 65 6c 66 utput[].=.sprintf('%s:.%s',.self
ab7e0 3a 3a 64 75 6d 70 28 24 6b 65 79 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 ::dump($key,.$exceptionOnInvalid
ab800 54 79 70 65 2c 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 2c 20 73 65 6c 66 3a 3a 64 75 6d Type,.$objectSupport),.self::dum
ab820 70 28 24 76 61 6c 2c 20 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 2c p($val,.$exceptionOnInvalidType,
ab840 20 24 6f 62 6a 65 63 74 53 75 70 70 6f 72 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 .$objectSupport));.}..return.spr
ab860 69 6e 74 66 28 27 7b 20 25 73 20 7d 27 2c 20 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 6f 75 intf('{.%s.}',.implode(',.',.$ou
ab880 74 70 75 74 29 29 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 73 tput));.}...............public.s
ab8a0 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 63 61 6c 61 72 28 24 73 63 61 6c tatic.function.parseScalar($scal
ab8c0 61 72 2c 20 24 64 65 6c 69 6d 69 74 65 72 73 20 3d 20 6e 75 6c 6c 2c 20 24 73 74 72 69 6e 67 44 ar,.$delimiters.=.null,.$stringD
ab8e0 65 6c 69 6d 69 74 65 72 73 20 3d 20 61 72 72 61 79 28 27 22 27 2c 20 22 27 22 29 2c 20 26 24 69 elimiters.=.array('"',."'"),.&$i
ab900 20 3d 20 30 2c 20 24 65 76 61 6c 75 61 74 65 20 3d 20 74 72 75 65 29 0a 7b 0a 69 66 20 28 69 6e .=.0,.$evaluate.=.true).{.if.(in
ab920 5f 61 72 72 61 79 28 24 73 63 61 6c 61 72 5b 24 69 5d 2c 20 24 73 74 72 69 6e 67 44 65 6c 69 6d _array($scalar[$i],.$stringDelim
ab940 69 74 65 72 73 29 29 20 7b 0a 0a 20 24 6f 75 74 70 75 74 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 iters)).{...$output.=.self::pars
ab960 65 51 75 6f 74 65 64 53 63 61 6c 61 72 28 24 73 63 61 6c 61 72 2c 20 24 69 29 3b 0a 0a 69 66 20 eQuotedScalar($scalar,.$i);..if.
ab980 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 6c 69 6d 69 74 65 72 73 29 20 7b 0a 24 74 6d 70 20 3d 20 (null.!==.$delimiters).{.$tmp.=.
ab9a0 6c 74 72 69 6d 28 73 75 62 73 74 72 28 24 73 63 61 6c 61 72 2c 20 24 69 29 2c 20 27 20 27 29 3b ltrim(substr($scalar,.$i),.'.');
ab9c0 0a 69 66 20 28 21 69 6e 5f 61 72 72 61 79 28 24 74 6d 70 5b 30 5d 2c 20 24 64 65 6c 69 6d 69 74 .if.(!in_array($tmp[0],.$delimit
ab9e0 65 72 73 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e ers)).{.throw.new.ParseException
aba00 28 73 70 72 69 6e 74 66 28 27 55 6e 65 78 70 65 63 74 65 64 20 63 68 61 72 61 63 74 65 72 73 20 (sprintf('Unexpected.characters.
aba20 28 25 73 29 2e 27 2c 20 73 75 62 73 74 72 28 24 73 63 61 6c 61 72 2c 20 24 69 29 29 29 3b 0a 7d (%s).',.substr($scalar,.$i)));.}
aba40 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 69 66 20 28 21 24 64 65 6c 69 6d 69 74 65 72 73 29 20 .}.}.else.{...if.(!$delimiters).
aba60 7b 0a 24 6f 75 74 70 75 74 20 3d 20 73 75 62 73 74 72 28 24 73 63 61 6c 61 72 2c 20 24 69 29 3b {.$output.=.substr($scalar,.$i);
aba80 0a 24 69 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6f 75 74 70 75 74 29 3b 0a 0a 0a 20 69 66 20 28 66 .$i.+=.strlen($output);....if.(f
abaa0 61 6c 73 65 20 21 3d 3d 20 24 73 74 72 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 6f 75 74 70 75 alse.!==.$strpos.=.strpos($outpu
abac0 74 2c 20 27 20 23 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 72 74 72 69 6d 28 73 75 62 73 t,.'.#')).{.$output.=.rtrim(subs
abae0 74 72 28 24 6f 75 74 70 75 74 2c 20 30 2c 20 24 73 74 72 70 6f 73 29 29 3b 0a 7d 0a 7d 20 65 6c tr($output,.0,.$strpos));.}.}.el
abb00 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 2e 2b 3f 29 28 27 2e 69 6d 70 6c seif.(preg_match('/^(.+?)('.impl
abb20 6f 64 65 28 27 7c 27 2c 20 24 64 65 6c 69 6d 69 74 65 72 73 29 2e 27 29 2f 27 2c 20 73 75 62 73 ode('|',.$delimiters).')/',.subs
abb40 74 72 28 24 73 63 61 6c 61 72 2c 20 24 69 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 6f 75 74 tr($scalar,.$i),.$match)).{.$out
abb60 70 75 74 20 3d 20 24 6d 61 74 63 68 5b 31 5d 3b 0a 24 69 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6f put.=.$match[1];.$i.+=.strlen($o
abb80 75 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 utput);.}.else.{.throw.new.Parse
abba0 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4d 61 6c 66 6f 72 6d 65 64 20 69 6e 6c Exception(sprintf('Malformed.inl
abbc0 69 6e 65 20 59 41 4d 4c 20 73 74 72 69 6e 67 20 28 25 73 29 2e 27 2c 20 24 73 63 61 6c 61 72 29 ine.YAML.string.(%s).',.$scalar)
abbe0 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 65 76 61 6c 75 61 74 65 20 3f 20 73 65 6c 66 );.}..$output.=.$evaluate.?.self
abc00 3a 3a 65 76 61 6c 75 61 74 65 53 63 61 6c 61 72 28 24 6f 75 74 70 75 74 29 20 3a 20 24 6f 75 74 ::evaluateScalar($output).:.$out
abc20 70 75 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a put;.}..return.$output;.}.......
abc40 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 .....private.static.function.par
abc60 73 65 51 75 6f 74 65 64 53 63 61 6c 61 72 28 24 73 63 61 6c 61 72 2c 20 26 24 69 29 0a 7b 0a 69 seQuotedScalar($scalar,.&$i).{.i
abc80 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 51 f.(!preg_match('/'.self::REGEX_Q
abca0 55 4f 54 45 44 5f 53 54 52 49 4e 47 2e 27 2f 41 75 27 2c 20 73 75 62 73 74 72 28 24 73 63 61 6c UOTED_STRING.'/Au',.substr($scal
abcc0 61 72 2c 20 24 69 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 ar,.$i),.$match)).{.throw.new.Pa
abce0 72 73 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4d 61 6c 66 6f 72 6d 65 64 20 rseException(sprintf('Malformed.
abd00 69 6e 6c 69 6e 65 20 59 41 4d 4c 20 73 74 72 69 6e 67 20 28 25 73 29 2e 27 2c 20 73 75 62 73 74 inline.YAML.string.(%s).',.subst
abd20 72 28 24 73 63 61 6c 61 72 2c 20 24 69 29 29 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 73 r($scalar,.$i)));.}..$output.=.s
abd40 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 61 74 63 ubstr($match[0],.1,.strlen($matc
abd60 68 5b 30 5d 29 20 2d 20 32 29 3b 0a 0a 24 75 6e 65 73 63 61 70 65 72 20 3d 20 6e 65 77 20 55 6e h[0]).-.2);..$unescaper.=.new.Un
abd80 65 73 63 61 70 65 72 28 29 3b 0a 69 66 20 28 27 22 27 20 3d 3d 20 24 73 63 61 6c 61 72 5b 24 69 escaper();.if.('"'.==.$scalar[$i
abda0 5d 29 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 75 6e 65 73 63 61 70 65 72 2d 3e 75 6e 65 73 63 ]).{.$output.=.$unescaper->unesc
abdc0 61 70 65 44 6f 75 62 6c 65 51 75 6f 74 65 64 53 74 72 69 6e 67 28 24 6f 75 74 70 75 74 29 3b 0a apeDoubleQuotedString($output);.
abde0 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 20 3d 20 24 75 6e 65 73 63 61 70 65 72 2d 3e 75 }.else.{.$output.=.$unescaper->u
abe00 6e 65 73 63 61 70 65 53 69 6e 67 6c 65 51 75 6f 74 65 64 53 74 72 69 6e 67 28 24 6f 75 74 70 75 nescapeSingleQuotedString($outpu
abe20 74 29 3b 0a 7d 0a 0a 24 69 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 3b 0a t);.}..$i.+=.strlen($match[0]);.
abe40 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 .return.$output;.}............pr
abe60 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 53 65 71 75 65 ivate.static.function.parseSeque
abe80 6e 63 65 28 24 73 65 71 75 65 6e 63 65 2c 20 26 24 69 20 3d 20 30 29 0a 7b 0a 24 6f 75 74 70 75 nce($sequence,.&$i.=.0).{.$outpu
abea0 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 73 65 71 75 t.=.array();.$len.=.strlen($sequ
abec0 65 6e 63 65 29 3b 0a 24 69 20 2b 3d 20 31 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 24 69 20 3c 20 24 ence);.$i.+=.1;....while.($i.<.$
abee0 6c 65 6e 29 20 7b 0a 73 77 69 74 63 68 20 28 24 73 65 71 75 65 6e 63 65 5b 24 69 5d 29 20 7b 0a len).{.switch.($sequence[$i]).{.
abf00 63 61 73 65 20 27 5b 27 3a 0a 0a 20 24 6f 75 74 70 75 74 5b 5d 20 3d 20 73 65 6c 66 3a 3a 70 61 case.'[':...$output[].=.self::pa
abf20 72 73 65 53 65 71 75 65 6e 63 65 28 24 73 65 71 75 65 6e 63 65 2c 20 24 69 29 3b 0a 62 72 65 61 rseSequence($sequence,.$i);.brea
abf40 6b 3b 0a 63 61 73 65 20 27 7b 27 3a 0a 0a 20 24 6f 75 74 70 75 74 5b 5d 20 3d 20 73 65 6c 66 3a k;.case.'{':...$output[].=.self:
abf60 3a 70 61 72 73 65 4d 61 70 70 69 6e 67 28 24 73 65 71 75 65 6e 63 65 2c 20 24 69 29 3b 0a 62 72 :parseMapping($sequence,.$i);.br
abf80 65 61 6b 3b 0a 63 61 73 65 20 27 5d 27 3a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 3b 0a 63 eak;.case.']':.return.$output;.c
abfa0 61 73 65 20 27 2c 27 3a 0a 63 61 73 65 20 27 20 27 3a 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c ase.',':.case.'.':.break;.defaul
abfc0 74 3a 0a 24 69 73 51 75 6f 74 65 64 20 3d 20 69 6e 5f 61 72 72 61 79 28 24 73 65 71 75 65 6e 63 t:.$isQuoted.=.in_array($sequenc
abfe0 65 5b 24 69 5d 2c 20 61 72 72 61 79 28 27 22 27 2c 20 22 27 22 29 29 3b 0a 24 76 61 6c 75 65 20 e[$i],.array('"',."'"));.$value.
ac000 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 53 63 61 6c 61 72 28 24 73 65 71 75 65 6e 63 65 2c 20 61 =.self::parseScalar($sequence,.a
ac020 72 72 61 79 28 27 2c 27 2c 20 27 5d 27 29 2c 20 61 72 72 61 79 28 27 22 27 2c 20 22 27 22 29 2c rray(',',.']'),.array('"',."'"),
ac040 20 24 69 29 3b 0a 0a 69 66 20 28 21 24 69 73 51 75 6f 74 65 64 20 26 26 20 66 61 6c 73 65 20 21 .$i);..if.(!$isQuoted.&&.false.!
ac060 3d 3d 20 73 74 72 70 6f 73 28 24 76 61 6c 75 65 2c 20 27 3a 20 27 29 29 20 7b 0a 0a 20 74 72 79 ==.strpos($value,.':.')).{...try
ac080 20 7b 0a 24 76 61 6c 75 65 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 4d 61 70 70 69 6e 67 28 27 .{.$value.=.self::parseMapping('
ac0a0 7b 27 2e 24 76 61 6c 75 65 2e 27 7d 27 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 49 6e 76 61 6c 69 {'.$value.'}');.}.catch.(\Invali
ac0c0 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 0a 20 7d 0a 7d 0a 0a dArgumentException.$e).{...}.}..
ac0e0 24 6f 75 74 70 75 74 5b 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 0a 2d 2d 24 69 3b 0a 7d 0a 0a 2b 2b $output[].=.$value;..--$i;.}..++
ac100 24 69 3b 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 $i;.}..throw.new.ParseException(
ac120 73 70 72 69 6e 74 66 28 27 4d 61 6c 66 6f 72 6d 65 64 20 69 6e 6c 69 6e 65 20 59 41 4d 4c 20 73 sprintf('Malformed.inline.YAML.s
ac140 74 72 69 6e 67 20 25 73 27 2c 20 24 73 65 71 75 65 6e 63 65 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a tring.%s',.$sequence));.}.......
ac160 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 .....private.static.function.par
ac180 73 65 4d 61 70 70 69 6e 67 28 24 6d 61 70 70 69 6e 67 2c 20 26 24 69 20 3d 20 30 29 0a 7b 0a 24 seMapping($mapping,.&$i.=.0).{.$
ac1a0 6f 75 74 70 75 74 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 output.=.array();.$len.=.strlen(
ac1c0 24 6d 61 70 70 69 6e 67 29 3b 0a 24 69 20 2b 3d 20 31 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 24 69 $mapping);.$i.+=.1;....while.($i
ac1e0 20 3c 20 24 6c 65 6e 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6d 61 70 70 69 6e 67 5b 24 69 5d 29 .<.$len).{.switch.($mapping[$i])
ac200 20 7b 0a 63 61 73 65 20 27 20 27 3a 0a 63 61 73 65 20 27 2c 27 3a 0a 2b 2b 24 69 3b 0a 63 6f 6e .{.case.'.':.case.',':.++$i;.con
ac220 74 69 6e 75 65 20 32 3b 0a 63 61 73 65 20 27 7d 27 3a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 tinue.2;.case.'}':.return.$outpu
ac240 74 3b 0a 7d 0a 0a 0a 20 24 6b 65 79 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 53 63 61 6c 61 72 t;.}....$key.=.self::parseScalar
ac260 28 24 6d 61 70 70 69 6e 67 2c 20 61 72 72 61 79 28 27 3a 27 2c 20 27 20 27 29 2c 20 61 72 72 61 ($mapping,.array(':',.'.'),.arra
ac280 79 28 27 22 27 2c 20 22 27 22 29 2c 20 24 69 2c 20 66 61 6c 73 65 29 3b 0a 0a 0a 20 24 64 6f 6e y('"',."'"),.$i,.false);....$don
ac2a0 65 20 3d 20 66 61 6c 73 65 3b 0a 77 68 69 6c 65 20 28 24 69 20 3c 20 24 6c 65 6e 29 20 7b 0a 73 e.=.false;.while.($i.<.$len).{.s
ac2c0 77 69 74 63 68 20 28 24 6d 61 70 70 69 6e 67 5b 24 69 5d 29 20 7b 0a 63 61 73 65 20 27 5b 27 3a witch.($mapping[$i]).{.case.'[':
ac2e0 0a 0a 20 24 6f 75 74 70 75 74 5b 24 6b 65 79 5d 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 53 65 ...$output[$key].=.self::parseSe
ac300 71 75 65 6e 63 65 28 24 6d 61 70 70 69 6e 67 2c 20 24 69 29 3b 0a 24 64 6f 6e 65 20 3d 20 74 72 quence($mapping,.$i);.$done.=.tr
ac320 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 7b 27 3a 0a 0a 20 24 6f 75 74 70 75 74 5b 24 ue;.break;.case.'{':...$output[$
ac340 6b 65 79 5d 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 4d 61 70 70 69 6e 67 28 24 6d 61 70 70 69 key].=.self::parseMapping($mappi
ac360 6e 67 2c 20 24 69 29 3b 0a 24 64 6f 6e 65 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b 3b 0a 63 61 ng,.$i);.$done.=.true;.break;.ca
ac380 73 65 20 27 3a 27 3a 0a 63 61 73 65 20 27 20 27 3a 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 se.':':.case.'.':.break;.default
ac3a0 3a 0a 24 6f 75 74 70 75 74 5b 24 6b 65 79 5d 20 3d 20 73 65 6c 66 3a 3a 70 61 72 73 65 53 63 61 :.$output[$key].=.self::parseSca
ac3c0 6c 61 72 28 24 6d 61 70 70 69 6e 67 2c 20 61 72 72 61 79 28 27 2c 27 2c 20 27 7d 27 29 2c 20 61 lar($mapping,.array(',',.'}'),.a
ac3e0 72 72 61 79 28 27 22 27 2c 20 22 27 22 29 2c 20 24 69 29 3b 0a 24 64 6f 6e 65 20 3d 20 74 72 75 rray('"',."'"),.$i);.$done.=.tru
ac400 65 3b 0a 2d 2d 24 69 3b 0a 7d 0a 0a 2b 2b 24 69 3b 0a 0a 69 66 20 28 24 64 6f 6e 65 29 20 7b 0a e;.--$i;.}..++$i;..if.($done).{.
ac420 63 6f 6e 74 69 6e 75 65 20 32 3b 0a 7d 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 continue.2;.}.}.}..throw.new.Par
ac440 73 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4d 61 6c 66 6f 72 6d 65 64 20 69 seException(sprintf('Malformed.i
ac460 6e 6c 69 6e 65 20 59 41 4d 4c 20 73 74 72 69 6e 67 20 25 73 27 2c 20 24 6d 61 70 70 69 6e 67 29 nline.YAML.string.%s',.$mapping)
ac480 29 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 63 );.}.........private.static.func
ac4a0 74 69 6f 6e 20 65 76 61 6c 75 61 74 65 53 63 61 6c 61 72 28 24 73 63 61 6c 61 72 29 0a 7b 0a 24 tion.evaluateScalar($scalar).{.$
ac4c0 73 63 61 6c 61 72 20 3d 20 74 72 69 6d 28 24 73 63 61 6c 61 72 29 3b 0a 0a 73 77 69 74 63 68 20 scalar.=.trim($scalar);..switch.
ac4e0 28 74 72 75 65 29 20 7b 0a 63 61 73 65 20 27 6e 75 6c 6c 27 20 3d 3d 20 73 74 72 74 6f 6c 6f 77 (true).{.case.'null'.==.strtolow
ac500 65 72 28 24 73 63 61 6c 61 72 29 3a 0a 63 61 73 65 20 27 27 20 3d 3d 20 24 73 63 61 6c 61 72 3a er($scalar):.case.''.==.$scalar:
ac520 0a 63 61 73 65 20 27 7e 27 20 3d 3d 20 24 73 63 61 6c 61 72 3a 0a 72 65 74 75 72 6e 20 6e 75 6c .case.'~'.==.$scalar:.return.nul
ac540 6c 3b 0a 63 61 73 65 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 73 63 61 6c 61 72 2c 20 27 21 l;.case.0.===.strpos($scalar,.'!
ac560 73 74 72 27 29 3a 0a 72 65 74 75 72 6e 20 28 73 74 72 69 6e 67 29 20 73 75 62 73 74 72 28 24 73 str'):.return.(string).substr($s
ac580 63 61 6c 61 72 2c 20 35 29 3b 0a 63 61 73 65 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 73 63 calar,.5);.case.0.===.strpos($sc
ac5a0 61 6c 61 72 2c 20 27 21 20 27 29 3a 0a 72 65 74 75 72 6e 20 69 6e 74 76 61 6c 28 73 65 6c 66 3a alar,.'!.'):.return.intval(self:
ac5c0 3a 70 61 72 73 65 53 63 61 6c 61 72 28 73 75 62 73 74 72 28 24 73 63 61 6c 61 72 2c 20 32 29 29 :parseScalar(substr($scalar,.2))
ac5e0 29 3b 0a 63 61 73 65 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 73 63 61 6c 61 72 2c 20 27 21 );.case.0.===.strpos($scalar,.'!
ac600 21 70 68 70 2f 6f 62 6a 65 63 74 3a 27 29 3a 0a 69 66 20 28 73 65 6c 66 3a 3a 24 6f 62 6a 65 63 !php/object:'):.if.(self::$objec
ac620 74 53 75 70 70 6f 72 74 29 20 7b 0a 72 65 74 75 72 6e 20 75 6e 73 65 72 69 61 6c 69 7a 65 28 73 tSupport).{.return.unserialize(s
ac640 75 62 73 74 72 28 24 73 63 61 6c 61 72 2c 20 31 33 29 29 3b 0a 7d 0a 0a 69 66 20 28 73 65 6c 66 ubstr($scalar,.13));.}..if.(self
ac660 3a 3a 24 65 78 63 65 70 74 69 6f 6e 4f 6e 49 6e 76 61 6c 69 64 54 79 70 65 29 20 7b 0a 74 68 72 ::$exceptionOnInvalidType).{.thr
ac680 6f 77 20 6e 65 77 20 50 61 72 73 65 45 78 63 65 70 74 69 6f 6e 28 27 4f 62 6a 65 63 74 20 73 75 ow.new.ParseException('Object.su
ac6a0 70 70 6f 72 74 20 77 68 65 6e 20 70 61 72 73 69 6e 67 20 61 20 59 41 4d 4c 20 66 69 6c 65 20 68 pport.when.parsing.a.YAML.file.h
ac6c0 61 73 20 62 65 65 6e 20 64 69 73 61 62 6c 65 64 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6e as.been.disabled.');.}..return.n
ac6e0 75 6c 6c 3b 0a 63 61 73 65 20 63 74 79 70 65 5f 64 69 67 69 74 28 24 73 63 61 6c 61 72 29 3a 0a ull;.case.ctype_digit($scalar):.
ac700 24 72 61 77 20 3d 20 24 73 63 61 6c 61 72 3b 0a 24 63 61 73 74 20 3d 20 69 6e 74 76 61 6c 28 24 $raw.=.$scalar;.$cast.=.intval($
ac720 73 63 61 6c 61 72 29 3b 0a 0a 72 65 74 75 72 6e 20 27 30 27 20 3d 3d 20 24 73 63 61 6c 61 72 5b scalar);..return.'0'.==.$scalar[
ac740 30 5d 20 3f 20 6f 63 74 64 65 63 28 24 73 63 61 6c 61 72 29 20 3a 20 28 28 28 73 74 72 69 6e 67 0].?.octdec($scalar).:.(((string
ac760 29 20 24 72 61 77 20 3d 3d 20 28 73 74 72 69 6e 67 29 20 24 63 61 73 74 29 20 3f 20 24 63 61 73 ).$raw.==.(string).$cast).?.$cas
ac780 74 20 3a 20 24 72 61 77 29 3b 0a 63 61 73 65 20 27 2d 27 20 3d 3d 3d 20 24 73 63 61 6c 61 72 5b t.:.$raw);.case.'-'.===.$scalar[
ac7a0 30 5d 20 26 26 20 63 74 79 70 65 5f 64 69 67 69 74 28 73 75 62 73 74 72 28 24 73 63 61 6c 61 72 0].&&.ctype_digit(substr($scalar
ac7c0 2c 20 31 29 29 3a 0a 24 72 61 77 20 3d 20 24 73 63 61 6c 61 72 3b 0a 24 63 61 73 74 20 3d 20 69 ,.1)):.$raw.=.$scalar;.$cast.=.i
ac7e0 6e 74 76 61 6c 28 24 73 63 61 6c 61 72 29 3b 0a 0a 72 65 74 75 72 6e 20 27 30 27 20 3d 3d 20 24 ntval($scalar);..return.'0'.==.$
ac800 73 63 61 6c 61 72 5b 31 5d 20 3f 20 6f 63 74 64 65 63 28 24 73 63 61 6c 61 72 29 20 3a 20 28 28 scalar[1].?.octdec($scalar).:.((
ac820 28 73 74 72 69 6e 67 29 20 24 72 61 77 20 3d 3d 20 28 73 74 72 69 6e 67 29 20 24 63 61 73 74 29 (string).$raw.==.(string).$cast)
ac840 20 3f 20 24 63 61 73 74 20 3a 20 24 72 61 77 29 3b 0a 63 61 73 65 20 27 74 72 75 65 27 20 3d 3d .?.$cast.:.$raw);.case.'true'.==
ac860 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 73 63 61 6c 61 72 29 3a 0a 72 65 74 75 72 6e 20 74 72 =.strtolower($scalar):.return.tr
ac880 75 65 3b 0a 63 61 73 65 20 27 66 61 6c 73 65 27 20 3d 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 ue;.case.'false'.===.strtolower(
ac8a0 24 73 63 61 6c 61 72 29 3a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 63 61 73 65 20 69 73 5f $scalar):.return.false;.case.is_
ac8c0 6e 75 6d 65 72 69 63 28 24 73 63 61 6c 61 72 29 3a 0a 72 65 74 75 72 6e 20 27 30 78 27 20 3d 3d numeric($scalar):.return.'0x'.==
ac8e0 20 24 73 63 61 6c 61 72 5b 30 5d 2e 24 73 63 61 6c 61 72 5b 31 5d 20 3f 20 68 65 78 64 65 63 28 .$scalar[0].$scalar[1].?.hexdec(
ac900 24 73 63 61 6c 61 72 29 20 3a 20 66 6c 6f 61 74 76 61 6c 28 24 73 63 61 6c 61 72 29 3b 0a 63 61 $scalar).:.floatval($scalar);.ca
ac920 73 65 20 30 20 3d 3d 20 73 74 72 63 61 73 65 63 6d 70 28 24 73 63 61 6c 61 72 2c 20 27 2e 69 6e se.0.==.strcasecmp($scalar,.'.in
ac940 66 27 29 3a 0a 63 61 73 65 20 30 20 3d 3d 20 73 74 72 63 61 73 65 63 6d 70 28 24 73 63 61 6c 61 f'):.case.0.==.strcasecmp($scala
ac960 72 2c 20 27 2e 4e 61 4e 27 29 3a 0a 72 65 74 75 72 6e 20 2d 6c 6f 67 28 30 29 3b 0a 63 61 73 65 r,.'.NaN'):.return.-log(0);.case
ac980 20 30 20 3d 3d 20 73 74 72 63 61 73 65 63 6d 70 28 24 73 63 61 6c 61 72 2c 20 27 2d 2e 69 6e 66 .0.==.strcasecmp($scalar,.'-.inf
ac9a0 27 29 3a 0a 72 65 74 75 72 6e 20 6c 6f 67 28 30 29 3b 0a 63 61 73 65 20 70 72 65 67 5f 6d 61 74 '):.return.log(0);.case.preg_mat
ac9c0 63 68 28 27 2f 5e 28 2d 7c 5c 2b 29 3f 5b 30 2d 39 2c 5d 2b 28 5c 2e 5b 30 2d 39 5d 2b 29 3f 24 ch('/^(-|\+)?[0-9,]+(\.[0-9]+)?$
ac9e0 2f 27 2c 20 24 73 63 61 6c 61 72 29 3a 0a 72 65 74 75 72 6e 20 66 6c 6f 61 74 76 61 6c 28 73 74 /',.$scalar):.return.floatval(st
aca00 72 5f 72 65 70 6c 61 63 65 28 27 2c 27 2c 20 27 27 2c 20 24 73 63 61 6c 61 72 29 29 3b 0a 63 61 r_replace(',',.'',.$scalar));.ca
aca20 73 65 20 70 72 65 67 5f 6d 61 74 63 68 28 73 65 6c 66 3a 3a 67 65 74 54 69 6d 65 73 74 61 6d 70 se.preg_match(self::getTimestamp
aca40 52 65 67 65 78 28 29 2c 20 24 73 63 61 6c 61 72 29 3a 0a 72 65 74 75 72 6e 20 73 74 72 74 6f 74 Regex(),.$scalar):.return.strtot
aca60 69 6d 65 28 24 73 63 61 6c 61 72 29 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 28 73 ime($scalar);.default:.return.(s
aca80 74 72 69 6e 67 29 20 24 73 63 61 6c 61 72 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 tring).$scalar;.}.}.........priv
acaa0 61 74 65 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 69 6d 65 73 74 61 6d 70 ate.static.function.getTimestamp
acac0 52 65 67 65 78 28 29 0a 7b 0a 72 65 74 75 72 6e 20 3c 3c 3c 45 4f 46 0a 20 20 20 20 20 20 20 20 Regex().{.return.<<<EOF.........
acae0 7e 5e 0a 20 20 20 20 20 20 20 20 28 3f 50 3c 79 65 61 72 3e 5b 30 2d 39 5d 5b 30 2d 39 5d 5b 30 ~^.........(?P<year>[0-9][0-9][0
acb00 2d 39 5d 5b 30 2d 39 5d 29 0a 20 20 20 20 20 20 20 20 2d 28 3f 50 3c 6d 6f 6e 74 68 3e 5b 30 2d -9][0-9]).........-(?P<month>[0-
acb20 39 5d 5b 30 2d 39 5d 3f 29 0a 20 20 20 20 20 20 20 20 2d 28 3f 50 3c 64 61 79 3e 5b 30 2d 39 5d 9][0-9]?).........-(?P<day>[0-9]
acb40 5b 30 2d 39 5d 3f 29 0a 20 20 20 20 20 20 20 20 28 3f 3a 28 3f 3a 5b 54 74 5d 7c 5b 20 5c 74 5d [0-9]?).........(?:(?:[Tt]|[.\t]
acb60 2b 29 0a 20 20 20 20 20 20 20 20 28 3f 50 3c 68 6f 75 72 3e 5b 30 2d 39 5d 5b 30 2d 39 5d 3f 29 +).........(?P<hour>[0-9][0-9]?)
acb80 0a 20 20 20 20 20 20 20 20 3a 28 3f 50 3c 6d 69 6e 75 74 65 3e 5b 30 2d 39 5d 5b 30 2d 39 5d 29 .........:(?P<minute>[0-9][0-9])
acba0 0a 20 20 20 20 20 20 20 20 3a 28 3f 50 3c 73 65 63 6f 6e 64 3e 5b 30 2d 39 5d 5b 30 2d 39 5d 29 .........:(?P<second>[0-9][0-9])
acbc0 0a 20 20 20 20 20 20 20 20 28 3f 3a 5c 2e 28 3f 50 3c 66 72 61 63 74 69 6f 6e 3e 5b 30 2d 39 5d .........(?:\.(?P<fraction>[0-9]
acbe0 2a 29 29 3f 0a 20 20 20 20 20 20 20 20 28 3f 3a 5b 20 5c 74 5d 2a 28 3f 50 3c 74 7a 3e 5a 7c 28 *))?.........(?:[.\t]*(?P<tz>Z|(
acc00 3f 50 3c 74 7a 5f 73 69 67 6e 3e 5b 2d 2b 5d 29 28 3f 50 3c 74 7a 5f 68 6f 75 72 3e 5b 30 2d 39 ?P<tz_sign>[-+])(?P<tz_hour>[0-9
acc20 5d 5b 30 2d 39 5d 3f 29 0a 20 20 20 20 20 20 20 20 28 3f 3a 3a 28 3f 50 3c 74 7a 5f 6d 69 6e 75 ][0-9]?).........(?::(?P<tz_minu
acc40 74 65 3e 5b 30 2d 39 5d 5b 30 2d 39 5d 29 29 3f 29 29 3f 29 3f 0a 20 20 20 20 20 20 20 20 24 7e te>[0-9][0-9]))?))?)?.........$~
acc60 78 0a 45 4f 46 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 x.EOF;.}.}.<?php...........names
acc80 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 pace.Symfony\Component\Console\C
acca0 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 ommand;..use.Symfony\Component\C
accc0 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 3b 0a onsole\Helper\DescriptorHelper;.
acce0 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
acd00 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 put\InputArgument;.use.Symfony\C
acd20 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 omponent\Console\Input\InputOpti
acd40 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c on;.use.Symfony\Component\Consol
acd60 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 e\Input\InputInterface;.use.Symf
acd80 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
acda0 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 48 65 6c 70 43 6f putInterface;.......class.HelpCo
acdc0 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 69 76 61 74 65 20 mmand.extends.Command.{.private.
acde0 24 63 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e $command;.....protected.function
ace00 20 63 6f 6e 66 69 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 .configure().{.$this->ignoreVali
ace20 64 61 74 69 6f 6e 45 72 72 6f 72 73 28 29 3b 0a 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 dationErrors();..$this.->setName
ace40 28 27 68 65 6c 70 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 ('help').->setDefinition(array(.
ace60 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 5f 6e 61 6d 65 27 new.InputArgument('command_name'
ace80 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 54 68 65 20 ,.InputArgument::OPTIONAL,.'The.
acea0 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 27 2c 20 27 68 65 6c 70 27 29 2c 0a 6e 65 77 20 49 6e 70 75 command.name',.'help'),.new.Inpu
acec0 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e tOption('xml',.null,.InputOption
acee0 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 68 65 6c 70 20 61 73 ::VALUE_NONE,.'To.output.help.as
acf00 20 58 4d 4c 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 .XML'),.new.InputOption('format'
acf20 2c 20 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 ,.null,.InputOption::VALUE_REQUI
acf40 52 45 44 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 68 65 6c 70 20 69 6e 20 6f 74 68 65 72 20 66 6f RED,.'To.output.help.in.other.fo
acf60 72 6d 61 74 73 27 2c 20 27 74 78 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 rmats',.'txt'),.new.InputOption(
acf80 27 72 61 77 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 'raw',.null,.InputOption::VALUE_
acfa0 4e 4f 4e 45 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 72 61 77 20 63 6f 6d 6d 61 6e 64 20 68 65 6c NONE,.'To.output.raw.command.hel
acfc0 70 27 29 2c 0a 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 44 69 73 70 6c 61 p'),.)).->setDescription('Displa
acfe0 79 73 20 68 65 6c 70 20 66 6f 72 20 61 20 63 6f 6d 6d 61 6e 64 27 29 0a 2d 3e 73 65 74 48 65 6c ys.help.for.a.command').->setHel
ad000 70 28 3c 3c 3c 45 4f 46 0a 54 68 65 20 3c 69 6e 66 6f 3e 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 p(<<<EOF.The.<info>%command.name
ad020 25 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 20 64 69 73 70 6c 61 79 73 20 68 65 6c 70 20 66 %</info>.command.displays.help.f
ad040 6f 72 20 61 20 67 69 76 65 6e 20 63 6f 6d 6d 61 6e 64 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 or.a.given.command:....<info>php
ad060 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e .%command.full_name%.list</info>
ad080 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 20 68 65 6c 70 20 69 ..You.can.also.output.the.help.i
ad0a0 6e 20 6f 74 68 65 72 20 66 6f 72 6d 61 74 73 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 3c 63 6f n.other.formats.by.using.the.<co
ad0c0 6d 6d 65 6e 74 3e 2d 2d 66 6f 72 6d 61 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 6f 70 74 69 6f 6e 3a mment>--format</comment>.option:
ad0e0 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 ....<info>php.%command.full_name
ad100 25 20 2d 2d 66 6f 72 6d 61 74 3d 78 6d 6c 20 6c 69 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 54 6f 20 64 %.--format=xml.list</info>..To.d
ad120 69 73 70 6c 61 79 20 74 68 65 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d isplay.the.list.of.available.com
ad140 6d 61 6e 64 73 2c 20 70 6c 65 61 73 65 20 75 73 65 20 74 68 65 20 3c 69 6e 66 6f 3e 6c 69 73 74 mands,.please.use.the.<info>list
ad160 3c 2f 69 6e 66 6f 3e 20 63 6f 6d 6d 61 6e 64 2e 0a 45 4f 46 0a 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 0a </info>.command..EOF.).;.}......
ad180 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 43 6f 6d 6d .public.function.setCommand(Comm
ad1a0 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 6e 64 20 3d and.$command).{.$this->command.=
ad1c0 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 75 6e 63 74 .$command;.}.....protected.funct
ad1e0 69 6f 6e 20 65 78 65 63 75 74 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 ion.execute(InputInterface.$inpu
ad200 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 t,.OutputInterface.$output).{.if
ad220 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 0a 24 74 68 .(null.===.$this->command).{.$th
ad240 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 69 63 61 74 is->command.=.$this->getApplicat
ad260 69 6f 6e 28 29 2d 3e 66 69 6e 64 28 24 69 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 ion()->find($input->getArgument(
ad280 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 75 74 2d 'command_name'));.}..if.($input-
ad2a0 3e 67 65 74 4f 70 74 69 6f 6e 28 27 78 6d 6c 27 29 29 20 7b 0a 24 69 6e 70 75 74 2d 3e 73 65 74 >getOption('xml')).{.$input->set
ad2c0 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 27 78 6d 6c 27 29 3b 0a 7d 0a 0a 24 68 65 6c Option('format',.'xml');.}..$hel
ad2e0 70 65 72 20 3d 20 6e 65 77 20 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 28 29 3b 0a 24 68 per.=.new.DescriptorHelper();.$h
ad300 65 6c 70 65 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2d 3e elper->describe($output,.$this->
ad320 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 28 0a 27 66 6f 72 6d 61 74 27 20 3d 3e 20 24 69 6e 70 command,.array(.'format'.=>.$inp
ad340 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 29 2c 0a 27 72 61 77 27 20 3d ut->getOption('format'),.'raw'.=
ad360 3e 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 72 61 77 27 29 2c 0a 29 29 3b 0a >.$input->getOption('raw'),.));.
ad380 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 3c 3f 70 68 .$this->command.=.null;.}.}.<?ph
ad3a0 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
ad3c0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 75 73 65 20 53 79 mponent\Console\Command;..use.Sy
ad3e0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 mfony\Component\Console\Descript
ad400 6f 72 5c 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 or\TextDescriptor;.use.Symfony\C
ad420 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 omponent\Console\Descriptor\XmlD
ad440 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 escriptor;.use.Symfony\Component
ad460 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a \Console\Input\InputDefinition;.
ad480 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
ad4a0 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d put\InputOption;.use.Symfony\Com
ad4c0 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
ad4e0 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
ad500 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 e\Input\InputInterface;.use.Symf
ad520 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 42 75 66 ony\Component\Console\Output\Buf
ad540 66 65 72 65 64 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 feredOutput;.use.Symfony\Compone
ad560 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
ad580 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
ad5a0 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e \Application;.use.Symfony\Compon
ad5c0 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 65 6c 70 65 72 53 65 74 3b 0a 0a 0a ent\Console\Helper\HelperSet;...
ad5e0 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 ......class.Command.{.private.$a
ad600 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 69 76 61 pplication;.private.$name;.priva
ad620 74 65 20 24 61 6c 69 61 73 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 te.$aliases.=.array();.private.$
ad640 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 3b 0a 70 72 69 76 61 definition;.private.$help;.priva
ad660 74 65 20 24 64 65 73 63 72 69 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 69 67 6e 6f 72 65 te.$description;.private.$ignore
ad680 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 70 72 69 76 61 74 ValidationErrors.=.false;.privat
ad6a0 65 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 20 3d e.$applicationDefinitionMerged.=
ad6c0 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 .false;.private.$applicationDefi
ad6e0 6e 69 74 69 6f 6e 4d 65 72 67 65 64 57 69 74 68 41 72 67 73 20 3d 20 66 61 6c 73 65 3b 0a 70 72 nitionMergedWithArgs.=.false;.pr
ad700 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 0a ivate.$code;.private.$synopsis;.
ad720 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 75 private.$helperSet;...........pu
ad740 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 20 blic.function.__construct($name.
ad760 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 65 =.null).{.$this->definition.=.ne
ad780 77 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 w.InputDefinition();..if.(null.!
ad7a0 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 4e 61 6d 65 28 24 6e 61 6d 65 ==.$name).{.$this->setName($name
ad7c0 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 72 65 28 29 3b 0a 0a 69 66 20 28 21 );.}..$this->configure();..if.(!
ad7e0 24 74 68 69 73 2d 3e 6e 61 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 $this->name).{.throw.new.\LogicE
ad800 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 6e 61 6d 65 20 63 61 6e 6e 6f xception('The.command.name.canno
ad820 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 t.be.empty.');.}.}.......public.
ad840 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 28 function.ignoreValidationErrors(
ad860 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 ).{.$this->ignoreValidationError
ad880 73 20 3d 20 74 72 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 s.=.true;.}.........public.funct
ad8a0 69 6f 6e 20 73 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 ion.setApplication(Application.$
ad8c0 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 application.=.null).{.$this->app
ad8e0 6c 69 63 61 74 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 69 66 20 28 24 61 70 lication.=.$application;.if.($ap
ad900 70 6c 69 63 61 74 69 6f 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 48 65 6c 70 65 72 53 65 74 plication).{.$this->setHelperSet
ad920 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 29 3b 0a ($application->getHelperSet());.
ad940 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c }.else.{.$this->helperSet.=.null
ad960 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 20 73 65 74 48 ;.}.}.......public.function.setH
ad980 65 6c 70 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 29 0a 7b elperSet(HelperSet.$helperSet).{
ad9a0 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 53 65 74 20 3d 20 24 68 65 6c 70 65 72 53 65 74 3b 0a .$this->helperSet.=.$helperSet;.
ad9c0 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 48 65 6c 70 65 }.......public.function.getHelpe
ad9e0 72 53 65 74 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 rSet().{.return.$this->helperSet
ada00 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 74 41 ;.}.........public.function.getA
ada20 70 70 6c 69 63 61 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 pplication().{.return.$this->app
ada40 6c 69 63 61 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 lication;.}..........public.func
ada60 74 69 6f 6e 20 69 73 45 6e 61 62 6c 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a tion.isEnabled().{.return.true;.
ada80 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 63 6f 6e 66 69 67 75 }.....protected.function.configu
adaa0 72 65 28 29 0a 7b 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 63 re().{.}..................protec
adac0 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
adae0 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
adb00 70 75 74 29 0a 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 put).{.throw.new.\LogicException
adb20 28 27 59 6f 75 20 6d 75 73 74 20 6f 76 65 72 72 69 64 65 20 74 68 65 20 65 78 65 63 75 74 65 28 ('You.must.override.the.execute(
adb40 29 20 6d 65 74 68 6f 64 20 69 6e 20 74 68 65 20 63 6f 6e 63 72 65 74 65 20 63 6f 6d 6d 61 6e 64 ).method.in.the.concrete.command
adb60 20 63 6c 61 73 73 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 .class.');.}........protected.fu
adb80 6e 63 74 69 6f 6e 20 69 6e 74 65 72 61 63 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 nction.interact(InputInterface.$
adba0 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).
adbc0 7b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e {.}...........protected.function
adbe0 20 69 6e 69 74 69 61 6c 69 7a 65 28 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 .initialize(InputInterface.$inpu
adc00 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 7d 0a t,.OutputInterface.$output).{.}.
adc20 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 74 ....................public.funct
adc40 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 74 2c 20 4f ion.run(InputInterface.$input,.O
adc60 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 0a 20 24 74 68 69 utputInterface.$output).{...$thi
adc80 73 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 0a 0a 20 24 74 68 69 73 2d 3e 6d 65 72 67 s->getSynopsis();....$this->merg
adca0 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 0a 0a 20 74 72 79 eApplicationDefinition();....try
adcc0 20 7b 0a 24 69 6e 70 75 74 2d 3e 62 69 6e 64 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f .{.$input->bind($this->definitio
adce0 6e 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 69 66 n);.}.catch.(\Exception.$e).{.if
add00 20 28 21 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 56 61 6c 69 64 61 74 69 6f 6e 45 72 72 6f 72 73 .(!$this->ignoreValidationErrors
add20 29 20 7b 0a 74 68 72 6f 77 20 24 65 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 ).{.throw.$e;.}.}..$this->initia
add40 6c 69 7a 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 69 66 20 28 24 69 6e 70 lize($input,.$output);..if.($inp
add60 75 74 2d 3e 69 73 49 6e 74 65 72 61 63 74 69 76 65 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e ut->isInteractive()).{.$this->in
add80 74 65 72 61 63 74 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 69 6e 70 teract($input,.$output);.}..$inp
adda0 75 74 2d 3e 76 61 6c 69 64 61 74 65 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 64 65 ut->validate();..if.($this->code
addc0 29 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 ).{.$statusCode.=.call_user_func
adde0 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 75 74 29 3b 0a ($this->code,.$input,.$output);.
ade00 7d 20 65 6c 73 65 20 7b 0a 24 73 74 61 74 75 73 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 65 78 }.else.{.$statusCode.=.$this->ex
ade20 65 63 75 74 65 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 72 65 74 75 72 ecute($input,.$output);.}..retur
ade40 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 28 69 6e 74 n.is_numeric($statusCode).?.(int
ade60 29 20 24 73 74 61 74 75 73 43 6f 64 65 20 3a 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ).$statusCode.:.0;.}............
ade80 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 64 65 28 24 63 ......public.function.setCode($c
adea0 6f 64 65 29 0a 7b 0a 69 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 63 6f 64 65 29 29 20 ode).{.if.(!is_callable($code)).
adec0 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
adee0 70 74 69 6f 6e 28 27 49 6e 76 61 6c 69 64 20 63 61 6c 6c 61 62 6c 65 20 70 72 6f 76 69 64 65 64 ption('Invalid.callable.provided
adf00 20 74 6f 20 43 6f 6d 6d 61 6e 64 3a 3a 73 65 74 43 6f 64 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 .to.Command::setCode.');.}..$thi
adf20 73 2d 3e 63 6f 64 65 20 3d 20 24 63 6f 64 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a s->code.=.$code;..return.$this;.
adf40 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 6d 65 72 67 65 41 }.........public.function.mergeA
adf60 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 24 6d 65 72 67 65 41 72 67 73 20 pplicationDefinition($mergeArgs.
adf80 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 61 70 =.true).{.if.(null.===.$this->ap
adfa0 70 6c 69 63 61 74 69 6f 6e 20 7c 7c 20 28 74 72 75 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 61 70 plication.||.(true.===.$this->ap
adfc0 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 26 26 20 28 24 74 plicationDefinitionMerged.&&.($t
adfe0 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 his->applicationDefinitionMerged
ae000 57 69 74 68 41 72 67 73 20 7c 7c 20 21 24 6d 65 72 67 65 41 72 67 73 29 29 29 20 7b 0a 72 65 74 WithArgs.||.!$mergeArgs))).{.ret
ae020 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 24 6d 65 72 67 65 41 72 67 73 29 20 7b 0a 24 63 75 72 72 65 urn;.}..if.($mergeArgs).{.$curre
ae040 6e 74 41 72 67 75 6d 65 6e 74 73 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d ntArguments.=.$this->definition-
ae060 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 >getArguments();.$this->definiti
ae080 6f 6e 2d 3e 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 on->setArguments($this->applicat
ae0a0 69 6f 6e 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 67 65 74 41 72 67 75 6d 65 6e ion->getDefinition()->getArgumen
ae0c0 74 73 28 29 29 3b 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 ts());.$this->definition->addArg
ae0e0 75 6d 65 6e 74 73 28 24 63 75 72 72 65 6e 74 41 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 24 74 uments($currentArguments);.}..$t
ae100 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 73 28 24 74 68 69 his->definition->addOptions($thi
ae120 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 69 6f 6e 28 29 2d s->application->getDefinition()-
ae140 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 70 6c 69 63 61 74 >getOptions());..$this->applicat
ae160 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 3b 0a 69 66 20 28 ionDefinitionMerged.=.true;.if.(
ae180 24 6d 65 72 67 65 41 72 67 73 29 20 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e $mergeArgs).{.$this->application
ae1a0 44 65 66 69 6e 69 74 69 6f 6e 4d 65 72 67 65 64 57 69 74 68 41 72 67 73 20 3d 20 74 72 75 65 3b DefinitionMergedWithArgs.=.true;
ae1c0 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 .}.}...........public.function.s
ae1e0 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 0a 7b 0a 69 66 20 28 etDefinition($definition).{.if.(
ae200 24 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 $definition.instanceof.InputDefi
ae220 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 3d 20 24 64 nition).{.$this->definition.=.$d
ae240 65 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 efinition;.}.else.{.$this->defin
ae260 69 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 ition->setDefinition($definition
ae280 29 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 );.}..$this->applicationDefiniti
ae2a0 6f 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 onMerged.=.false;..return.$this;
ae2c0 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 44 65 .}.........public.function.getDe
ae2e0 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 64 65 66 69 6e finition().{.return.$this->defin
ae300 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 ition;.}............public.funct
ae320 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
ae340 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();.}....
ae360 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
ae380 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
ae3a0 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).{
ae3c0 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(
ae3e0 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,.
ae400 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
ae420 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.
ae440 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
ae460 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
ae480 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).{.
ae4a0 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
ae4c0 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,.$
ae4e0 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));.
ae500 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;.}................
ae520 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)
ae540 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);..
ae560 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
ae580 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
ae5a0 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;.}.
ae5c0 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
ae5e0 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->
ae600 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
ae620 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
ae640 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.$
ae660 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
ae680 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).{.
ae6a0 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
ae6c0 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
ae6e0 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;.}.
ae700 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
ae720 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;
ae740 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
ae760 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%'
ae780 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
ae7a0 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
ae7c0 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
ae7e0 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
ae800 48 65 6c 70 28 29 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 Help());.}.............public.fu
ae820 6e 63 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 nction.setAliases($aliases).{.fo
ae840 72 65 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 reach.($aliases.as.$alias).{.$th
ae860 69 73 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 is->validateName($alias);.}..$th
ae880 69 73 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 is->aliases.=.$aliases;..return.
ae8a0 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 74 69 6f 6e $this;.}.........public.function
ae8c0 20 67 65 74 41 6c 69 61 73 65 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 6c .getAliases().{.return.$this->al
ae8e0 69 61 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 iases;.}.......public.function.g
ae900 65 74 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 etSynopsis().{.if.(null.===.$thi
ae920 73 2d 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 s->synopsis).{.$this->synopsis.=
ae940 20 74 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 .trim(sprintf('%s.%s',.$this->na
ae960 6d 65 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 me,.$this->definition->getSynops
ae980 69 73 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 is()));.}..return.$this->synopsi
ae9a0 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e s;.}.............public.function
ae9c0 20 67 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 .getHelper($name).{.return.$this
ae9e0 2d 3e 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 ->helperSet->get($name);.}......
aea00 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 54 65 78 74 28 29 0a 7b 0a 24 64 ...public.function.asText().{.$d
aea20 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 28 29 escriptor.=.new.TextDescriptor()
aea40 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 28 42 ;.$output.=.new.BufferedOutput(B
aea60 75 66 66 65 72 65 64 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c ufferedOutput::VERBOSITY_NORMAL,
aea80 20 74 72 75 65 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f .true);.$descriptor->describe($o
aeaa0 75 74 70 75 74 2c 20 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 72 61 77 5f 6f 75 74 70 75 74 27 utput,.$this,.array('raw_output'
aeac0 20 3d 3e 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 2d 3e 66 65 74 .=>.true));..return.$output->fet
aeae0 63 68 28 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 ch();.}...........public.functio
aeb00 6e 20 61 73 58 6d 6c 28 24 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 64 65 73 63 72 n.asXml($asDom.=.false).{.$descr
aeb20 69 70 74 6f 72 20 3d 20 6e 65 77 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 69 66 iptor.=.new.XmlDescriptor();..if
aeb40 20 28 24 61 73 44 6f 6d 29 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 2d 3e .($asDom).{.return.$descriptor->
aeb60 67 65 74 43 6f 6d 6d 61 6e 64 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 24 6f getCommandDocument($this);.}..$o
aeb80 75 74 70 75 74 20 3d 20 6e 65 77 20 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 28 29 3b 0a 24 64 utput.=.new.BufferedOutput();.$d
aeba0 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 escriptor->describe($output,.$th
aebc0 69 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 2d 3e 66 65 74 63 68 28 29 3b 0a 7d is);..return.$output->fetch();.}
aebe0 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 76 61 6c 69 ...........private.function.vali
aec00 64 61 74 65 4e 61 6d 65 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 dateName($name).{.if.(!preg_matc
aec20 68 28 27 2f 5e 5b 5e 5c 3a 5d 2b 2b 28 5c 3a 5b 5e 5c 3a 5d 2b 2b 29 2a 24 2f 27 2c 20 24 6e 61 h('/^[^\:]++(\:[^\:]++)*$/',.$na
aec40 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 65 6e me)).{.throw.new.\InvalidArgumen
aec60 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 6e 61 6d 65 tException(sprintf('Command.name
aec80 20 22 25 73 22 20 69 73 20 69 6e 76 61 6c 69 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 7d ."%s".is.invalid.',.$name));.}.}
aeca0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d .}.<?php...........namespace.Sym
aecc0 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 3b 0a fony\Component\Console\Command;.
aece0 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 48 .use.Symfony\Component\Console\H
aed00 65 6c 70 65 72 5c 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 elper\DescriptorHelper;.use.Symf
aed20 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
aed40 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
aed60 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 \Console\Input\InputOption;.use.
aed80 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\
aeda0 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 70 InputInterface;.use.Symfony\Comp
aedc0 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
aede0 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 73 face;.use.Symfony\Component\Cons
aee00 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 0a 0a 0a 0a 0a ole\Input\InputDefinition;......
aee20 0a 63 6c 61 73 73 20 4c 69 73 74 43 6f 6d 6d 61 6e 64 20 65 78 74 65 6e 64 73 20 43 6f 6d 6d 61 .class.ListCommand.extends.Comma
aee40 6e 64 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 nd.{....protected.function.confi
aee60 67 75 72 65 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 73 65 74 4e 61 6d 65 28 27 6c 69 73 74 27 29 gure().{.$this.->setName('list')
aee80 0a 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 65 .->setDefinition($this->createDe
aeea0 66 69 6e 69 74 69 6f 6e 28 29 29 0a 2d 3e 73 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 27 4c 69 finition()).->setDescription('Li
aeec0 73 74 73 20 63 6f 6d 6d 61 6e 64 73 27 29 0a 2d 3e 73 65 74 48 65 6c 70 28 3c 3c 3c 45 4f 46 0a sts.commands').->setHelp(<<<EOF.
aeee0 54 68 65 20 3c 69 6e 66 6f 3e 25 63 6f 6d 6d 61 6e 64 2e 6e 61 6d 65 25 3c 2f 69 6e 66 6f 3e 20 The.<info>%command.name%</info>.
aef00 63 6f 6d 6d 61 6e 64 20 6c 69 73 74 73 20 61 6c 6c 20 63 6f 6d 6d 61 6e 64 73 3a 0a 0a 20 20 3c command.lists.all.commands:....<
aef20 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 3c 2f 69 6e info>php.%command.full_name%</in
aef40 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 64 69 73 70 6c 61 79 20 74 68 65 20 63 6f fo>..You.can.also.display.the.co
aef60 6d 6d 61 6e 64 73 20 66 6f 72 20 61 20 73 70 65 63 69 66 69 63 20 6e 61 6d 65 73 70 61 63 65 3a mmands.for.a.specific.namespace:
aef80 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 ....<info>php.%command.full_name
aefa0 25 20 74 65 73 74 3c 2f 69 6e 66 6f 3e 0a 0a 59 6f 75 20 63 61 6e 20 61 6c 73 6f 20 6f 75 74 70 %.test</info>..You.can.also.outp
aefc0 75 74 20 74 68 65 20 69 6e 66 6f 72 6d 61 74 69 6f 6e 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d ut.the.information.in.other.form
aefe0 61 74 73 20 62 79 20 75 73 69 6e 67 20 74 68 65 20 3c 63 6f 6d 6d 65 6e 74 3e 2d 2d 66 6f 72 6d ats.by.using.the.<comment>--form
af000 61 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 6f 70 74 69 6f 6e 3a 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 at</comment>.option:....<info>ph
af020 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 25 20 2d 2d 66 6f 72 6d 61 74 3d 78 p.%command.full_name%.--format=x
af040 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 62 6c 65 20 74 6f ml</info>..It's.also.possible.to
af060 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 28 75 73 65 66 75 .get.raw.list.of.commands.(usefu
af080 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 6e 6e 65 72 29 3a l.for.embedding.command.runner):
af0a0 0a 0a 20 20 3c 69 6e 66 6f 3e 70 68 70 20 25 63 6f 6d 6d 61 6e 64 2e 66 75 6c 6c 5f 6e 61 6d 65 ....<info>php.%command.full_name
af0c0 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 0a 0a 0a 70 75 62 %.--raw</info>.EOF.).;.}.....pub
af0e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e lic.function.getNativeDefinition
af100 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 72 65 61 74 65 44 65 66 69 6e 69 74 ().{.return.$this->createDefinit
af120 69 6f 6e 28 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 ion();.}.....protected.function.
af140 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 20 4f execute(InputInterface.$input,.O
af160 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 24 69 utputInterface.$output).{.if.($i
af180 6e 70 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 69 6e 70 75 74 nput->getOption('xml')).{.$input
af1a0 2d 3e 73 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 27 78 6d 6c 27 29 3b 0a 7d 0a ->setOption('format',.'xml');.}.
af1c0 0a 24 68 65 6c 70 65 72 20 3d 20 6e 65 77 20 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 28 .$helper.=.new.DescriptorHelper(
af1e0 29 3b 0a 24 68 65 6c 70 65 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 );.$helper->describe($output,.$t
af200 68 69 73 2d 3e 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 2c 20 61 72 72 61 79 28 0a 27 66 his->getApplication(),.array(.'f
af220 6f 72 6d 61 74 27 20 3d 3e 20 24 69 6e 70 75 74 2d 3e 67 65 74 4f 70 74 69 6f 6e 28 27 66 6f 72 ormat'.=>.$input->getOption('for
af240 6d 61 74 27 29 2c 0a 27 72 61 77 5f 74 65 78 74 27 20 3d 3e 20 24 69 6e 70 75 74 2d 3e 67 65 74 mat'),.'raw_text'.=>.$input->get
af260 4f 70 74 69 6f 6e 28 27 72 61 77 27 29 2c 0a 27 6e 61 6d 65 73 70 61 63 65 27 20 3d 3e 20 24 69 Option('raw'),.'namespace'.=>.$i
af280 6e 70 75 74 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 29 2c 0a nput->getArgument('namespace'),.
af2a0 29 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 63 72 65 61 74 ));.}.....private.function.creat
af2c0 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 77 20 49 6e 70 75 74 eDefinition().{.return.new.Input
af2e0 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d Definition(array(.new.InputArgum
af300 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 75 6d 65 6e 74 3a 3a ent('namespace',.InputArgument::
af320 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 6e 61 6d 65 27 29 2c OPTIONAL,.'The.namespace.name'),
af340 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 49 6e .new.InputOption('xml',.null,.In
af360 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 70 75 putOption::VALUE_NONE,.'To.outpu
af380 74 20 6c 69 73 74 20 61 73 20 58 4d 4c 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e t.list.as.XML'),.new.InputOption
af3a0 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 3a 3a 56 41 4c 55 45 ('raw',.null,.InputOption::VALUE
af3c0 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 6d 61 6e 64 20 6c 69 _NONE,.'To.output.raw.command.li
af3e0 73 74 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 66 6f 72 6d 61 74 27 2c 20 st'),.new.InputOption('format',.
af400 6e 75 6c 6c 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 null,.InputOption::VALUE_REQUIRE
af420 44 2c 20 27 54 6f 20 6f 75 74 70 75 74 20 6c 69 73 74 20 69 6e 20 6f 74 68 65 72 20 66 6f 72 6d D,.'To.output.list.in.other.form
af440 61 74 73 27 2c 20 27 74 78 74 27 29 2c 0a 29 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a ats',.'txt'),.));.}.}.<?php.....
af460 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
af480 74 5c 43 6f 6e 73 6f 6c 65 5c 54 65 73 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\Console\Tester;..use.Symfony\C
af4a0 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 73 omponent\Console\Application;.us
af4c0 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
af4e0 74 5c 41 72 72 61 79 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e t\ArrayInput;.use.Symfony\Compon
af500 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
af520 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\
af540 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 Output\OutputInterface;.use.Symf
af560 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 53 74 72 ony\Component\Console\Output\Str
af580 65 61 6d 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 70 70 6c eamOutput;............class.Appl
af5a0 69 63 61 74 69 6f 6e 54 65 73 74 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 icationTester.{.private.$applica
af5c0 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6f tion;.private.$input;.private.$o
af5e0 75 74 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 74 75 73 43 6f 64 65 3b 0a 0a 0a 0a 0a utput;.private.$statusCode;.....
af600 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 41 70 ..public.function.__construct(Ap
af620 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 69 73 2d plication.$application).{.$this-
af640 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 3b 0a 7d 0a 0a >application.=.$application;.}..
af660 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 72 75 ..............public.function.ru
af680 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 61 72 72 61 79 n(array.$input,.$options.=.array
af6a0 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 79 49 6e ()).{.$this->input.=.new.ArrayIn
af6c0 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 6e 73 5b put($input);.if.(isset($options[
af6e0 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 75 74 2d 'interactive'])).{.$this->input-
af700 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 65 72 61 >setInteractive($options['intera
af720 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 6e 65 77 ctive']);.}..$this->output.=.new
af740 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 6d 6f 72 .StreamOutput(fopen('php://memor
af760 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 6f 70 74 y',.'w',.false));.if.(isset($opt
af780 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 6f 75 74 ions['decorated'])).{.$this->out
af7a0 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 65 63 6f put->setDecorated($options['deco
af7c0 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 73 5b 27 rated']);.}.if.(isset($options['
af7e0 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 2d 3e 73 verbosity'])).{.$this->output->s
af800 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 74 79 27 etVerbosity($options['verbosity'
af820 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 43 6f 64 65 20 ]);.}..return.$this->statusCode.
af840 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 72 75 6e 28 24 74 68 69 73 2d =.$this->application->run($this-
af860 3e 69 6e 70 75 74 2c 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a >input,.$this->output);.}.......
af880 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 44 69 73 70 6c 61 79 28 24 6e 6f ..public.function.getDisplay($no
af8a0 72 6d 61 6c 69 7a 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 72 65 77 69 6e 64 28 24 74 68 69 73 2d rmalize.=.false).{.rewind($this-
af8c0 3e 6f 75 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a 24 64 69 73 70 6c 61 79 >output->getStream());..$display
af8e0 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 6f 75 .=.stream_get_contents($this->ou
af900 74 70 75 74 2d 3e 67 65 74 53 74 72 65 61 6d 28 29 29 3b 0a 0a 69 66 20 28 24 6e 6f 72 6d 61 6c tput->getStream());..if.($normal
af920 69 7a 65 29 20 7b 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 50 48 ize).{.$display.=.str_replace(PH
af940 50 5f 45 4f 4c 2c 20 22 5c 6e 22 2c 20 24 64 69 73 70 6c 61 79 29 3b 0a 7d 0a 0a 72 65 74 75 72 P_EOL,."\n",.$display);.}..retur
af960 6e 20 24 64 69 73 70 6c 61 79 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 n.$display;.}.......public.funct
af980 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 69 ion.getInput().{.return.$this->i
af9a0 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 65 nput;.}.......public.function.ge
af9c0 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 74 tOutput().{.return.$this->output
af9e0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 ;.}.......public.function.getSta
afa00 74 75 73 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 tusCode().{.return.$this->status
afa20 43 6f 64 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 Code;.}.}.<?php...........namesp
afa40 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 54 65 ace.Symfony\Component\Console\Te
afa60 73 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e ster;..use.Symfony\Component\Con
afa80 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e sole\Command\Command;.use.Symfon
afaa0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 y\Component\Console\Input\ArrayI
afac0 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 nput;.use.Symfony\Component\Cons
afae0 6f 6c 65 5c 4f 75 74 70 75 74 5c 53 74 72 65 61 6d 4f 75 74 70 75 74 3b 0a 75 73 65 20 53 79 6d ole\Output\StreamOutput;.use.Sym
afb00 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
afb20 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
afb40 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
afb60 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 6d 61 6e 64 54 65 73 74 65 72 0a 7b 0a 70 e;.......class.CommandTester.{.p
afb80 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e 64 3b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 3b rivate.$command;.private.$input;
afba0 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 73 74 61 74 75 .private.$output;.private.$statu
afbc0 73 43 6f 64 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 5f 5f 63 sCode;.......public.function.__c
afbe0 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 74 68 onstruct(Command.$command).{.$th
afc00 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 0a 0a 0a is->command.=.$command;.}.......
afc20 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 .........public.function.execute
afc40 28 61 72 72 61 79 20 24 69 6e 70 75 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 (array.$input,.array.$options.=.
afc60 61 72 72 61 79 28 29 29 0a 7b 0a 0a 20 0a 20 69 66 20 28 21 69 73 73 65 74 28 24 69 6e 70 75 74 array()).{.....if.(!isset($input
afc80 5b 27 63 6f 6d 6d 61 6e 64 27 5d 29 0a 26 26 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 70 70 6c 69 ['command']).&&.(null.!==.$appli
afca0 63 61 74 69 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 70 70 6c cation.=.$this->command->getAppl
afcc0 69 63 61 74 69 6f 6e 28 29 29 0a 26 26 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 44 ication()).&&.$application->getD
afce0 65 66 69 6e 69 74 69 6f 6e 28 29 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e efinition()->hasArgument('comman
afd00 64 27 29 0a 29 20 7b 0a 24 69 6e 70 75 74 5b 27 63 6f 6d 6d 61 6e 64 27 5d 20 3d 20 24 74 68 69 d').).{.$input['command'].=.$thi
afd20 73 2d 3e 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d s->command->getName();.}..$this-
afd40 3e 69 6e 70 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b >input.=.new.ArrayInput($input);
afd60 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 .if.(isset($options['interactive
afd80 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 2d 3e 73 65 74 49 6e 74 65 72 61 63 74 '])).{.$this->input->setInteract
afda0 69 76 65 28 24 6f 70 74 69 6f 6e 73 5b 27 69 6e 74 65 72 61 63 74 69 76 65 27 5d 29 3b 0a 7d 0a ive($options['interactive']);.}.
afdc0 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 .$this->output.=.new.StreamOutpu
afde0 74 28 66 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 6d 65 6d 6f 72 79 27 2c 20 27 77 27 2c 20 66 61 6c t(fopen('php://memory',.'w',.fal
afe00 73 65 29 29 3b 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 se));.if.(isset($options['decora
afe20 74 65 64 27 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f ted'])).{.$this->output->setDeco
afe40 72 61 74 65 64 28 24 6f 70 74 69 6f 6e 73 5b 27 64 65 63 6f 72 61 74 65 64 27 5d 29 3b 0a 7d 0a rated($options['decorated']);.}.
afe60 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 if.(isset($options['verbosity'])
afe80 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 ).{.$this->output->setVerbosity(
afea0 24 6f 70 74 69 6f 6e 73 5b 27 76 65 72 62 6f 73 69 74 79 27 5d 29 3b 0a 7d 0a 0a 72 65 74 75 72 $options['verbosity']);.}..retur
afec0 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 43 6f 64 65 20 3d 20 24 74 68 69 73 2d 3e 63 6f 6d n.$this->statusCode.=.$this->com
afee0 6d 61 6e 64 2d 3e 72 75 6e 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c 20 24 74 68 69 73 2d 3e 6f mand->run($this->input,.$this->o
aff00 75 74 70 75 74 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 utput);.}.........public.functio
aff20 6e 20 67 65 74 44 69 73 70 6c 61 79 28 24 6e 6f 72 6d 61 6c 69 7a 65 20 3d 20 66 61 6c 73 65 29 n.getDisplay($normalize.=.false)
aff40 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 67 65 74 53 74 72 65 .{.rewind($this->output->getStre
aff60 61 6d 28 29 29 3b 0a 0a 24 64 69 73 70 6c 61 79 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f am());..$display.=.stream_get_co
aff80 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 61 6d 28 ntents($this->output->getStream(
affa0 29 29 3b 0a 0a 69 66 20 28 24 6e 6f 72 6d 61 6c 69 7a 65 29 20 7b 0a 24 64 69 73 70 6c 61 79 20 ));..if.($normalize).{.$display.
affc0 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 50 48 50 5f 45 4f 4c 2c 20 22 5c 6e 22 2c 20 24 64 69 =.str_replace(PHP_EOL,."\n",.$di
affe0 73 70 6c 61 79 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 69 73 70 6c 61 79 3b 0a 7d 0a 0a 0a splay);.}..return.$display;.}...
b0000 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 70 75 74 28 29 0a 7b ....public.function.getInput().{
b0020 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 .return.$this->input;.}.......pu
b0040 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 72 65 74 75 blic.function.getOutput().{.retu
b0060 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rn.$this->output;.}.......public
b0080 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 61 74 75 73 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 .function.getStatusCode().{.retu
b00a0 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 74 75 73 43 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a rn.$this->statusCode;.}.}.<?php.
b00c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ..........namespace.Symfony\Comp
b00e0 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 63 6c 61 onent\Console\Formatter;.....cla
b0100 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 61 63 6b 0a 7b 0a 0a ss.OutputFormatterStyleStack.{..
b0120 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 69 76 61 74 65 20 24 ..private.$styles;.....private.$
b0140 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 66 75 6e 63 74 69 6f emptyStyle;.......public.functio
b0160 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 74 74 65 72 53 74 79 n.__construct(OutputFormatterSty
b0180 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 20 6e 75 6c 6c 29 0a leInterface.$emptyStyle.=.null).
b01a0 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 70 74 79 53 74 79 6c {.$this->emptyStyle.=.$emptyStyl
b01c0 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 74 79 6c 65 28 29 3b e.?:.new.OutputFormatterStyle();
b01e0 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 62 6c 69 63 20 66 75 .$this->reset();.}.....public.fu
b0200 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 74 79 6c 65 73 20 3d nction.reset().{.$this->styles.=
b0220 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 66 75 6e 63 74 69 6f .array();.}.......public.functio
b0240 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 6c 65 49 6e 74 65 72 n.push(OutputFormatterStyleInter
b0260 66 61 63 65 20 24 73 74 79 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 5d 20 3d face.$style).{.$this->styles[].=
b0280 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 69 63 20 66 75 6e 63 .$style;.}...........public.func
b02a0 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 74 79 6c 65 49 6e 74 tion.pop(OutputFormatterStyleInt
b02c0 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 66 20 28 65 6d 70 74 erface.$style.=.null).{.if.(empt
b02e0 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 73 y($this->styles)).{.return.$this
b0300 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 20 3d 3d 3d 20 24 73 ->emptyStyle;.}..if.(null.===.$s
b0320 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 24 74 68 69 73 2d 3e tyle).{.return.array_pop($this->
b0340 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 79 5f 72 65 76 65 72 styles);.}..foreach.(array_rever
b0360 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 73 20 24 69 6e 64 65 se($this->styles,.true).as.$inde
b0380 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 28 24 73 74 79 6c 65 x.=>.$stackedStyle).{.if.($style
b03a0 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 74 79 6c 65 2d 3e 61 ->apply('').===.$stackedStyle->a
b03c0 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 20 3d 20 61 72 72 61 pply('')).{.$this->styles.=.arra
b03e0 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 20 24 69 6e 64 65 78 y_slice($this->styles,.0,.$index
b0400 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 0a 7d 0a 7d 0a 0a 74 );..return.$stackedStyle;.}.}..t
b0420 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
b0440 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 79 6c 65 20 74 61 67 on('Incorrectly.nested.style.tag
b0460 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 20 66 75 6e 63 74 69 .found.');.}.......public.functi
b0480 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 74 79 28 24 74 68 69 on.getCurrent().{.if.(empty($thi
b04a0 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 73 2d 3e 65 6d 70 74 s->styles)).{.return.$this->empt
b04c0 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 73 74 79 6c 65 73 5b yStyle;.}..return.$this->styles[
b04e0 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 7d 0a 0a 0a 0a 0a 0a count($this->styles)-1];.}......
b0500 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 53 74 79 6c 65 28 4f .public.function.setEmptyStyle(O
b0520 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 20 24 65 6d utputFormatterStyleInterface.$em
b0540 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 74 79 6c 65 20 3d 20 ptyStyle).{.$this->emptyStyle.=.
b0560 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 73 3b 0a 7d 0a 0a 0a $emptyStyle;..return.$this;.}...
b0580 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 79 53 74 79 6c 65 28 ..public.function.getEmptyStyle(
b05a0 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 79 6c 65 3b 0a 7d 0a ).{.return.$this->emptyStyle;.}.
b05c0 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
b05e0 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 72 3b ony\Component\Console\Formatter;
b0600 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 61 74 74 65 72 53 74 .........class.OutputFormatterSt
b0620 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 61 74 74 65 72 53 74 yle.implements.OutputFormatterSt
b0640 79 6c 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 yleInterface.{.private.static.$a
b0660 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 3d 20 61 72 72 61 79 vailableForegroundColors.=.array
b0680 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 20 33 31 2c 0a 27 67 (.'black'.=>.30,.'red'.=>.31,.'g
b06a0 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 33 33 2c 0a 27 62 6c reen'.=>.32,.'yellow'.=>.33,.'bl
b06c0 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 35 2c 0a 27 63 79 61 ue'.=>.34,.'magenta'.=>.35,.'cya
b06e0 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 3b 0a 70 72 69 76 61 n'.=>.36,.'white'.=>.37.);.priva
b0700 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 42 61 63 6b 67 72 6f 75 6e 64 43 6f te.static.$availableBackgroundCo
b0720 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 34 30 2c 0a 27 72 65 lors.=.array(.'black'.=>.40,.'re
b0740 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 27 79 65 6c 6c 6f 77 d'.=>.41,.'green'.=>.42,.'yellow
b0760 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 61 67 65 6e 74 61 27 '.=>.43,.'blue'.=>.44,.'magenta'
b0780 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 69 74 65 27 20 3d 3e .=>.45,.'cyan'.=>.46,.'white'.=>
b07a0 20 34 37 0a 29 3b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 76 61 69 6c 61 62 6c 65 .47.);.private.static.$available
b07c0 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 3e 20 31 2c 0a 27 75 Options.=.array(.'bold'.=>.1,.'u
b07e0 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 3d 3e 20 35 2c 0a 27 nderscore'.=>.4,.'blink'.=>.5,.'
b0800 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 3d 3e 20 38 0a 29 3b reverse'.=>.7,.'conceal'.=>.8.);
b0820 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 69 76 61 74 65 20 24 ..private.$foreground;.private.$
b0840 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 6f 6e 73 20 3d 20 61 background;.private.$options.=.a
b0860 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 66 75 6e 63 74 69 6f rray();...........public.functio
b0880 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 20 3d 20 6e 75 6c 6c n.__construct($foreground.=.null
b08a0 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 61 79 20 24 6f 70 74 ,.$background.=.null,.array.$opt
b08c0 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 6c 20 21 3d 3d 20 24 ions.=.array()).{.if.(null.!==.$
b08e0 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 6f 72 65 67 72 6f 75 foreground).{.$this->setForegrou
b0900 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 6c 6c 20 21 3d 3d 20 nd($foreground);.}.if.(null.!==.
b0920 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 42 61 63 6b 67 72 6f $background).{.$this->setBackgro
b0940 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 6f 75 6e 74 28 24 6f und($background);.}.if.(count($o
b0960 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 6f 6e 73 28 24 6f 70 ptions)).{.$this->setOptions($op
b0980 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 6c 69 63 20 66 75 6e tions);.}.}...........public.fun
b09a0 63 74 69 6f 6e 20 73 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c ction.setForeground($color.=.nul
b09c0 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 20 7b 0a 24 74 68 69 l).{.if.(null.===.$color).{.$thi
b09e0 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 74 75 72 6e 3b 0a 7d s->foreground.=.null;..return;.}
b0a00 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 69 6c 61 62 6c 65 46 ..if.(!isset(static::$availableF
b0a20 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 20 7b 0a 74 68 72 6f oregroundColors[$color])).{.thro
b0a40 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(
b0a60 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 75 6e 64 20 63 6f 6c sprintf(.'Invalid.foreground.col
b0a80 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 74 65 64 20 6f 6e 65 or.specified:."%s"..Expected.one
b0aa0 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 65 28 27 2c 20 27 2c .of.(%s)',.$color,.implode(',.',
b0ac0 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 6c 65 46 6f .array_keys(static::$availableFo
b0ae0 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 74 68 69 73 2d 3e 66 regroundColors)).));.}..$this->f
b0b00 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 6c 61 62 6c 65 46 6f oreground.=.static::$availableFo
b0b20 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 0a 0a 0a 0a 0a 0a 0a regroundColors[$color];.}.......
b0b40 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 63 6b 67 72 6f 75 6e ....public.function.setBackgroun
b0b60 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 6c 6c 20 3d 3d 3d 20 d($color.=.null).{.if.(null.===.
b0b80 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 6e 64 20 3d 20 6e 75 $color).{.$this->background.=.nu
b0ba0 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 74 28 73 74 61 74 69 ll;..return;.}..if.(!isset(stati
b0bc0 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 6f 72 73 5b 24 63 c::$availableBackgroundColors[$c
b0be0 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 6c 69 64 41 72 67 75 olor])).{.throw.new.\InvalidArgu
b0c00 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 0a 27 49 6e 76 61 6c 69 64 20 mentException(sprintf(.'Invalid.
b0c20 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 64 3a 20 22 25 73 22 background.color.specified:."%s"
b0c40 2e 20 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 20 28 25 73 29 27 2c 0a 24 63 6f 6c 6f 72 2c ..Expected.one.of.(%s)',.$color,
b0c60 0a 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 73 74 61 74 69 63 .implode(',.',.array_keys(static
b0c80 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 6f 72 73 29 29 0a 29 ::$availableBackgroundColors)).)
b0ca0 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 20 73 74 61 74 69 63 );.}..$this->background.=.static
b0cc0 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 6f 72 73 5b 24 63 6f ::$availableBackgroundColors[$co
b0ce0 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 66 75 6e 63 74 69 6f lor];.}...........public.functio
b0d00 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 20 28 21 69 73 73 65 n.setOption($option).{.if.(!isse
b0d20 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
b0d40 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
b0d60 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
b0d80 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.
b0da0 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('
b0dc0 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
b0de0 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 6c 73 65 20 3d 3d 3d leOptions)).));.}..if.(false.===
b0e00 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 61 69 6c 61 62 6c 65 .array_search(static::$available
b0e20 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 6f 70 74 69 6f 6e 73 Options[$option],.$this->options
b0e40 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 74 61 74 69 63 3a 3a )).{.$this->options[].=.static::
b0e60 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 3b 0a 7d 0a 7d 0a $availableOptions[$option];.}.}.
b0e80 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 6e 73 65 74 4f 70 .........public.function.unsetOp
b0ea0 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 74 28 73 74 61 74 69 tion($option).{.if.(!isset(stati
b0ec0 63 3a 3a 24 61 76 61 69 6c 61 62 6c 65 4f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 5d 29 29 20 c::$availableOptions[$option])).
b0ee0 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
b0f00 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 70 74 69 6f 6e 20 73 ption(sprintf(.'Invalid.option.s
b0f20 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 6f 6e 65 20 6f 66 20 pecified:."%s"..Expected.one.of.
b0f40 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 2c 20 27 2c 20 61 72 (%s)',.$option,.implode(',.',.ar
b0f60 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 6c 65 4f 70 74 69 6f ray_keys(static::$availableOptio
b0f80 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 73 65 61 72 63 68 28 ns)).));.}..$pos.=.array_search(
b0fa0 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 69 6f static::$availableOptions[$optio
b0fc0 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 66 61 6c 73 65 20 21 n],.$this->options);.if.(false.!
b0fe0 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 70 74 69 6f 6e 73 5b ==.$pos).{.unset($this->options[
b1000 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 66 75 6e 63 74 69 6f $pos]);.}.}.......public.functio
b1020 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).{.$
b1040 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 0a 66 6f 72 65 61 63 this->options.=.array();..foreac
b1060 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 69 73 2d h.($options.as.$option).{.$this-
b1080 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 0a 0a 0a 0a 0a 0a 0a >setOption($option);.}.}........
b10a0 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 65 78 74 29 0a 7b 0a .public.function.apply($text).{.
b10c0 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 6c 6c 20 21 3d 3d 20 $codes.=.array();..if.(null.!==.
b10e0 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 65 73 5b 5d 20 3d 20 $this->foreground).{.$codes[].=.
b1100 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 6e 75 6c 6c 20 21 3d $this->foreground;.}.if.(null.!=
b1120 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 6f 64 65 73 5b 5d 20 =.$this->background).{.$codes[].
b1140 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 20 28 63 6f 75 6e 74 =.$this->background;.}.if.(count
b1160 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 73 20 3d 20 61 72 72 ($this->options)).{.$codes.=.arr
b1180 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 70 74 69 6f 6e 73 29 ay_merge($codes,.$this->options)
b11a0 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 63 6f 64 65 73 29 29 20 7b 0a ;.}..if.(0.===.count($codes)).{.
b11c0 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 return.$text;.}..return.sprintf(
b11e0 22 5c 30 33 33 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 "\033[%sm%s\033[0m",.implode(';'
b1200 2c 20 24 63 6f 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 ,.$codes),.$text);.}.}.<?php....
b1220 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
b1240 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e nt\Console\Formatter;.........in
b1260 74 65 72 66 61 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 terface.OutputFormatterStyleInte
b1280 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 rface.{........public.function.s
b12a0 65 74 46 6f 72 65 67 72 6f 75 6e 64 28 24 63 6f 6c 6f 72 20 3d 20 6e 75 6c 6c 29 3b 0a 0a 0a 0a etForeground($color.=.null);....
b12c0 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 63 6b 67 72 6f 75 .....public.function.setBackgrou
b12e0 6e 64 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 70 75 62 6c 69 nd($color.=.null);.........publi
b1300 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 0a c.function.setOption($option);..
b1320 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 6e 73 65 74 4f 70 74 69 6f 6e .....public.function.unsetOption
b1340 28 24 6f 70 74 69 6f 6e 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ($option);.......public.function
b1360 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 3b 0a 0a 0a 0a .setOptions(array.$options);....
b1380 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 65 78 74 .....public.function.apply($text
b13a0 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 );.}.<?php...........namespace.S
b13c0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 ymfony\Component\Console\Formatt
b13e0 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 61 74 74 65 er;.........class.OutputFormatte
b1400 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 r.implements.OutputFormatterInte
b1420 72 66 61 63 65 0a 7b 0a 0a 0a 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 50 41 54 54 45 52 4e 20 rface.{....const.FORMAT_PATTERN.
b1440 3d 20 27 23 28 5c 5c 5c 5c 3f 29 3c 28 2f 3f 29 28 5b 61 2d 7a 5d 5b 61 2d 7a 30 2d 39 5f 3d 3b =.'#(\\\\?)<(/?)([a-z][a-z0-9_=;
b1460 2d 5d 2a 29 3f 3e 28 28 3f 3a 20 5b 5e 3c 5c 5c 5c 5c 5d 2b 20 7c 20 28 3f 21 3c 28 3f 3a 2f 3f -]*)?>((?:.[^<\\\\]+.|.(?!<(?:/?
b1480 5b 61 2d 7a 5d 7c 2f 3e 29 29 2e 20 7c 20 2e 28 3f 3c 3d 5c 5c 5c 5c 3c 29 20 29 2a 29 23 69 73 [a-z]|/>))..|..(?<=\\\\<).)*)#is
b14a0 78 27 3b 0a 0a 70 72 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 x';..private.$decorated;.private
b14c0 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 73 74 79 .$styles.=.array();.private.$sty
b14e0 6c 65 53 74 61 63 6b 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 leStack;.........public.static.f
b1500 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 28 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e 20 70 unction.escape($text).{.return.p
b1520 72 65 67 5f 72 65 70 6c 61 63 65 28 27 2f 28 5b 5e 5c 5c 5c 5c 5d 3f 29 3c 2f 69 73 27 2c 20 27 reg_replace('/([^\\\\]?)</is',.'
b1540 24 31 5c 5c 3c 27 2c 20 24 74 65 78 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 $1\\<',.$text);.}..........publi
b1560 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 63 6f 72 61 74 65 c.function.__construct($decorate
b1580 64 20 3d 20 66 61 6c 73 65 2c 20 61 72 72 61 79 20 24 73 74 79 6c 65 73 20 3d 20 61 72 72 61 79 d.=.false,.array.$styles.=.array
b15a0 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 20 3d 20 28 42 6f 6f 6c 65 61 ()).{.$this->decorated.=.(Boolea
b15c0 6e 29 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 n).$decorated;..$this->setStyle(
b15e0 27 65 72 72 6f 72 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 'error',.new.OutputFormatterStyl
b1600 65 28 27 77 68 69 74 65 27 2c 20 27 72 65 64 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 e('white',.'red'));.$this->setSt
b1620 79 6c 65 28 27 69 6e 66 6f 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 yle('info',.new.OutputFormatterS
b1640 74 79 6c 65 28 27 67 72 65 65 6e 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 tyle('green'));.$this->setStyle(
b1660 27 63 6f 6d 6d 65 6e 74 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 'comment',.new.OutputFormatterSt
b1680 79 6c 65 28 27 79 65 6c 6c 6f 77 27 29 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 yle('yellow'));.$this->setStyle(
b16a0 27 71 75 65 73 74 69 6f 6e 27 2c 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 'question',.new.OutputFormatterS
b16c0 74 79 6c 65 28 27 62 6c 61 63 6b 27 2c 20 27 63 79 61 6e 27 29 29 3b 0a 0a 66 6f 72 65 61 63 68 tyle('black',.'cyan'));..foreach
b16e0 20 28 24 73 74 79 6c 65 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 73 74 79 6c 65 29 20 7b 0a .($styles.as.$name.=>.$style).{.
b1700 24 74 68 69 73 2d 3e 73 65 74 53 74 79 6c 65 28 24 6e 61 6d 65 2c 20 24 73 74 79 6c 65 29 3b 0a $this->setStyle($name,.$style);.
b1720 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 20 3d 20 6e 65 77 20 4f 75 74 70 75 }..$this->styleStack.=.new.Outpu
b1740 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 53 74 61 63 6b 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a tFormatterStyleStack();.}.......
b1760 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 ..public.function.setDecorated($
b1780 64 65 63 6f 72 61 74 65 64 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 20 3d 20 decorated).{.$this->decorated.=.
b17a0 28 42 6f 6f 6c 65 61 6e 29 20 24 64 65 63 6f 72 61 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a (Boolean).$decorated;.}.........
b17c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a public.function.isDecorated().{.
b17e0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 63 6f 72 61 74 65 64 3b 0a 7d 0a 0a 0a 0a 0a 0a return.$this->decorated;.}......
b1800 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 79 6c 65 28 24 6e 61 ....public.function.setStyle($na
b1820 6d 65 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 49 6e 74 65 72 66 61 63 me,.OutputFormatterStyleInterfac
b1840 65 20 24 73 74 79 6c 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b 73 74 72 74 6f 6c e.$style).{.$this->styles[strtol
b1860 6f 77 65 72 28 24 6e 61 6d 65 29 5d 20 3d 20 24 73 74 79 6c 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ower($name)].=.$style;.}........
b1880 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 79 6c 65 28 24 6e 61 6d ...public.function.hasStyle($nam
b18a0 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 73 5b e).{.return.isset($this->styles[
b18c0 73 74 72 74 6f 6c 6f 77 65 72 28 24 6e 61 6d 65 29 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a strtolower($name)]);.}..........
b18e0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 28 24 6e 61 6d ...public.function.getStyle($nam
b1900 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 74 79 6c 65 28 24 6e 61 6d 65 29 e).{.if.(!$this->hasStyle($name)
b1920 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
b1940 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 64 65 66 69 6e 65 64 20 73 74 79 6c 65 ception(sprintf('Undefined.style
b1960 3a 20 25 73 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 73 2d :.%s',.$name));.}..return.$this-
b1980 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 0a 0a 0a >styles[strtolower($name)];.}...
b19a0 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 74 28 24 ........public.function.format($
b19c0 6d 65 73 73 61 67 65 29 0a 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 message).{.$message.=.preg_repla
b19e0 63 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 ce_callback(self::FORMAT_PATTERN
b1a00 2c 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 ,.array($this,.'replaceStyle'),.
b1a20 24 6d 65 73 73 61 67 65 29 3b 0a 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 $message);..return.str_replace('
b1a40 5c 5c 3c 27 2c 20 27 3c 27 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c \\<',.'<',.$message);.}.....publ
b1a60 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 79 6c 65 53 74 61 63 6b 28 29 0a 7b 0a 72 65 ic.function.getStyleStack().{.re
b1a80 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a turn.$this->styleStack;.}.......
b1aa0 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c 61 63 65 53 74 79 6c ....private.function.replaceStyl
b1ac0 65 28 24 6d 61 74 63 68 29 0a 7b 0a 0a 20 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 24 6d 61 74 63 e($match).{...if.('\\'.===.$matc
b1ae0 68 5b 31 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 h[1]).{.return.$this->applyCurre
b1b00 6e 74 53 74 79 6c 65 28 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 0a 0a 69 66 20 28 27 27 20 3d 3d ntStyle($match[0]);.}..if.(''.==
b1b20 3d 20 24 6d 61 74 63 68 5b 33 5d 29 20 7b 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 6d 61 74 63 =.$match[3]).{.if.('/'.===.$matc
b1b40 68 5b 32 5d 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 h[2]).{...$this->styleStack->pop
b1b60 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 ();..return.$this->applyCurrentS
b1b80 74 79 6c 65 28 24 6d 61 74 63 68 5b 34 5d 29 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 27 3c 3e tyle($match[4]);.}....return.'<>
b1ba0 27 2e 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d 61 74 63 '.$this->applyCurrentStyle($matc
b1bc0 68 5b 34 5d 29 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 74 79 6c 65 h[4]);.}..if.(isset($this->style
b1be0 73 5b 73 74 72 74 6f 6c 6f 77 65 72 28 24 6d 61 74 63 68 5b 33 5d 29 5d 29 29 20 7b 0a 24 73 74 s[strtolower($match[3])])).{.$st
b1c00 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 6c 6f 77 65 72 28 24 yle.=.$this->styles[strtolower($
b1c20 6d 61 74 63 68 5b 33 5d 29 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 73 74 79 6c 65 20 3d 20 24 74 match[3])];.}.else.{.$style.=.$t
b1c40 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 67 28 24 6d 61 74 63 his->createStyleFromString($matc
b1c60 68 5b 33 5d 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 73 74 79 6c 65 29 20 7b 0a h[3]);..if.(false.===.$style).{.
b1c80 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 return.$this->applyCurrentStyle(
b1ca0 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 6d 61 $match[0]);.}.}..if.('/'.===.$ma
b1cc0 74 63 68 5b 32 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 70 6f 70 tch[2]).{.$this->styleStack->pop
b1ce0 28 24 73 74 79 6c 65 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 ($style);.}.else.{.$this->styleS
b1d00 74 61 63 6b 2d 3e 70 75 73 68 28 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 tack->push($style);.}..return.$t
b1d20 68 69 73 2d 3e 61 70 70 6c 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 6d 61 74 63 68 5b 34 5d his->applyCurrentStyle($match[4]
b1d40 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 72 );.}.........private.function.cr
b1d60 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 6e 67 29 0a 7b 0a 69 eateStyleFromString($string).{.i
b1d80 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 5d 2b 29 3d 28 5b 5e f.(!preg_match_all('/([^=]+)=([^
b1da0 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 73 74 72 69 6e 67 29 ;]+)(;|$)/',.strtolower($string)
b1dc0 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 29 20 7b 0a 72 ,.$matches,.PREG_SET_ORDER)).{.r
b1de0 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 6e 65 77 20 4f 75 74 eturn.false;.}..$style.=.new.Out
b1e00 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 61 63 68 20 28 24 6d putFormatterStyle();.foreach.($m
b1e20 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 5f 73 68 69 66 74 28 atches.as.$match).{.array_shift(
b1e40 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 74 63 68 5b 30 5d 29 $match);..if.('fg'.==.$match[0])
b1e60 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 24 6d 61 74 63 68 5b .{.$style->setForeground($match[
b1e80 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 61 74 63 68 5b 30 5d 1]);.}.elseif.('bg'.==.$match[0]
b1ea0 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 28 24 6d 61 74 63 68 ).{.$style->setBackground($match
b1ec0 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 74 4f 70 74 69 6f 6e [1]);.}.else.{.$style->setOption
b1ee0 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 24 73 74 79 6c 65 3b ($match[1]);.}.}..return.$style;
b1f00 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 61 70 70 6c .}.........private.function.appl
b1f20 79 43 75 72 72 65 6e 74 53 74 79 6c 65 28 24 74 65 78 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 yCurrentStyle($text).{.return.$t
b1f40 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 6c 65 6e 28 24 74 65 his->isDecorated().&&.strlen($te
b1f60 78 74 29 20 3e 20 30 20 3f 20 24 74 68 69 73 2d 3e 73 74 79 6c 65 53 74 61 63 6b 2d 3e 67 65 74 xt).>.0.?.$this->styleStack->get
b1f80 43 75 72 72 65 6e 74 28 29 2d 3e 61 70 70 6c 79 28 24 74 65 78 74 29 20 3a 20 24 74 65 78 74 3b Current()->apply($text).:.$text;
b1fa0 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
b1fc0 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 ymfony\Component\Console\Formatt
b1fe0 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 74 70 75 74 46 6f 72 6d er;.........interface.OutputForm
b2000 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 atterInterface.{........public.f
b2020 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 6f 72 61 74 65 64 29 unction.setDecorated($decorated)
b2040 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 69 73 44 65 63 6f ;.........public.function.isDeco
b2060 72 61 74 65 64 28 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 rated();..........public.functio
b2080 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 65 n.setStyle($name,.OutputFormatte
b20a0 72 53 74 79 6c 65 49 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 rStyleInterface.$style);........
b20c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 79 6c 65 28 24 6e 61 6d ...public.function.hasStyle($nam
b20e0 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 e);...........public.function.ge
b2100 74 53 74 79 6c 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 tStyle($name);...........public.
b2120 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 0a 3c 3f 70 function.format($message);.}.<?p
b2140 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
b2160 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 6e 79 5c 43 omponent\Console;..use.Symfony\C
b2180 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 omponent\Console\Descriptor\Text
b21a0 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e Descriptor;.use.Symfony\Componen
b21c0 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 t\Console\Descriptor\XmlDescript
b21e0 6f 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 6e 73 6f 6c or;.use.Symfony\Component\Consol
b2200 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 e\Input\InputInterface;.use.Symf
b2220 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 67 76 ony\Component\Console\Input\Argv
b2240 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e Input;.use.Symfony\Component\Con
b2260 73 6f 6c 65 5c 49 6e 70 75 74 5c 41 72 72 61 79 49 6e 70 75 74 3b 0a 75 73 65 20 53 79 6d 66 6f sole\Input\ArrayInput;.use.Symfo
b2280 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
b22a0 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e Definition;.use.Symfony\Componen
b22c0 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 t\Console\Input\InputOption;.use
b22e0 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
b2300 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 70 \InputArgument;.use.Symfony\Comp
b2320 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 77 61 72 65 49 6e onent\Console\Input\InputAwareIn
b2340 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 5c 43 terface;.use.Symfony\Component\C
b2360 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 3b 0a 75 73 onsole\Output\BufferedOutput;.us
b2380 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
b23a0 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\
b23c0 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
b23e0 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
b2400 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 nsole\Output\ConsoleOutputInterf
b2420 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
b2440 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c le\Command\Command;.use.Symfony\
b2460 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 48 65 6c 70 43 6f Component\Console\Command\HelpCo
b2480 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 74 5c 43 6f 6e mmand;.use.Symfony\Component\Con
b24a0 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 4c 69 73 74 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 sole\Command\ListCommand;.use.Sy
b24c0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 48 mfony\Component\Console\Helper\H
b24e0 65 6c 70 65 72 53 65 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 elperSet;.use.Symfony\Component\
b2500 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 3b 0a Console\Helper\FormatterHelper;.
b2520 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 48 65 use.Symfony\Component\Console\He
b2540 6c 70 65 72 5c 44 69 61 6c 6f 67 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 lper\DialogHelper;.use.Symfony\C
b2560 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 50 72 6f 67 72 65 73 73 omponent\Console\Helper\Progress
b2580 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f Helper;.use.Symfony\Component\Co
b25a0 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 5c 54 61 62 6c 65 48 65 6c 70 65 72 3b 0a 75 73 65 20 53 79 nsole\Helper\TableHelper;.use.Sy
b25c0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 5c 43 6f mfony\Component\Console\Event\Co
b25e0 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 nsoleCommandEvent;.use.Symfony\C
b2600 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 5c 43 6f 6e 73 6f 6c 65 45 78 omponent\Console\Event\ConsoleEx
b2620 63 65 70 74 69 6f 6e 45 76 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e ceptionEvent;.use.Symfony\Compon
b2640 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 5c 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 ent\Console\Event\ConsoleTermina
b2660 74 65 45 76 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 45 teEvent;.use.Symfony\Component\E
b2680 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 49 6e ventDispatcher\EventDispatcherIn
b26a0 74 65 72 66 61 63 65 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 terface;...................class
b26c0 20 41 70 70 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 .Application.{.private.$commands
b26e0 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 77 61 6e 74 48 65 6c 70 73 20 3d .=.array();.private.$wantHelps.=
b2700 20 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 72 75 6e 6e 69 6e 67 43 6f 6d 6d 61 6e 64 3b .false;.private.$runningCommand;
b2720 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 76 65 72 73 69 6f 6e .private.$name;.private.$version
b2740 3b 0a 70 72 69 76 61 74 65 20 24 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 20 3d 20 74 72 75 ;.private.$catchExceptions.=.tru
b2760 65 3b 0a 70 72 69 76 61 74 65 20 24 61 75 74 6f 45 78 69 74 20 3d 20 74 72 75 65 3b 0a 70 72 69 e;.private.$autoExit.=.true;.pri
b2780 76 61 74 65 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 68 65 6c 70 65 vate.$definition;.private.$helpe
b27a0 72 53 65 74 3b 0a 70 72 69 76 61 74 65 20 24 64 69 73 70 61 74 63 68 65 72 3b 0a 70 72 69 76 61 rSet;.private.$dispatcher;.priva
b27c0 74 65 20 24 74 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a te.$terminalDimensions;.........
b27e0 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
b2800 6d 65 20 3d 20 27 55 4e 4b 4e 4f 57 4e 27 2c 20 24 76 65 72 73 69 6f 6e 20 3d 20 27 55 4e 4b 4e me.=.'UNKNOWN',.$version.=.'UNKN
b2820 4f 57 4e 27 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 OWN').{.$this->name.=.$name;.$th
b2840 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 73 2d 3e 68 is->version.=.$version;.$this->h
b2860 65 6c 70 65 72 53 65 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 48 65 6c 70 elperSet.=.$this->getDefaultHelp
b2880 65 72 53 65 74 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 74 68 erSet();.$this->definition.=.$th
b28a0 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 3b is->getDefaultInputDefinition();
b28c0 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 44 65 66 61 75 6c 74 43 6f 6d 6d ..foreach.($this->getDefaultComm
b28e0 61 6e 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 ands().as.$command).{.$this->add
b2900 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ($command);.}.}..public.function
b2920 20 73 65 74 44 69 73 70 61 74 63 68 65 72 28 45 76 65 6e 74 44 69 73 70 61 74 63 68 65 72 49 6e .setDispatcher(EventDispatcherIn
b2940 74 65 72 66 61 63 65 20 24 64 69 73 70 61 74 63 68 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 69 terface.$dispatcher).{.$this->di
b2960 73 70 61 74 63 68 65 72 20 3d 20 24 64 69 73 70 61 74 63 68 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a spatcher.=.$dispatcher;.}.......
b2980 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 49 6e 70 75 74 .......public.function.run(Input
b29a0 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 49 Interface.$input.=.null,.OutputI
b29c0 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e nterface.$output.=.null).{.if.(n
b29e0 75 6c 6c 20 3d 3d 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 ull.===.$input).{.$input.=.new.A
b2a00 72 67 76 49 6e 70 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 rgvInput();.}..if.(null.===.$out
b2a20 70 75 74 29 20 7b 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 put).{.$output.=.new.ConsoleOutp
b2a40 75 74 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6f 6e 66 69 67 75 72 65 49 4f 28 24 69 6e 70 ut();.}..$this->configureIO($inp
b2a60 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 74 72 79 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d ut,.$output);..try.{.$exitCode.=
b2a80 20 24 74 68 69 73 2d 3e 64 6f 52 75 6e 28 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a .$this->doRun($input,.$output);.
b2aa0 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 21 24 }.catch.(\Exception.$e).{.if.(!$
b2ac0 74 68 69 73 2d 3e 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 29 20 7b 0a 74 68 72 6f 77 20 24 this->catchExceptions).{.throw.$
b2ae0 65 3b 0a 7d 0a 0a 69 66 20 28 24 6f 75 74 70 75 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6e e;.}..if.($output.instanceof.Con
b2b00 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 soleOutputInterface).{.$this->re
b2b20 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 45 72 nderException($e,.$output->getEr
b2b40 72 6f 72 4f 75 74 70 75 74 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 72 65 rorOutput());.}.else.{.$this->re
b2b60 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 nderException($e,.$output);.}..$
b2b80 65 78 69 74 43 6f 64 65 20 3d 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 3b 0a 69 66 20 28 69 73 exitCode.=.$e->getCode();.if.(is
b2ba0 5f 6e 75 6d 65 72 69 63 28 24 65 78 69 74 43 6f 64 65 29 29 20 7b 0a 24 65 78 69 74 43 6f 64 65 _numeric($exitCode)).{.$exitCode
b2bc0 20 3d 20 28 69 6e 74 29 20 24 65 78 69 74 43 6f 64 65 3b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 65 .=.(int).$exitCode;.if.(0.===.$e
b2be0 78 69 74 43 6f 64 65 29 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 31 3b 0a 7d 0a 7d 20 65 6c xitCode).{.$exitCode.=.1;.}.}.el
b2c00 73 65 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 31 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 se.{.$exitCode.=.1;.}.}..if.($th
b2c20 69 73 2d 3e 61 75 74 6f 45 78 69 74 29 20 7b 0a 69 66 20 28 24 65 78 69 74 43 6f 64 65 20 3e 20 is->autoExit).{.if.($exitCode.>.
b2c40 32 35 35 29 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 32 35 35 3b 0a 7d 0a 0a 20 65 78 69 74 255).{.$exitCode.=.255;.}...exit
b2c60 28 24 65 78 69 74 43 6f 64 65 29 3b 0a 0a 20 7d 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 43 6f ($exitCode);...}..return.$exitCo
b2c80 64 65 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 64 de;.}..........public.function.d
b2ca0 6f 52 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 oRun(InputInterface.$input,.Outp
b2cc0 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 29 0a 7b 0a 69 66 20 28 74 72 75 65 20 utInterface.$output).{.if.(true.
b2ce0 3d 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 ===.$input->hasParameterOption(a
b2d00 72 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 rray('--version',.'-V'))).{.$out
b2d20 70 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 put->writeln($this->getLongVersi
b2d40 6f 6e 28 29 29 3b 0a 0a 72 65 74 75 72 6e 20 30 3b 0a 7d 0a 0a 24 6e 61 6d 65 20 3d 20 24 74 68 on());..return.0;.}..$name.=.$th
b2d60 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 3b 0a 69 66 20 28 is->getCommandName($input);.if.(
b2d80 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 true.===.$input->hasParameterOpt
b2da0 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 68 65 6c 70 27 2c 20 27 2d 68 27 29 29 29 20 7b 0a 69 66 ion(array('--help',.'-h'))).{.if
b2dc0 20 28 21 24 6e 61 6d 65 29 20 7b 0a 24 6e 61 6d 65 20 3d 20 27 68 65 6c 70 27 3b 0a 24 69 6e 70 .(!$name).{.$name.=.'help';.$inp
b2de0 75 74 20 3d 20 6e 65 77 20 41 72 72 61 79 49 6e 70 75 74 28 61 72 72 61 79 28 27 63 6f 6d 6d 61 ut.=.new.ArrayInput(array('comma
b2e00 6e 64 27 20 3d 3e 20 27 68 65 6c 70 27 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d nd'.=>.'help'));.}.else.{.$this-
b2e20 3e 77 61 6e 74 48 65 6c 70 73 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 21 24 6e 61 >wantHelps.=.true;.}.}..if.(!$na
b2e40 6d 65 29 20 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 me).{.$name.=.'list';.$input.=.n
b2e60 65 77 20 41 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 ew.ArrayInput(array('command'.=>
b2e80 20 27 6c 69 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 .'list'));.}....$command.=.$this
b2ea0 2d 3e 66 69 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 ->find($name);..$this->runningCo
b2ec0 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 24 65 78 69 74 43 6f 64 65 20 3d 20 24 74 mmand.=.$command;.$exitCode.=.$t
b2ee0 68 69 73 2d 3e 64 6f 52 75 6e 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 his->doRunCommand($command,.$inp
b2f00 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 72 75 6e 6e 69 6e 67 43 6f 6d 6d ut,.$output);.$this->runningComm
b2f20 61 6e 64 20 3d 20 6e 75 6c 6c 3b 0a 0a 72 65 74 75 72 6e 20 24 65 78 69 74 43 6f 64 65 3b 0a 7d and.=.null;..return.$exitCode;.}
b2f40 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 .........public.function.setHelp
b2f60 65 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 29 0a 7b 0a 24 74 erSet(HelperSet.$helperSet).{.$t
b2f80 68 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 his->helperSet.=.$helperSet;.}..
b2fa0 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 48 65 6c 70 65 72 .......public.function.getHelper
b2fc0 53 65 74 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 Set().{.return.$this->helperSet;
b2fe0 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 65 .}.........public.function.setDe
b3000 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 finition(InputDefinition.$defini
b3020 74 69 6f 6e 29 0a 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 66 tion).{.$this->definition.=.$def
b3040 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e inition;.}.......public.function
b3060 20 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d .getDefinition().{.return.$this-
b3080 3e 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 >definition;.}.......public.func
b30a0 74 69 6f 6e 20 67 65 74 48 65 6c 70 28 29 0a 7b 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 tion.getHelp().{.$messages.=.arr
b30c0 61 79 28 0a 24 74 68 69 73 2d 3e 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 2c 0a 27 27 2c ay(.$this->getLongVersion(),.'',
b30e0 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 55 73 61 67 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 0a 27 20 .'<comment>Usage:</comment>',.'.
b3100 20 5b 6f 70 74 69 6f 6e 73 5d 20 63 6f 6d 6d 61 6e 64 20 5b 61 72 67 75 6d 65 6e 74 73 5d 27 2c .[options].command.[arguments]',
b3120 0a 27 27 2c 0a 27 3c 63 6f 6d 6d 65 6e 74 3e 4f 70 74 69 6f 6e 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 .'',.'<comment>Options:</comment
b3140 3e 27 2c 0a 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 44 65 66 69 6e >',.);..foreach.($this->getDefin
b3160 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e ition()->getOptions().as.$option
b3180 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 20 20 25 2d 32 ).{.$messages[].=.sprintf('..%-2
b31a0 39 73 20 25 73 20 25 73 27 2c 0a 27 3c 69 6e 66 6f 3e 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 9s.%s.%s',.'<info>--'.$option->g
b31c0 65 74 4e 61 6d 65 28 29 2e 27 3c 2f 69 6e 66 6f 3e 27 2c 0a 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 etName().'</info>',.$option->get
b31e0 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 3c 69 6e 66 6f 3e 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e Shortcut().?.'<info>-'.$option->
b3200 67 65 74 53 68 6f 72 74 63 75 74 28 29 2e 27 3c 2f 69 6e 66 6f 3e 27 20 3a 20 27 20 20 27 2c 0a getShortcut().'</info>'.:.'..',.
b3220 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 0a 29 3b 0a 7d 0a 0a $option->getDescription().);.}..
b3240 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 50 48 50 5f 45 4f 4c 2c 20 24 6d 65 73 73 61 67 65 return.implode(PHP_EOL,.$message
b3260 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
b3280 74 43 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 28 24 62 6f 6f 6c 65 61 6e 29 0a 7b 0a 24 74 68 tCatchExceptions($boolean).{.$th
b32a0 69 73 2d 3e 63 61 74 63 68 45 78 63 65 70 74 69 6f 6e 73 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 is->catchExceptions.=.(Boolean).
b32c0 24 62 6f 6f 6c 65 61 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 $boolean;.}.........public.funct
b32e0 69 6f 6e 20 73 65 74 41 75 74 6f 45 78 69 74 28 24 62 6f 6f 6c 65 61 6e 29 0a 7b 0a 24 74 68 69 ion.setAutoExit($boolean).{.$thi
b3300 73 2d 3e 61 75 74 6f 45 78 69 74 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 62 6f 6f 6c 65 61 6e s->autoExit.=.(Boolean).$boolean
b3320 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 74 4e ;.}.........public.function.getN
b3340 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 0a 0a ame().{.return.$this->name;.}...
b3360 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 4e 61 6d 65 28 24 6e ......public.function.setName($n
b3380 61 6d 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 0a 0a ame).{.$this->name.=.$name;.}...
b33a0 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 56 65 72 73 69 6f 6e ......public.function.getVersion
b33c0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 3b 0a 7d 0a 0a 0a ().{.return.$this->version;.}...
b33e0 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 56 65 72 73 69 6f 6e ......public.function.setVersion
b3400 28 24 76 65 72 73 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 73 69 6f 6e 20 3d 20 24 76 ($version).{.$this->version.=.$v
b3420 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 6f ersion;.}.........public.functio
b3440 6e 20 67 65 74 4c 6f 6e 67 56 65 72 73 69 6f 6e 28 29 0a 7b 0a 69 66 20 28 27 55 4e 4b 4e 4f 57 n.getLongVersion().{.if.('UNKNOW
b3460 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 20 26 26 20 27 55 4e 4b 4e N'.!==.$this->getName().&&.'UNKN
b3480 4f 57 4e 27 20 21 3d 3d 20 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 29 20 7b 0a OWN'.!==.$this->getVersion()).{.
b34a0 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 return.sprintf('<info>%s</info>.
b34c0 76 65 72 73 69 6f 6e 20 3c 63 6f 6d 6d 65 6e 74 3e 25 73 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 version.<comment>%s</comment>',.
b34e0 24 74 68 69 73 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 56 65 72 73 $this->getName(),.$this->getVers
b3500 69 6f 6e 28 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 3c 69 6e 66 6f 3e 43 6f 6e 73 6f 6c 65 ion());.}..return.'<info>Console
b3520 20 54 6f 6f 6c 3c 2f 69 6e 66 6f 3e 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .Tool</info>';.}...........publi
b3540 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 c.function.register($name).{.ret
b3560 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 28 6e 65 77 20 43 6f 6d 6d 61 6e 64 28 24 6e 61 6d 65 urn.$this->add(new.Command($name
b3580 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 20 61 64 ));.}.........public.function.ad
b35a0 64 43 6f 6d 6d 61 6e 64 73 28 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 66 6f 72 dCommands(array.$commands).{.for
b35c0 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 each.($commands.as.$command).{.$
b35e0 74 68 69 73 2d 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 this->add($command);.}.}........
b3600 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 28 43 6f 6d 6d 61 6e 64 .....public.function.add(Command
b3620 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 73 65 74 41 70 70 6c 69 63 .$command).{.$command->setApplic
b3640 61 74 69 6f 6e 28 24 74 68 69 73 29 3b 0a 0a 69 66 20 28 21 24 63 6f 6d 6d 61 6e 64 2d 3e 69 73 ation($this);..if.(!$command->is
b3660 45 6e 61 62 6c 65 64 28 29 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 73 65 74 41 70 70 6c 69 63 Enabled()).{.$command->setApplic
b3680 61 74 69 6f 6e 28 6e 75 6c 6c 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c ation(null);..return;.}..if.(nul
b36a0 6c 20 3d 3d 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 l.===.$command->getDefinition())
b36c0 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 72 .{.throw.new.\LogicException(spr
b36e0 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 63 6c 61 73 73 20 22 25 73 22 20 69 73 20 6e 6f 74 20 intf('Command.class."%s".is.not.
b3700 63 6f 72 72 65 63 74 6c 79 20 69 6e 69 74 69 61 6c 69 7a 65 64 2e 20 59 6f 75 20 70 72 6f 62 61 correctly.initialized..You.proba
b3720 62 6c 79 20 66 6f 72 67 6f 74 20 74 6f 20 63 61 6c 6c 20 74 68 65 20 70 61 72 65 6e 74 20 63 6f bly.forgot.to.call.the.parent.co
b3740 6e 73 74 72 75 63 74 6f 72 2e 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 63 6f 6d 6d 61 6e 64 29 nstructor.',.get_class($command)
b3760 29 29 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 ));.}..$this->commands[$command-
b3780 3e 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 >getName()].=.$command;..foreach
b37a0 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 .($command->getAliases().as.$ali
b37c0 61 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 as).{.$this->commands[$alias].=.
b37e0 24 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 $command;.}..return.$command;.}.
b3800 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 28 ............public.function.get(
b3820 24 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 $name).{.if.(!isset($this->comma
b3840 6e 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 nds[$name])).{.throw.new.\Invali
b3860 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.
b3880 63 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 command."%s".does.not.exist.',.$
b38a0 6e 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 name));.}..$command.=.$this->com
b38c0 6d 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 mands[$name];..if.($this->wantHe
b38e0 6c 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 lps).{.$this->wantHelps.=.false;
b3900 0a 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 ..$helpCommand.=.$this->get('hel
b3920 70 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 p');.$helpCommand->setCommand($c
b3940 6f 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 ommand);..return.$helpCommand;.}
b3960 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ..return.$command;.}...........p
b3980 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 0a 72 65 74 75 ublic.function.has($name).{.retu
b39a0 72 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 rn.isset($this->commands[$name])
b39c0 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 74 4e ;.}.........public.function.getN
b39e0 61 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 amespaces().{.$namespaces.=.arra
b3a00 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 61 73 y();.foreach.($this->commands.as
b3a20 20 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 .$command).{.$namespaces[].=.$th
b3a40 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 2d 3e 67 is->extractNamespace($command->g
b3a60 65 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 etName());..foreach.($command->g
b3a80 65 74 41 6c 69 61 73 65 73 28 29 20 61 73 20 24 61 6c 69 61 73 29 20 7b 0a 24 6e 61 6d 65 73 70 etAliases().as.$alias).{.$namesp
b3aa0 61 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 aces[].=.$this->extractNamespace
b3ac0 28 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 ($alias);.}.}..return.array_valu
b3ae0 65 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 es(array_unique(array_filter($na
b3b00 6d 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 mespaces)));.}...........public.
b3b20 66 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 function.findNamespace($namespac
b3b40 65 29 0a 7b 0a 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 e).{.$allNamespaces.=.$this->get
b3b60 4e 61 6d 65 73 70 61 63 65 73 28 29 3b 0a 24 65 78 70 72 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 Namespaces();.$expr.=.preg_repla
b3b80 63 65 5f 63 61 6c 6c 62 61 63 6b 28 27 7b 28 5b 5e 3a 5d 2b 7c 29 7d 27 2c 20 66 75 6e 63 74 69 ce_callback('{([^:]+|)}',.functi
b3ba0 6f 6e 20 28 24 6d 61 74 63 68 65 73 29 20 7b 20 72 65 74 75 72 6e 20 70 72 65 67 5f 71 75 6f 74 on.($matches).{.return.preg_quot
b3bc0 65 28 24 6d 61 74 63 68 65 73 5b 31 5d 29 2e 27 5b 5e 3a 5d 2a 27 3b 20 7d 2c 20 24 6e 61 6d 65 e($matches[1]).'[^:]*';.},.$name
b3be0 73 70 61 63 65 29 3b 0a 24 6e 61 6d 65 73 70 61 63 65 73 20 3d 20 70 72 65 67 5f 67 72 65 70 28 space);.$namespaces.=.preg_grep(
b3c00 27 7b 5e 27 2e 24 65 78 70 72 2e 27 7d 27 2c 20 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 29 3b '{^'.$expr.'}',.$allNamespaces);
b3c20 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 6e 61 6d 65 73 70 61 63 65 73 29 29 20 7b 0a 24 6d 65 73 ..if.(empty($namespaces)).{.$mes
b3c40 73 61 67 65 20 3d 20 73 70 72 69 6e 74 66 28 27 54 68 65 72 65 20 61 72 65 20 6e 6f 20 63 6f 6d sage.=.sprintf('There.are.no.com
b3c60 6d 61 6e 64 73 20 64 65 66 69 6e 65 64 20 69 6e 20 74 68 65 20 22 25 73 22 20 6e 61 6d 65 73 70 mands.defined.in.the."%s".namesp
b3c80 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 24 61 6c 74 65 72 6e ace.',.$namespace);..if.($altern
b3ca0 61 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 73 atives.=.$this->findAlternatives
b3cc0 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 61 6c 6c 4e 61 6d 65 73 70 61 63 65 73 2c 20 61 72 72 ($namespace,.$allNamespaces,.arr
b3ce0 61 79 28 29 29 29 20 7b 0a 69 66 20 28 31 20 3d 3d 20 63 6f 75 6e 74 28 24 61 6c 74 65 72 6e 61 ay())).{.if.(1.==.count($alterna
b3d00 74 69 76 65 73 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 5c 6e 5c 6e 44 69 64 20 79 tives)).{.$message..=."\n\nDid.y
b3d20 6f 75 20 6d 65 61 6e 20 74 68 69 73 3f 5c 6e 20 20 20 20 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 ou.mean.this?\n....";.}.else.{.$
b3d40 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
b3d60 20 6f 66 20 74 68 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 2e .of.these?\n....";.}..$message..
b3d80 3d 20 69 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 =.implode("\n....",.$alternative
b3da0 73 29 3b 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 s);.}..throw.new.\InvalidArgumen
b3dc0 74 45 78 63 65 70 74 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 24 65 78 61 63 74 20 tException($message);.}..$exact.
b3de0 3d 20 69 6e 5f 61 72 72 61 79 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 6e 61 6d 65 73 70 61 63 =.in_array($namespace,.$namespac
b3e00 65 73 2c 20 74 72 75 65 29 3b 0a 69 66 20 28 63 6f 75 6e 74 28 24 6e 61 6d 65 73 70 61 63 65 73 es,.true);.if.(count($namespaces
b3e20 29 20 3e 20 31 20 26 26 20 21 24 65 78 61 63 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 ).>.1.&&.!$exact).{.throw.new.\I
b3e40 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(
b3e60 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 73 'The.namespace."%s".is.ambiguous
b3e80 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 41 .(%s).',.$namespace,.$this->getA
b3ea0 62 62 72 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 61 72 72 61 79 5f 76 61 6c bbreviationSuggestions(array_val
b3ec0 75 65 73 28 24 6e 61 6d 65 73 70 61 63 65 73 29 29 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 ues($namespaces))));.}..return.$
b3ee0 65 78 61 63 74 20 3f 20 24 6e 61 6d 65 73 70 61 63 65 20 3a 20 72 65 73 65 74 28 24 6e 61 6d 65 exact.?.$namespace.:.reset($name
b3f00 73 70 61 63 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 spaces);.}................public
b3f20 20 66 75 6e 63 74 69 6f 6e 20 66 69 6e 64 28 24 6e 61 6d 65 29 0a 7b 0a 24 61 6c 6c 43 6f 6d 6d .function.find($name).{.$allComm
b3f40 61 6e 64 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 ands.=.array_keys($this->command
b3f60 73 29 3b 0a 24 65 78 70 72 20 3d 20 70 72 65 67 5f 72 65 70 6c 61 63 65 5f 63 61 6c 6c 62 61 63 s);.$expr.=.preg_replace_callbac
b3f80 6b 28 27 7b 28 5b 5e 3a 5d 2b 7c 29 7d 27 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6d 61 74 63 68 k('{([^:]+|)}',.function.($match
b3fa0 65 73 29 20 7b 20 72 65 74 75 72 6e 20 70 72 65 67 5f 71 75 6f 74 65 28 24 6d 61 74 63 68 65 73 es).{.return.preg_quote($matches
b3fc0 5b 31 5d 29 2e 27 5b 5e 3a 5d 2a 27 3b 20 7d 2c 20 24 6e 61 6d 65 29 3b 0a 24 63 6f 6d 6d 61 6e [1]).'[^:]*';.},.$name);.$comman
b3fe0 64 73 20 3d 20 70 72 65 67 5f 67 72 65 70 28 27 7b 5e 27 2e 24 65 78 70 72 2e 27 7d 27 2c 20 24 ds.=.preg_grep('{^'.$expr.'}',.$
b4000 61 6c 6c 43 6f 6d 6d 61 6e 64 73 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 63 6f 6d 6d 61 6e allCommands);..if.(empty($comman
b4020 64 73 29 20 7c 7c 20 63 6f 75 6e 74 28 70 72 65 67 5f 67 72 65 70 28 27 7b 5e 27 2e 24 65 78 70 ds).||.count(preg_grep('{^'.$exp
b4040 72 2e 27 24 7d 27 2c 20 24 63 6f 6d 6d 61 6e 64 73 29 29 20 3c 20 31 29 20 7b 0a 69 66 20 28 66 r.'$}',.$commands)).<.1).{.if.(f
b4060 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 6e 61 6d 65 2c 20 27 alse.!==.$pos.=.strrpos($name,.'
b4080 3a 27 29 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 66 69 6e 64 4e 61 6d 65 73 70 61 63 65 28 73 75 :')).{...$this->findNamespace(su
b40a0 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 2c 20 24 70 6f 73 29 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 bstr($name,.0,.$pos));.}..$messa
b40c0 67 65 20 3d 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 ge.=.sprintf('Command."%s".is.no
b40e0 74 20 64 65 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 t.defined.',.$name);..if.($alter
b4100 6e 61 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 natives.=.$this->findAlternative
b4120 73 28 24 6e 61 6d 65 2c 20 24 61 6c 6c 43 6f 6d 6d 61 6e 64 73 2c 20 61 72 72 61 79 28 29 29 29 s($name,.$allCommands,.array()))
b4140 20 7b 0a 69 66 20 28 31 20 3d 3d 20 63 6f 75 6e 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 29 .{.if.(1.==.count($alternatives)
b4160 29 20 7b 0a 24 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 ).{.$message..=."\n\nDid.you.mea
b4180 6e 20 74 68 69 73 3f 5c 6e 20 20 20 20 22 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6d 65 73 73 61 67 n.this?\n....";.}.else.{.$messag
b41a0 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 20 74 68 e..=."\n\nDid.you.mean.one.of.th
b41c0 65 73 65 3f 5c 6e 20 20 20 20 22 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 69 6d 70 6c 6f ese?\n....";.}.$message..=.implo
b41e0 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 0a de("\n....",.$alternatives);.}..
b4200 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 throw.new.\InvalidArgumentExcept
b4220 69 6f 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 24 65 78 61 63 74 20 3d 20 69 6e 5f 61 72 ion($message);.}..$exact.=.in_ar
b4240 72 61 79 28 24 6e 61 6d 65 2c 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 74 72 75 65 29 3b 0a 69 66 20 ray($name,.$commands,.true);.if.
b4260 28 63 6f 75 6e 74 28 24 63 6f 6d 6d 61 6e 64 73 29 20 3e 20 31 20 26 26 20 21 24 65 78 61 63 74 (count($commands).>.1.&&.!$exact
b4280 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 62 ).{.$suggestions.=.$this->getAbb
b42a0 72 65 76 69 61 74 69 6f 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 61 72 72 61 79 5f 76 61 6c 75 65 reviationSuggestions(array_value
b42c0 73 28 24 63 6f 6d 6d 61 6e 64 73 29 29 3b 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c s($commands));..throw.new.\Inval
b42e0 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 43 6f 6d idArgumentException(sprintf('Com
b4300 6d 61 6e 64 20 22 25 73 22 20 69 73 20 61 6d 62 69 67 75 6f 75 73 20 28 25 73 29 2e 27 2c 20 24 mand."%s".is.ambiguous.(%s).',.$
b4320 6e 61 6d 65 2c 20 24 73 75 67 67 65 73 74 69 6f 6e 73 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 name,.$suggestions));.}..return.
b4340 24 74 68 69 73 2d 3e 67 65 74 28 24 65 78 61 63 74 20 3f 20 24 6e 61 6d 65 20 3a 20 72 65 73 65 $this->get($exact.?.$name.:.rese
b4360 74 28 24 63 6f 6d 6d 61 6e 64 73 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 t($commands));.}.............pub
b4380 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 6c 6c 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 20 6e 75 lic.function.all($namespace.=.nu
b43a0 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b ll).{.if.(null.===.$namespace).{
b43c0 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 24 63 6f 6d .return.$this->commands;.}..$com
b43e0 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 69 73 2d mands.=.array();.foreach.($this-
b4400 3e 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 29 20 >commands.as.$name.=>.$command).
b4420 7b 0a 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 65 78 74 72 {.if.($namespace.===.$this->extr
b4440 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 actNamespace($name,.substr_count
b4460 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 3a 27 29 20 2b 20 31 29 29 20 7b 0a 24 63 6f 6d 6d 61 ($namespace,.':').+.1)).{.$comma
b4480 6e 64 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 nds[$name].=.$command;.}.}..retu
b44a0 72 6e 20 24 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 rn.$commands;.}.........public.s
b44c0 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 62 62 72 65 76 69 61 74 69 6f 6e 73 28 tatic.function.getAbbreviations(
b44e0 24 6e 61 6d 65 73 29 0a 7b 0a 24 61 62 62 72 65 76 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f $names).{.$abbrevs.=.array();.fo
b4500 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 66 6f 72 20 28 24 reach.($names.as.$name).{.for.($
b4520 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 3b 20 24 6c 65 6e 20 3e 20 30 3b 20 2d len.=.strlen($name);.$len.>.0;.-
b4540 2d 24 6c 65 6e 29 20 7b 0a 24 61 62 62 72 65 76 20 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c -$len).{.$abbrev.=.substr($name,
b4560 20 30 2c 20 24 6c 65 6e 29 3b 0a 24 61 62 62 72 65 76 73 5b 24 61 62 62 72 65 76 5d 5b 5d 20 3d .0,.$len);.$abbrevs[$abbrev][].=
b4580 20 24 6e 61 6d 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 61 62 62 72 65 76 73 3b 0a 7d 0a .$name;.}.}..return.$abbrevs;.}.
b45a0 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 54 65 78 ...........public.function.asTex
b45c0 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 6c 73 t($namespace.=.null,.$raw.=.fals
b45e0 65 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 54 65 78 74 44 65 73 63 72 e).{.$descriptor.=.new.TextDescr
b4600 69 70 74 6f 72 28 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 42 75 66 66 65 72 65 64 4f iptor();.$output.=.new.BufferedO
b4620 75 74 70 75 74 28 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 3a 3a 56 45 52 42 4f 53 49 54 59 5f utput(BufferedOutput::VERBOSITY_
b4640 4e 4f 52 4d 41 4c 2c 20 21 24 72 61 77 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 NORMAL,.!$raw);.$descriptor->des
b4660 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 6e 61 6d cribe($output,.$this,.array('nam
b4680 65 73 70 61 63 65 27 20 3d 3e 20 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 72 61 77 5f 6f 75 74 70 espace'.=>.$namespace,.'raw_outp
b46a0 75 74 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 2d 3e ut'.=>.true));..return.$output->
b46c0 66 65 74 63 68 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e fetch();.}............public.fun
b46e0 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 6c 6c 2c 20 24 ction.asXml($namespace.=.null,.$
b4700 61 73 44 6f 6d 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e asDom.=.false).{.$descriptor.=.n
b4720 65 77 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 0a 69 66 20 28 24 61 73 44 6f 6d 29 ew.XmlDescriptor();..if.($asDom)
b4740 20 7b 0a 72 65 74 75 72 6e 20 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 67 65 74 41 70 70 6c 69 63 .{.return.$descriptor->getApplic
b4760 61 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 ationDocument($this,.$namespace)
b4780 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 42 75 66 66 65 72 65 64 4f 75 74 70 75 ;.}..$output.=.new.BufferedOutpu
b47a0 74 28 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 t();.$descriptor->describe($outp
b47c0 75 74 2c 20 24 74 68 69 73 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 73 70 61 63 65 27 20 3d 3e 20 ut,.$this,.array('namespace'.=>.
b47e0 24 6e 61 6d 65 73 70 61 63 65 29 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6f 75 74 70 75 74 2d 3e 66 $namespace));..return.$output->f
b4800 65 74 63 68 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e etch();.}........public.function
b4820 20 72 65 6e 64 65 72 45 78 63 65 70 74 69 6f 6e 28 24 65 2c 20 24 6f 75 74 70 75 74 29 0a 7b 0a .renderException($e,.$output).{.
b4840 24 73 74 72 6c 65 6e 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 73 74 72 69 6e 67 29 20 7b 0a 69 $strlen.=.function.($string).{.i
b4860 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 73 74 72 6c 65 6e 27 29 f.(!function_exists('mb_strlen')
b4880 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 69 ).{.return.strlen($string);.}..i
b48a0 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 63 6f 64 69 6e 67 20 3d 20 6d 62 5f 64 65 74 65 f.(false.===.$encoding.=.mb_dete
b48c0 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 ct_encoding($string)).{.return.s
b48e0 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 6d 62 5f 73 74 72 trlen($string);.}..return.mb_str
b4900 6c 65 6e 28 24 73 74 72 69 6e 67 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d 3b 0a 0a 64 6f 20 len($string,.$encoding);.};..do.
b4920 7b 0a 24 74 69 74 6c 65 20 3d 20 73 70 72 69 6e 74 66 28 27 20 20 5b 25 73 5d 20 20 27 2c 20 67 {.$title.=.sprintf('..[%s]..',.g
b4940 65 74 5f 63 6c 61 73 73 28 24 65 29 29 3b 0a 24 6c 65 6e 20 3d 20 24 73 74 72 6c 65 6e 28 24 74 et_class($e));.$len.=.$strlen($t
b4960 69 74 6c 65 29 3b 0a 24 77 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e itle);.$width.=.$this->getTermin
b4980 61 6c 57 69 64 74 68 28 29 20 3f 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 57 69 alWidth().?.$this->getTerminalWi
b49a0 64 74 68 28 29 20 2d 20 31 20 3a 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 24 66 6f 72 6d 61 74 dth().-.1.:.PHP_INT_MAX;.$format
b49c0 74 65 72 20 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 24 ter.=.$output->getFormatter();.$
b49e0 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 70 72 65 67 5f 73 lines.=.array();.foreach.(preg_s
b4a00 70 6c 69 74 28 27 2f 5c 72 3f 5c 6e 2f 27 2c 20 24 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 plit('/\r?\n/',.$e->getMessage()
b4a20 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 72 5f 73 70 6c 69 74 ).as.$line).{.foreach.(str_split
b4a40 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 69 6e 65 29 20 7b 0a ($line,.$width.-.4).as.$line).{.
b4a60 0a 20 24 6c 69 6e 65 4c 65 6e 67 74 68 20 3d 20 24 73 74 72 6c 65 6e 28 70 72 65 67 5f 72 65 70 ..$lineLength.=.$strlen(preg_rep
b4a80 6c 61 63 65 28 27 2f 1b 5c 5b 5b 5e 6d 5d 2a 6d 2f 27 2c 20 27 27 2c 20 24 66 6f 72 6d 61 74 74 lace('/.\[[^m]*m/',.'',.$formatt
b4aa0 65 72 2d 3e 66 6f 72 6d 61 74 28 24 6c 69 6e 65 29 29 29 20 2b 20 34 3b 0a 24 6c 69 6e 65 73 5b er->format($line))).+.4;.$lines[
b4ac0 5d 20 3d 20 61 72 72 61 79 28 24 6c 69 6e 65 2c 20 24 6c 69 6e 65 4c 65 6e 67 74 68 29 3b 0a 0a ].=.array($line,.$lineLength);..
b4ae0 24 6c 65 6e 20 3d 20 6d 61 78 28 24 6c 69 6e 65 4c 65 6e 67 74 68 2c 20 24 6c 65 6e 29 3b 0a 7d $len.=.max($lineLength,.$len);.}
b4b00 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 61 72 72 61 79 28 27 27 2c 20 27 27 29 3b 0a 24 .}..$messages.=.array('',.'');.$
b4b20 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 65 6d 70 74 79 4c 69 6e 65 20 3d 20 24 66 6f 72 6d 61 messages[].=.$emptyLine.=.$forma
b4b40 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 73 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 25 73 3c tter->format(sprintf('<error>%s<
b4b60 2f 65 72 72 6f 72 3e 27 2c 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 29 /error>',.str_repeat('.',.$len))
b4b80 29 3b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 );.$messages[].=.$formatter->for
b4ba0 6d 61 74 28 73 70 72 69 6e 74 66 28 27 3c 65 72 72 6f 72 3e 25 73 25 73 3c 2f 65 72 72 6f 72 3e mat(sprintf('<error>%s%s</error>
b4bc0 27 2c 20 24 74 69 74 6c 65 2c 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 6d 61 78 28 30 ',.$title,.str_repeat('.',.max(0
b4be0 2c 20 24 6c 65 6e 20 2d 20 24 73 74 72 6c 65 6e 28 24 74 69 74 6c 65 29 29 29 29 29 3b 0a 66 6f ,.$len.-.$strlen($title)))));.fo
b4c00 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6d 65 73 73 61 reach.($lines.as.$line).{.$messa
b4c20 67 65 73 5b 5d 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 73 70 72 69 6e ges[].=.$formatter->format(sprin
b4c40 74 66 28 27 3c 65 72 72 6f 72 3e 20 20 25 73 20 20 25 73 3c 2f 65 72 72 6f 72 3e 27 2c 20 24 6c tf('<error>..%s..%s</error>',.$l
b4c60 69 6e 65 5b 30 5d 2c 20 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 20 2d 20 24 ine[0],.str_repeat('.',.$len.-.$
b4c80 6c 69 6e 65 5b 31 5d 29 29 29 3b 0a 7d 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 24 65 6d 70 line[1])));.}.$messages[].=.$emp
b4ca0 74 79 4c 69 6e 65 3b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 27 27 3b 0a 24 6d 65 73 73 61 tyLine;.$messages[].=.'';.$messa
b4cc0 67 65 73 5b 5d 20 3d 20 27 27 3b 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 6d ges[].=.'';..$output->writeln($m
b4ce0 65 73 73 61 67 65 73 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 essages,.OutputInterface::OUTPUT
b4d00 5f 52 41 57 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 52 _RAW);..if.(OutputInterface::VER
b4d20 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 20 3c 3d 20 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 BOSITY_VERBOSE.<=.$output->getVe
b4d40 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 27 3c rbosity()).{.$output->writeln('<
b4d60 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 65 6e comment>Exception.trace:</commen
b4d80 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 28 29 t>');....$trace.=.$e->getTrace()
b4da0 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 0a 27 ;.array_unshift($trace,.array(.'
b4dc0 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 3e 67 function'.=>.'',.'file'.=>.$e->g
b4de0 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 28 29 etFile().!=.null.?.$e->getFile()
b4e00 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 65 28 .:.'n/a',.'line'.=>.$e->getLine(
b4e20 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 2f 61 ).!=.null.?.$e->getLine().:.'n/a
b4e40 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 20 28 ',.'args'.=>.array(),.));..for.(
b4e60 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 3b 20 $i.=.0,.$count.=.count($trace);.
b4e80 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 69 73 $i.<.$count;.$i++).{.$class.=.is
b4ea0 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 61 63 set($trace[$i]['class']).?.$trac
b4ec0 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 73 73 e[$i]['class'].:.'';.$type.=.iss
b4ee0 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 65 5b et($trace[$i]['type']).?.$trace[
b4f00 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 24 74 $i]['type'].:.'';.$function.=.$t
b4f20 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 69 73 race[$i]['function'];.$file.=.is
b4f40 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 63 65 set($trace[$i]['file']).?.$trace
b4f60 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 69 73 [$i]['file'].:.'n/a';.$line.=.is
b4f80 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 63 65 set($trace[$i]['line']).?.$trace
b4fa0 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 2d 3e [$i]['line'].:.'n/a';..$output->
b4fc0 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 3c 69 writeln(sprintf('.%s%s%s().at.<i
b4fe0 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 70 65 nfo>%s:%s</info>',.$class,.$type
b5000 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 0a 0a ,.$function,.$file,.$line));.}..
b5020 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 3e 77 $output->writeln("");.$output->w
b5040 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 2d 3e riteln("");.}.}.while.($e.=.$e->
b5060 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 24 74 getPrevious());..if.(null.!==.$t
b5080 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 2d 3e his->runningCommand).{.$output->
b50a0 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 6f 3e writeln(sprintf('<info>%s</info>
b50c0 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 6e 64 ',.sprintf($this->runningCommand
b50e0 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 65 28 ->getSynopsis(),.$this->getName(
b5100 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 75 74 ))));.$output->writeln("");.$out
b5120 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 6f 74 put->writeln("");.}.}.......prot
b5140 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 68 28 ected.function.getTerminalWidth(
b5160 29 0a 7b 0a 24 64 69 6d 65 6e 73 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d ).{.$dimensions.=.$this->getTerm
b5180 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 69 6d 65 6e inalDimensions();..return.$dimen
b51a0 73 69 6f 6e 73 5b 30 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 sions[0];.}.......protected.func
b51c0 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 24 64 69 6d 65 tion.getTerminalHeight().{.$dime
b51e0 6e 73 69 6f 6e 73 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 54 65 72 6d 69 6e 61 6c 44 69 6d 65 6e nsions.=.$this->getTerminalDimen
b5200 73 69 6f 6e 73 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 69 6d 65 6e 73 69 6f 6e 73 5b 31 5d 3b sions();..return.$dimensions[1];
b5220 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 54 65 72 6d .}.......public.function.getTerm
b5240 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 74 65 inalDimensions().{.if.($this->te
b5260 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 rminalDimensions).{.return.$this
b5280 2d 3e 74 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 3b 0a 7d 0a 0a 69 66 20 28 64 65 66 ->terminalDimensions;.}..if.(def
b52a0 69 6e 65 64 28 27 50 48 50 5f 57 49 4e 44 4f 57 53 5f 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 ined('PHP_WINDOWS_VERSION_BUILD'
b52c0 29 29 20 7b 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 5c 64 2b 29 78 5c )).{...if.(preg_match('/^(\d+)x\
b52e0 64 2b 20 5c 28 5c 64 2b 78 28 5c 64 2b 29 5c 29 24 2f 27 2c 20 74 72 69 6d 28 67 65 74 65 6e 76 d+.\(\d+x(\d+)\)$/',.trim(getenv
b5300 28 27 41 4e 53 49 43 4f 4e 27 29 29 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 ('ANSICON')),.$matches)).{.retur
b5320 6e 20 61 72 72 61 79 28 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 28 69 6e 74 29 n.array((int).$matches[1],.(int)
b5340 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 7d 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 .$matches[2]);.}...if.(preg_matc
b5360 68 28 27 2f 5e 28 5c 64 2b 29 78 28 5c 64 2b 29 24 2f 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 43 h('/^(\d+)x(\d+)$/',.$this->getC
b5380 6f 6e 73 6f 6c 65 4d 6f 64 65 28 29 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 onsoleMode(),.$matches)).{.retur
b53a0 6e 20 61 72 72 61 79 28 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 2c 20 28 69 6e 74 29 n.array((int).$matches[1],.(int)
b53c0 20 24 6d 61 74 63 68 65 73 5b 32 5d 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 73 74 74 79 53 74 72 .$matches[2]);.}.}..if.($sttyStr
b53e0 69 6e 67 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 74 74 79 43 6f 6c 75 6d 6e 73 28 29 29 20 7b ing.=.$this->getSttyColumns()).{
b5400 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 72 6f 77 73 2e 28 5c 64 2b 29 3b 2e ...if.(preg_match('/rows.(\d+);.
b5420 63 6f 6c 75 6d 6e 73 2e 28 5c 64 2b 29 3b 2f 69 27 2c 20 24 73 74 74 79 53 74 72 69 6e 67 2c 20 columns.(\d+);/i',.$sttyString,.
b5440 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 28 69 6e 74 29 20 $matches)).{.return.array((int).
b5460 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 5d 29 3b $matches[2],.(int).$matches[1]);
b5480 0a 7d 0a 0a 20 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 3b 2e 28 5c 64 2b 29 2e 72 6f .}...if.(preg_match('/;.(\d+).ro
b54a0 77 73 3b 2e 28 5c 64 2b 29 2e 63 6f 6c 75 6d 6e 73 2f 69 27 2c 20 24 73 74 74 79 53 74 72 69 6e ws;.(\d+).columns/i',.$sttyStrin
b54c0 67 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 28 69 6e g,.$matches)).{.return.array((in
b54e0 74 29 20 24 6d 61 74 63 68 65 73 5b 32 5d 2c 20 28 69 6e 74 29 20 24 6d 61 74 63 68 65 73 5b 31 t).$matches[2],.(int).$matches[1
b5500 5d 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 75 6c 6c 2c 20 6e 75 6c 6c ]);.}.}..return.array(null,.null
b5520 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 );.}............public.function.
b5540 73 65 74 54 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f 6e 73 28 24 77 69 64 74 68 2c 20 24 68 setTerminalDimensions($width,.$h
b5560 65 69 67 68 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 44 69 6d 65 6e 73 69 6f eight).{.$this->terminalDimensio
b5580 6e 73 20 3d 20 61 72 72 61 79 28 24 77 69 64 74 68 2c 20 24 68 65 69 67 68 74 29 3b 0a 0a 72 65 ns.=.array($width,.$height);..re
b55a0 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 turn.$this;.}........protected.f
b55c0 75 6e 63 74 69 6f 6e 20 63 6f 6e 66 69 67 75 72 65 49 4f 28 49 6e 70 75 74 49 6e 74 65 72 66 61 unction.configureIO(InputInterfa
b55e0 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
b5600 75 74 29 0a 7b 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 ut).{.if.(true.===.$input->hasPa
b5620 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 61 6e 73 69 27 29 29 29 20 rameterOption(array('--ansi'))).
b5640 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 74 72 75 65 29 3b 0a 7d {.$output->setDecorated(true);.}
b5660 20 65 6c 73 65 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 .elseif.(true.===.$input->hasPar
b5680 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 61 72 72 61 79 28 27 2d 2d 6e 6f 2d 61 6e 73 69 27 29 29 ameterOption(array('--no-ansi'))
b56a0 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 66 61 6c 73 65 29 ).{.$output->setDecorated(false)
b56c0 3b 0a 7d 0a 0a 69 66 20 28 74 72 75 65 20 3d 3d 3d 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 ;.}..if.(true.===.$input->hasPar
b56e0 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 63 ameterOption(array('--no-interac
b5700 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 65 tion',.'-n'))).{.$input->setInte
b5720 72 61 63 74 69 76 65 28 66 61 6c 73 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 66 75 6e 63 74 69 ractive(false);.}.elseif.(functi
b5740 6f 6e 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 on_exists('posix_isatty').&&.$th
b5760 69 73 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 is->getHelperSet()->has('dialog'
b5780 29 29 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 )).{.$inputStream.=.$this->getHe
b57a0 6c 70 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 lperSet()->get('dialog')->getInp
b57c0 75 74 53 74 72 65 61 6d 28 29 3b 0a 69 66 20 28 21 40 70 6f 73 69 78 5f 69 73 61 74 74 79 28 24 utStream();.if.(!@posix_isatty($
b57e0 69 6e 70 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 inputStream)).{.$input->setInter
b5800 61 63 74 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 active(false);.}.}..if.(true.===
b5820 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 72 61 .$input->hasParameterOption(arra
b5840 79 28 27 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 y('--quiet',.'-q'))).{.$output->
b5860 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 45 setVerbosity(OutputInterface::VE
b5880 52 42 4f 53 49 54 59 5f 51 55 49 45 54 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 69 6e RBOSITY_QUIET);.}.else.{.if.($in
b58a0 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 76 76 76 27 29 20 put->hasParameterOption('-vvv').
b58c0 7c 7c 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 27 2d ||.$input->hasParameterOption('-
b58e0 2d 76 65 72 62 6f 73 65 3d 33 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 72 61 6d -verbose=3').||.$input->getParam
b5900 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 20 3d 3d 3d 20 33 29 20 7b eterOption('--verbose').===.3).{
b5920 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 4f 75 74 70 75 74 49 6e 74 .$output->setVerbosity(OutputInt
b5940 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 29 3b 0a 7d 20 65 6c 73 65 erface::VERBOSITY_DEBUG);.}.else
b5960 69 66 20 28 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 27 if.($input->hasParameterOption('
b5980 2d 76 76 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 -vv').||.$input->hasParameterOpt
b59a0 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 3d 32 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 ion('--verbose=2').||.$input->ge
b59c0 74 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 20 3d 3d tParameterOption('--verbose').==
b59e0 3d 20 32 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 73 65 74 56 65 72 62 6f 73 69 74 79 28 4f 75 74 =.2).{.$output->setVerbosity(Out
b5a00 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 putInterface::VERBOSITY_VERY_VER
b5a20 42 4f 53 45 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 6e 70 75 74 2d 3e 68 61 73 50 61 72 61 BOSE);.}.elseif.($input->hasPara
b5a40 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 76 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 68 61 73 meterOption('-v').||.$input->has
b5a60 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 3d 31 27 29 20 7c ParameterOption('--verbose=1').|
b5a80 7c 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 27 2d 2d |.$input->hasParameterOption('--
b5aa0 76 65 72 62 6f 73 65 27 29 20 7c 7c 20 24 69 6e 70 75 74 2d 3e 67 65 74 50 61 72 61 6d 65 74 65 verbose').||.$input->getParamete
b5ac0 72 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d rOption('--verbose')).{.$output-
b5ae0 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
b5b00 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ERBOSITY_VERBOSE);.}.}.}........
b5b20 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 52 75 6e 43 6f ......protected.function.doRunCo
b5b40 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 49 6e 74 mmand(Command.$command,.InputInt
b5b60 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 erface.$input,.OutputInterface.$
b5b80 6f 75 74 70 75 74 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 output).{.foreach.($command->get
b5ba0 48 65 6c 70 65 72 53 65 74 28 29 20 61 73 20 24 68 65 6c 70 65 72 29 20 7b 0a 69 66 20 28 24 68 HelperSet().as.$helper).{.if.($h
b5bc0 65 6c 70 65 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 41 77 61 72 65 49 6e 74 65 72 elper.instanceof.InputAwareInter
b5be0 66 61 63 65 29 20 7b 0a 24 68 65 6c 70 65 72 2d 3e 73 65 74 49 6e 70 75 74 28 24 69 6e 70 75 74 face).{.$helper->setInput($input
b5c00 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 64 69 73 70 );.}.}..if.(null.===.$this->disp
b5c20 61 74 63 68 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 72 75 6e 28 24 atcher).{.return.$command->run($
b5c40 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 input,.$output);.}..$event.=.new
b5c60 20 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 .ConsoleCommandEvent($command,.$
b5c80 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 input,.$output);.$this->dispatch
b5ca0 65 72 2d 3e 64 69 73 70 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 43 4f 4d 4d er->dispatch(ConsoleEvents::COMM
b5cc0 41 4e 44 2c 20 24 65 76 65 6e 74 29 3b 0a 0a 74 72 79 20 7b 0a 24 65 78 69 74 43 6f 64 65 20 3d AND,.$event);..try.{.$exitCode.=
b5ce0 20 24 63 6f 6d 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 .$command->run($input,.$output);
b5d00 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 65 76 65 6e .}.catch.(\Exception.$e).{.$even
b5d20 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 65 6e 74 28 24 63 t.=.new.ConsoleTerminateEvent($c
b5d40 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 2d 3e 67 65 74 ommand,.$input,.$output,.$e->get
b5d60 43 6f 64 65 28 29 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 Code());.$this->dispatcher->disp
b5d80 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 54 45 52 4d 49 4e 41 54 45 2c 20 24 atch(ConsoleEvents::TERMINATE,.$
b5da0 65 76 65 6e 74 29 3b 0a 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 45 78 63 event);..$event.=.new.ConsoleExc
b5dc0 65 70 74 69 6f 6e 45 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f eptionEvent($command,.$input,.$o
b5de0 75 74 70 75 74 2c 20 24 65 2c 20 24 65 76 65 6e 74 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 utput,.$e,.$event->getExitCode()
b5e00 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 2d 3e 64 69 73 70 61 74 63 68 28 43 );.$this->dispatcher->dispatch(C
b5e20 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 45 58 43 45 50 54 49 4f 4e 2c 20 24 65 76 65 6e 74 29 onsoleEvents::EXCEPTION,.$event)
b5e40 3b 0a 0a 74 68 72 6f 77 20 24 65 76 65 6e 74 2d 3e 67 65 74 45 78 63 65 70 74 69 6f 6e 28 29 3b ;..throw.$event->getException();
b5e60 0a 7d 0a 0a 24 65 76 65 6e 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 .}..$event.=.new.ConsoleTerminat
b5e80 65 45 76 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e 70 75 74 2c 20 24 6f 75 74 70 75 74 eEvent($command,.$input,.$output
b5ea0 2c 20 24 65 78 69 74 43 6f 64 65 29 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 61 74 63 68 65 72 2d ,.$exitCode);.$this->dispatcher-
b5ec0 3e 64 69 73 70 61 74 63 68 28 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 73 3a 3a 54 45 52 4d 49 4e 41 >dispatch(ConsoleEvents::TERMINA
b5ee0 54 45 2c 20 24 65 76 65 6e 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 65 76 65 6e 74 2d 3e 67 65 74 TE,.$event);..return.$event->get
b5f00 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 ExitCode();.}.........protected.
b5f20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 4e 61 6d 65 28 49 6e 70 75 74 49 6e 74 function.getCommandName(InputInt
b5f40 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 69 6e 70 75 74 2d 3e erface.$input).{.return.$input->
b5f60 67 65 74 46 69 72 73 74 41 72 67 75 6d 65 6e 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 getFirstArgument();.}.......prot
b5f80 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 49 6e 70 75 74 44 65 ected.function.getDefaultInputDe
b5fa0 66 69 6e 69 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 49 6e 70 75 74 44 65 66 finition().{.return.new.InputDef
b5fc0 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 28 0a 6e 65 77 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 inition(array(.new.InputArgument
b5fe0 28 27 63 6f 6d 6d 61 6e 64 27 2c 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 52 45 51 55 49 ('command',.InputArgument::REQUI
b6000 52 45 44 2c 20 27 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 6f 20 65 78 65 63 75 74 65 27 29 2c 0a RED,.'The.command.to.execute'),.
b6020 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 68 65 6c 70 27 2c 20 27 2d 68 27 2c .new.InputOption('--help',.'-h',
b6040 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 44 69 73 70 6c .InputOption::VALUE_NONE,.'Displ
b6060 61 79 20 74 68 69 73 20 68 65 6c 70 20 6d 65 73 73 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 ay.this.help.message.'),.new.Inp
b6080 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 71 75 69 65 74 27 2c 20 27 2d 71 27 2c 20 49 6e 70 75 74 4f utOption('--quiet',.'-q',.InputO
b60a0 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 6f 20 6e 6f 74 20 6f 75 74 70 75 ption::VALUE_NONE,.'Do.not.outpu
b60c0 74 20 61 6e 79 20 6d 65 73 73 61 67 65 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f t.any.message.'),.new.InputOptio
b60e0 6e 28 27 2d 2d 76 65 72 62 6f 73 65 27 2c 20 27 2d 76 7c 76 76 7c 76 76 76 27 2c 20 49 6e 70 75 n('--verbose',.'-v|vv|vvv',.Inpu
b6100 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 49 6e 63 72 65 61 73 65 20 74 tOption::VALUE_NONE,.'Increase.t
b6120 68 65 20 76 65 72 62 6f 73 69 74 79 20 6f 66 20 6d 65 73 73 61 67 65 73 3a 20 31 20 66 6f 72 20 he.verbosity.of.messages:.1.for.
b6140 6e 6f 72 6d 61 6c 20 6f 75 74 70 75 74 2c 20 32 20 66 6f 72 20 6d 6f 72 65 20 76 65 72 62 6f 73 normal.output,.2.for.more.verbos
b6160 65 20 6f 75 74 70 75 74 20 61 6e 64 20 33 20 66 6f 72 20 64 65 62 75 67 27 29 2c 0a 6e 65 77 20 e.output.and.3.for.debug'),.new.
b6180 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 76 65 72 73 69 6f 6e 27 2c 20 27 2d 56 27 2c 20 49 InputOption('--version',.'-V',.I
b61a0 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 2c 20 27 44 69 73 70 6c 61 79 nputOption::VALUE_NONE,.'Display
b61c0 20 74 68 69 73 20 61 70 70 6c 69 63 61 74 69 6f 6e 20 76 65 72 73 69 6f 6e 2e 27 29 2c 0a 6e 65 .this.application.version.'),.ne
b61e0 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 61 6e 73 69 27 2c 20 27 27 2c 20 49 6e 70 75 w.InputOption('--ansi',.'',.Inpu
b6200 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 20 41 4e 53 49 tOption::VALUE_NONE,.'Force.ANSI
b6220 20 6f 75 74 70 75 74 2e 27 29 2c 0a 6e 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 6e .output.'),.new.InputOption('--n
b6240 6f 2d 61 6e 73 69 27 2c 20 27 27 2c 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f o-ansi',.'',.InputOption::VALUE_
b6260 4e 4f 4e 45 2c 20 27 44 69 73 61 62 6c 65 20 41 4e 53 49 20 6f 75 74 70 75 74 2e 27 29 2c 0a 6e NONE,.'Disable.ANSI.output.'),.n
b6280 65 77 20 49 6e 70 75 74 4f 70 74 69 6f 6e 28 27 2d 2d 6e 6f 2d 69 6e 74 65 72 61 63 74 69 6f 6e ew.InputOption('--no-interaction
b62a0 27 2c 20 27 2d 6e 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 ',.'-n',.InputOption::VALUE_NONE
b62c0 2c 20 27 44 6f 20 6e 6f 74 20 61 73 6b 20 61 6e 79 20 69 6e 74 65 72 61 63 74 69 76 65 20 71 75 ,.'Do.not.ask.any.interactive.qu
b62e0 65 73 74 69 6f 6e 2e 27 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 estion.'),.));.}.......protected
b6300 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 28 29 0a 7b .function.getDefaultCommands().{
b6320 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 6e 65 77 20 48 65 6c 70 43 6f 6d 6d 61 6e 64 28 29 2c .return.array(new.HelpCommand(),
b6340 20 6e 65 77 20 4c 69 73 74 43 6f 6d 6d 61 6e 64 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f .new.ListCommand());.}.......pro
b6360 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 48 65 6c 70 65 72 tected.function.getDefaultHelper
b6380 53 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 48 65 6c 70 65 72 53 65 74 28 61 72 72 Set().{.return.new.HelperSet(arr
b63a0 61 79 28 0a 6e 65 77 20 46 6f 72 6d 61 74 74 65 72 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 44 ay(.new.FormatterHelper(),.new.D
b63c0 69 61 6c 6f 67 48 65 6c 70 65 72 28 29 2c 0a 6e 65 77 20 50 72 6f 67 72 65 73 73 48 65 6c 70 65 ialogHelper(),.new.ProgressHelpe
b63e0 72 28 29 2c 0a 6e 65 77 20 54 61 62 6c 65 48 65 6c 70 65 72 28 29 2c 0a 29 29 3b 0a 7d 0a 0a 0a r(),.new.TableHelper(),.));.}...
b6400 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
b6420 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
b6440 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
b6460 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
b6480 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')
b64a0 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
b64c0 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
b64e0 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
b6500 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
b6520 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
b6540 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
b6560 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[
b6580 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
b65a0 72 6e 20 24 69 6e 66 6f 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 rn.$info;.}.}.......private.func
b65c0 74 69 6f 6e 20 67 65 74 43 6f 6e 73 6f 6c 65 4d 6f 64 65 28 29 0a 7b 0a 69 66 20 28 21 66 75 6e tion.getConsoleMode().{.if.(!fun
b65e0 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 29 20 7b 0a 72 65 74 ction_exists('proc_open')).{.ret
b6600 75 72 6e 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 73 70 65 63 20 3d 20 61 72 72 61 79 28 urn;.}..$descriptorspec.=.array(
b6620 31 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 32 20 3d 3e 20 61 72 1.=>.array('pipe',.'w'),.2.=>.ar
b6640 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 3b 0a 24 70 72 6f 63 65 73 73 20 3d 20 70 72 ray('pipe',.'w'));.$process.=.pr
b6660 6f 63 5f 6f 70 65 6e 28 27 6d 6f 64 65 20 43 4f 4e 27 2c 20 24 64 65 73 63 72 69 70 74 6f 72 73 oc_open('mode.CON',.$descriptors
b6680 70 65 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 pec,.$pipes,.null,.null,.array('
b66a0 73 75 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 suppress_errors'.=>.true));.if.(
b66c0 69 73 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 is_resource($process)).{.$info.=
b66e0 20 73 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 .stream_get_contents($pipes[1]);
b6700 0a 66 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 .fclose($pipes[1]);.fclose($pipe
b6720 73 5b 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 69 66 s[2]);.proc_close($process);..if
b6740 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 2d 2d 2d 2d 2d 2d 2d 2d 2b 5c 72 3f 5c 6e 2e 2b 3f .(preg_match('/--------+\r?\n.+?
b6760 28 5c 64 2b 29 5c 72 3f 5c 6e 2e 2b 3f 28 5c 64 2b 29 5c 72 3f 5c 6e 2f 27 2c 20 24 69 6e 66 6f (\d+)\r?\n.+?(\d+)\r?\n/',.$info
b6780 2c 20 24 6d 61 74 63 68 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 65 73 5b 32 ,.$matches)).{.return.$matches[2
b67a0 5d 2e 27 78 27 2e 24 6d 61 74 63 68 65 73 5b 31 5d 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a ].'x'.$matches[1];.}.}.}........
b67c0 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 62 62 72 65 76 69 61 74 69 6f .private.function.getAbbreviatio
b67e0 6e 53 75 67 67 65 73 74 69 6f 6e 73 28 24 61 62 62 72 65 76 73 29 0a 7b 0a 72 65 74 75 72 6e 20 nSuggestions($abbrevs).{.return.
b6800 73 70 72 69 6e 74 66 28 27 25 73 2c 20 25 73 25 73 27 2c 20 24 61 62 62 72 65 76 73 5b 30 5d 2c sprintf('%s,.%s%s',.$abbrevs[0],
b6820 20 24 61 62 62 72 65 76 73 5b 31 5d 2c 20 63 6f 75 6e 74 28 24 61 62 62 72 65 76 73 29 20 3e 20 .$abbrevs[1],.count($abbrevs).>.
b6840 32 20 3f 20 73 70 72 69 6e 74 66 28 27 20 61 6e 64 20 25 64 20 6d 6f 72 65 27 2c 20 63 6f 75 6e 2.?.sprintf('.and.%d.more',.coun
b6860 74 28 24 61 62 62 72 65 76 73 29 20 2d 20 32 29 20 3a 20 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a t($abbrevs).-.2).:.'');.}.......
b6880 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 74 72 61 63 74 4e 61 6d 65 .....public.function.extractName
b68a0 73 70 61 63 65 28 24 6e 61 6d 65 2c 20 24 6c 69 6d 69 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 70 space($name,.$limit.=.null).{.$p
b68c0 61 72 74 73 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 6e 61 6d 65 29 3b 0a 61 72 72 61 arts.=.explode(':',.$name);.arra
b68e0 79 5f 70 6f 70 28 24 70 61 72 74 73 29 3b 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 y_pop($parts);..return.implode('
b6900 3a 27 2c 20 6e 75 6c 6c 20 3d 3d 3d 20 24 6c 69 6d 69 74 20 3f 20 24 70 61 72 74 73 20 3a 20 61 :',.null.===.$limit.?.$parts.:.a
b6920 72 72 61 79 5f 73 6c 69 63 65 28 24 70 61 72 74 73 2c 20 30 2c 20 24 6c 69 6d 69 74 29 29 3b 0a rray_slice($parts,.0,.$limit));.
b6940 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 66 69 6e }...........private.function.fin
b6960 64 41 6c 74 65 72 6e 61 74 69 76 65 73 28 24 6e 61 6d 65 2c 20 24 63 6f 6c 6c 65 63 74 69 6f 6e dAlternatives($name,.$collection
b6980 29 0a 7b 0a 24 74 68 72 65 73 68 6f 6c 64 20 3d 20 31 65 33 3b 0a 24 61 6c 74 65 72 6e 61 74 69 ).{.$threshold.=.1e3;.$alternati
b69a0 76 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 63 6f 6c 6c 65 63 74 69 6f 6e 50 61 72 74 73 ves.=.array();..$collectionParts
b69c0 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6c 6c 65 63 74 69 6f 6e .=.array();.foreach.($collection
b69e0 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 24 63 6f 6c 6c 65 63 74 69 6f 6e 50 61 72 74 73 5b 24 69 .as.$item).{.$collectionParts[$i
b6a00 74 65 6d 5d 20 3d 20 65 78 70 6c 6f 64 65 28 27 3a 27 2c 20 24 69 74 65 6d 29 3b 0a 7d 0a 0a 66 tem].=.explode(':',.$item);.}..f
b6a20 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 29 20 61 73 20 24 oreach.(explode(':',.$name).as.$
b6a40 69 20 3d 3e 20 24 73 75 62 6e 61 6d 65 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6c 6c 65 i.=>.$subname).{.foreach.($colle
b6a60 63 74 69 6f 6e 50 61 72 74 73 20 61 73 20 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 20 3d 3e ctionParts.as.$collectionName.=>
b6a80 20 24 70 61 72 74 73 29 20 7b 0a 24 65 78 69 73 74 73 20 3d 20 69 73 73 65 74 28 24 61 6c 74 65 .$parts).{.$exists.=.isset($alte
b6aa0 72 6e 61 74 69 76 65 73 5b 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 5d 29 3b 0a 69 66 20 28 rnatives[$collectionName]);.if.(
b6ac0 21 69 73 73 65 74 28 24 70 61 72 74 73 5b 24 69 5d 29 20 26 26 20 24 65 78 69 73 74 73 29 20 7b !isset($parts[$i]).&&.$exists).{
b6ae0 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 5d 20 .$alternatives[$collectionName].
b6b00 2b 3d 20 24 74 68 72 65 73 68 6f 6c 64 3b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 69 +=.$threshold;.continue;.}.elsei
b6b20 66 20 28 21 69 73 73 65 74 28 24 70 61 72 74 73 5b 24 69 5d 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 f.(!isset($parts[$i])).{.continu
b6b40 65 3b 0a 7d 0a 0a 24 6c 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 69 6e 28 24 73 75 62 6e 61 6d e;.}..$lev.=.levenshtein($subnam
b6b60 65 2c 20 24 70 61 72 74 73 5b 24 69 5d 29 3b 0a 69 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 72 6c e,.$parts[$i]);.if.($lev.<=.strl
b6b80 65 6e 28 24 73 75 62 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 en($subname)./.3.||.false.!==.st
b6ba0 72 70 6f 73 28 24 70 61 72 74 73 5b 24 69 5d 2c 20 24 73 75 62 6e 61 6d 65 29 29 20 7b 0a 24 61 rpos($parts[$i],.$subname)).{.$a
b6bc0 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 63 6f 6c 6c 65 63 74 69 6f 6e 4e 61 6d 65 5d 20 3d 20 24 lternatives[$collectionName].=.$
b6be0 65 78 69 73 74 73 20 3f 20 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 63 6f 6c 6c 65 63 74 69 exists.?.$alternatives[$collecti
b6c00 6f 6e 4e 61 6d 65 5d 20 2b 20 24 6c 65 76 20 3a 20 24 6c 65 76 3b 0a 7d 20 65 6c 73 65 69 66 20 onName].+.$lev.:.$lev;.}.elseif.
b6c20 28 24 65 78 69 73 74 73 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 63 6f 6c 6c 65 ($exists).{.$alternatives[$colle
b6c40 63 74 69 6f 6e 4e 61 6d 65 5d 20 2b 3d 20 24 74 68 72 65 73 68 6f 6c 64 3b 0a 7d 0a 7d 0a 7d 0a ctionName].+=.$threshold;.}.}.}.
b6c60 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 74 65 6d 29 20 .foreach.($collection.as.$item).
b6c80 7b 0a 24 6c 65 76 20 3d 20 6c 65 76 65 6e 73 68 74 65 69 6e 28 24 6e 61 6d 65 2c 20 24 69 74 65 {.$lev.=.levenshtein($name,.$ite
b6ca0 6d 29 3b 0a 69 66 20 28 24 6c 65 76 20 3c 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 20 2f 20 m);.if.($lev.<=.strlen($name)./.
b6cc0 33 20 7c 7c 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 69 74 65 6d 2c 20 24 6e 61 3.||.false.!==.strpos($item,.$na
b6ce0 6d 65 29 29 20 7b 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 69 74 65 6d 5d 20 3d 20 69 73 me)).{.$alternatives[$item].=.is
b6d00 73 65 74 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 5b 24 69 74 65 6d 5d 29 20 3f 20 24 61 6c 74 set($alternatives[$item]).?.$alt
b6d20 65 72 6e 61 74 69 76 65 73 5b 24 69 74 65 6d 5d 20 2d 20 24 6c 65 76 20 3a 20 24 6c 65 76 3b 0a ernatives[$item].-.$lev.:.$lev;.
b6d40 7d 0a 7d 0a 0a 24 61 6c 74 65 72 6e 61 74 69 76 65 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 }.}..$alternatives.=.array_filte
b6d60 72 28 24 61 6c 74 65 72 6e 61 74 69 76 65 73 2c 20 66 75 6e 63 74 69 6f 6e 20 28 24 6c 65 76 29 r($alternatives,.function.($lev)
b6d80 20 75 73 65 20 28 24 74 68 72 65 73 68 6f 6c 64 29 20 7b 20 72 65 74 75 72 6e 20 24 6c 65 76 20 .use.($threshold).{.return.$lev.
b6da0 3c 20 32 2a 24 74 68 72 65 73 68 6f 6c 64 3b 20 7d 29 3b 0a 61 73 6f 72 74 28 24 61 6c 74 65 72 <.2*$threshold;.});.asort($alter
b6dc0 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 65 79 73 28 24 61 6c natives);..return.array_keys($al
b6de0 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 0a 0a 0a 0a 0a 0a 0a ternatives);.}.}.<?php..........
b6e00 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
b6e20 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 20 49 6e 70 75 74 41 sole\Input;.........class.InputA
b6e40 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 3d 20 31 3b 0a 63 6f rgument.{.const.REQUIRED.=.1;.co
b6e60 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 53 5f 41 52 52 41 59 nst.OPTIONAL.=.2;.const.IS_ARRAY
b6e80 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 76 61 74 65 20 24 6d .=.4;..private.$name;.private.$m
b6ea0 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 69 76 61 74 65 20 24 ode;.private.$default;.private.$
b6ec0 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 0a 70 75 62 6c 69 63 description;..............public
b6ee0 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 6d 6f .function.__construct($name,.$mo
b6f00 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 24 64 de.=.null,.$description.=.'',.$d
b6f20 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 20 3d 3d 3d 20 24 6d efault.=.null).{.if.(null.===.$m
b6f40 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 4f 4e 41 4c 3b 0a 7d ode).{.$mode.=.self::OPTIONAL;.}
b6f60 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 7c 20 24 6d 6f 64 65 .elseif.(!is_int($mode).||.$mode
b6f80 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 77 20 6e 65 77 20 5c .>.7.||.$mode.<.1).{.throw.new.\
b6fa0 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
b6fc0 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 6f 74 20 76 61 6c 69 ('Argument.mode."%s".is.not.vali
b6fe0 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 61 6d 65 20 3d 20 24 d.',.$mode));.}..$this->name.=.$
b7000 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 3b 0a 24 74 68 69 73 name;.$this->mode.=.$mode;.$this
b7020 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 0a 24 ->description.=.$description;..$
b7040 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 0a 0a this->setDefault($default);.}...
b7060 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 7b 0a ....public.function.getName().{.
b7080 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 62 6c return.$this->name;.}.......publ
b70a0 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 7b 0a 72 65 74 75 72 ic.function.isRequired().{.retur
b70c0 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 66 3a 3a 52 45 51 55 n.self::REQUIRED.===.(self::REQU
b70e0 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 0a 0a 0a 0a 70 75 62 IRED.&.$this->mode);.}.......pub
b7100 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 72 65 74 75 72 6e 20 lic.function.isArray().{.return.
b7120 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 3a 49 53 5f 41 52 52 self::IS_ARRAY.===.(self::IS_ARR
b7140 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 0a 0a 0a 0a 70 75 62 AY.&.$this->mode);.}.........pub
b7160 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 64 65 66 61 75 6c 74 lic.function.setDefault($default
b7180 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 49 52 45 44 20 3d 3d .=.null).{.if.(self::REQUIRED.==
b71a0 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 20 24 64 65 66 61 75 =.$this->mode.&&.null.!==.$defau
b71c0 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 65 70 74 69 6f 6e 28 lt).{.throw.new.\LogicException(
b71e0 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 75 65 20 65 78 63 65 'Cannot.set.a.default.value.exce
b7200 70 74 20 66 6f 72 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 3a 4f 50 54 49 4f 4e 41 4c 20 6d pt.for.InputArgument::OPTIONAL.m
b7220 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 28 29 29 ode.');.}..if.($this->isArray())
b7240 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 64 65 66 .{.if.(null.===.$default).{.$def
b7260 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 5f 61 72 ault.=.array();.}.elseif.(!is_ar
b7280 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 6f 67 69 ray($default)).{.throw.new.\Logi
b72a0 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 6f 72 20 cException('A.default.value.for.
b72c0 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 61 72 72 an.array.argument.must.be.an.arr
b72e0 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 24 64 65 ay.');.}.}..$this->default.=.$de
b7300 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 67 fault;.}.......public.function.g
b7320 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 65 66 61 etDefault().{.return.$this->defa
b7340 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 67 65 74 ult;.}.......public.function.get
b7360 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 64 65 Description().{.return.$this->de
b7380 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 0a 0a 6e scription;.}.}.<?php...........n
b73a0 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
b73c0 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 74 20 63 le\Input;.............abstract.c
b73e0 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 74 65 72 lass.Input.implements.InputInter
b7400 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b face.{....protected.$definition;
b7420 0a 70 72 6f 74 65 63 74 65 64 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 .protected.$options.=.array();.p
b7440 72 6f 74 65 63 74 65 64 20 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 rotected.$arguments.=.array();.p
b7460 72 6f 74 65 63 74 65 64 20 24 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 74 72 75 65 3b 0a 0a 0a rotected.$interactive.=.true;...
b7480 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(
b74a0 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 75 InputDefinition.$definition.=.nu
b74c0 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 ll).{.if.(null.===.$definition).
b74e0 7b 0a 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 6e 65 77 20 49 6e 70 75 74 44 {.$this->definition.=.new.InputD
b7500 65 66 69 6e 69 74 69 6f 6e 28 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 62 69 6e efinition();.}.else.{.$this->bin
b7520 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 76 61 6c 69 64 61 74 65 28 d($definition);.$this->validate(
b7540 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 6e 20 62 69 6e );.}.}.......public.function.bin
b7560 64 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b d(InputDefinition.$definition).{
b7580 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 74 68 .$this->arguments.=.array();.$th
b75a0 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 64 65 is->options.=.array();.$this->de
b75c0 66 69 6e 69 74 69 6f 6e 20 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 3b 0a 0a 24 74 68 69 73 2d 3e finition.=.$definition;..$this->
b75e0 70 61 72 73 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 parse();.}.....abstract.protecte
b7600 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 d.function.parse();.......public
b7620 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 28 29 0a 7b 0a 69 66 20 28 63 6f 75 6e 74 .function.validate().{.if.(count
b7640 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3c 20 24 74 68 69 73 2d 3e 64 65 66 69 ($this->arguments).<.$this->defi
b7660 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 52 65 71 75 69 72 65 64 43 6f 75 6e 74 nition->getArgumentRequiredCount
b7680 28 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 ()).{.throw.new.\RuntimeExceptio
b76a0 6e 28 27 4e 6f 74 20 65 6e 6f 75 67 68 20 61 72 67 75 6d 65 6e 74 73 2e 27 29 3b 0a 7d 0a 7d 0a n('Not.enough.arguments.');.}.}.
b76c0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 65 72 61 63 74 ......public.function.isInteract
b76e0 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 74 65 72 61 63 74 69 76 ive().{.return.$this->interactiv
b7700 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e e;.}.......public.function.setIn
b7720 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 29 0a 7b 0a 24 74 68 69 73 2d teractive($interactive).{.$this-
b7740 3e 69 6e 74 65 72 61 63 74 69 76 65 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 69 6e 74 65 72 61 >interactive.=.(Boolean).$intera
b7760 63 74 69 76 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 ctive;.}.......public.function.g
b7780 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 5f 6d 65 72 etArguments().{.return.array_mer
b77a0 67 65 28 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 ge($this->definition->getArgumen
b77c0 74 44 65 66 61 75 6c 74 73 28 29 2c 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a tDefaults(),.$this->arguments);.
b77e0 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 41 }...........public.function.getA
b7800 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 rgument($name).{.if.(!$this->def
b7820 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 29 20 7b 0a 74 inition->hasArgument($name)).{.t
b7840 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
b7860 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 65 6e 74 20 64 6f on(sprintf('The."%s".argument.do
b7880 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 es.not.exist.',.$name));.}..retu
b78a0 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d rn.isset($this->arguments[$name]
b78c0 29 20 3f 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3a 20 24 74 ).?.$this->arguments[$name].:.$t
b78e0 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 28 24 6e 61 his->definition->getArgument($na
b7900 6d 65 29 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 me)->getDefault();.}..........pu
b7920 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c blic.function.setArgument($name,
b7940 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
b7960 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e n->hasArgument($name)).{.throw.n
b7980 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 72 ew.\InvalidArgumentException(spr
b79a0 69 6e 74 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 intf('The."%s".argument.does.not
b79c0 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 61 72 67 .exist.',.$name));.}..$this->arg
b79e0 75 6d 65 6e 74 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 uments[$name].=.$value;.}.......
b7a00 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e ..public.function.hasArgument($n
b7a20 61 6d 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 ame).{.return.$this->definition-
b7a40 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 >hasArgument($name);.}.......pub
b7a60 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a 72 65 74 75 lic.function.getOptions().{.retu
b7a80 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
b7aa0 2d 3e 67 65 74 4f 70 74 69 6f 6e 44 65 66 61 75 6c 74 73 28 29 2c 20 24 74 68 69 73 2d 3e 6f 70 ->getOptionDefaults(),.$this->op
b7ac0 74 69 6f 6e 73 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 tions);.}...........public.funct
b7ae0 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 69 ion.getOption($name).{.if.(!$thi
b7b00 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 s->definition->hasOption($name))
b7b20 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
b7b40 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 6f 70 74 69 6f 6e 20 eption(sprintf('The."%s".option.
b7b60 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 does.not.exist.',.$name));.}..re
b7b80 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 61 6d 65 5d turn.isset($this->options[$name]
b7ba0 29 20 3f 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 20 3a 20 24 74 68 69 ).?.$this->options[$name].:.$thi
b7bc0 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 29 2d s->definition->getOption($name)-
b7be0 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 >getDefault();.}..........public
b7c00 20 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 20 24 76 61 6c 75 .function.setOption($name,.$valu
b7c20 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 e).{.if.(!$this->definition->has
b7c40 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 49 6e 76 61 Option($name)).{.throw.new.\Inva
b7c60 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 68 lidArgumentException(sprintf('Th
b7c80 65 20 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 e."%s".option.does.not.exist.',.
b7ca0 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 $name));.}..$this->options[$name
b7cc0 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ].=.$value;.}.........public.fun
b7ce0 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 ction.hasOption($name).{.return.
b7d00 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 $this->definition->hasOption($na
b7d20 6d 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 6f 6e 20 65 me);.}.........public.function.e
b7d40 73 63 61 70 65 54 6f 6b 65 6e 28 24 74 6f 6b 65 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 70 72 65 67 scapeToken($token).{.return.preg
b7d60 5f 6d 61 74 63 68 28 27 7b 5e 5b 5c 77 2d 5d 2b 24 7d 27 2c 20 24 74 6f 6b 65 6e 29 20 3f 20 24 _match('{^[\w-]+$}',.$token).?.$
b7d80 74 6f 6b 65 6e 20 3a 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 74 6f 6b 65 6e 29 3b 0a token.:.escapeshellarg($token);.
b7da0 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
b7dc0 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 0a mfony\Component\Console\Input;..
b7de0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 69 6e 67 49 6e 70 75 74 20 65 78 74 ...........class.StringInput.ext
b7e00 65 6e 64 73 20 41 72 67 76 49 6e 70 75 74 0a 7b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 53 54 52 ends.ArgvInput.{.const.REGEX_STR
b7e20 49 4e 47 20 3d 20 27 28 5b 5e 5c 73 5d 2b 3f 29 28 3f 3a 5c 73 7c 28 3f 3c 21 5c 5c 5c 5c 29 22 ING.=.'([^\s]+?)(?:\s|(?<!\\\\)"
b7e40 7c 28 3f 3c 21 5c 5c 5c 5c 29 5c 27 7c 24 29 27 3b 0a 63 6f 6e 73 74 20 52 45 47 45 58 5f 51 55 |(?<!\\\\)\'|$)';.const.REGEX_QU
b7e60 4f 54 45 44 5f 53 54 52 49 4e 47 20 3d 20 27 28 3f 3a 22 28 5b 5e 22 5c 5c 5c 5c 5d 2a 28 3f 3a OTED_STRING.=.'(?:"([^"\\\\]*(?:
b7e80 5c 5c 5c 5c 2e 5b 5e 22 5c 5c 5c 5c 5d 2a 29 2a 29 22 7c 5c 27 28 5b 5e 5c 27 5c 5c 5c 5c 5d 2a \\\\.[^"\\\\]*)*)"|\'([^\'\\\\]*
b7ea0 28 3f 3a 5c 5c 5c 5c 2e 5b 5e 5c 27 5c 5c 5c 5c 5d 2a 29 2a 29 5c 27 29 27 3b 0a 0a 0a 0a 0a 0a (?:\\\\.[^\'\\\\]*)*)\')';......
b7ec0 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
b7ee0 74 28 24 69 6e 70 75 74 2c 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e t($input,.InputDefinition.$defin
b7f00 69 74 69 6f 6e 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 ition.=.null).{.parent::__constr
b7f20 75 63 74 28 61 72 72 61 79 28 29 2c 20 6e 75 6c 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 54 uct(array(),.null);..$this->setT
b7f40 6f 6b 65 6e 73 28 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 69 7a 65 28 24 69 6e 70 75 74 29 29 3b 0a okens($this->tokenize($input));.
b7f60 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 20 7b 0a 24 74 68 .if.(null.!==.$definition).{.$th
b7f80 69 73 2d 3e 62 69 6e 64 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a is->bind($definition);.}.}......
b7fa0 0a 0a 0a 0a 0a 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 .....private.function.tokenize($
b7fc0 69 6e 70 75 74 29 0a 7b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6c 65 6e input).{.$tokens.=.array();.$len
b7fe0 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 69 6e 70 75 74 29 3b 0a 24 63 75 72 73 6f 72 20 3d 20 gth.=.strlen($input);.$cursor.=.
b8000 30 3b 0a 77 68 69 6c 65 20 28 24 63 75 72 73 6f 72 20 3c 20 24 6c 65 6e 67 74 68 29 20 7b 0a 69 0;.while.($cursor.<.$length).{.i
b8020 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5c 73 2b 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 f.(preg_match('/\s+/A',.$input,.
b8040 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 7d 20 65 6c 73 65 $match,.null,.$cursor)).{.}.else
b8060 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 28 5b 5e 3d 22 5c 27 5c 73 5d 2b 3f 29 28 3d if.(preg_match('/([^="\'\s]+?)(=
b8080 3f 29 28 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 27 ?)('.self::REGEX_QUOTED_STRING.'
b80a0 2b 29 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 +)/A',.$input,.$match,.null,.$cu
b80c0 72 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 24 6d 61 74 63 68 5b 31 5d 2e 24 rsor)).{.$tokens[].=.$match[1].$
b80e0 6d 61 74 63 68 5b 32 5d 2e 73 74 72 69 70 63 73 6c 61 73 68 65 73 28 73 74 72 5f 72 65 70 6c 61 match[2].stripcslashes(str_repla
b8100 63 65 28 61 72 72 61 79 28 27 22 5c 27 27 2c 20 27 5c 27 22 27 2c 20 27 5c 27 5c 27 27 2c 20 27 ce(array('"\'',.'\'"',.'\'\'',.'
b8120 22 22 27 29 2c 20 27 27 2c 20 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 33 5d 2c 20 31 2c 20 73 ""'),.'',.substr($match[3],.1,.s
b8140 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 33 5d 29 20 2d 20 32 29 29 29 3b 0a 7d 20 65 6c 73 65 69 trlen($match[3]).-.2)));.}.elsei
b8160 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 5f 51 55 f.(preg_match('/'.self::REGEX_QU
b8180 4f 54 45 44 5f 53 54 52 49 4e 47 2e 27 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 OTED_STRING.'/A',.$input,.$match
b81a0 2c 20 6e 75 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 ,.null,.$cursor)).{.$tokens[].=.
b81c0 73 74 72 69 70 63 73 6c 61 73 68 65 73 28 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b 30 5d 2c 20 stripcslashes(substr($match[0],.
b81e0 31 2c 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 20 2d 20 32 29 29 3b 0a 7d 20 65 6c 1,.strlen($match[0]).-.2));.}.el
b8200 73 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 27 2e 73 65 6c 66 3a 3a 52 45 47 45 58 seif.(preg_match('/'.self::REGEX
b8220 5f 53 54 52 49 4e 47 2e 27 2f 41 27 2c 20 24 69 6e 70 75 74 2c 20 24 6d 61 74 63 68 2c 20 6e 75 _STRING.'/A',.$input,.$match,.nu
b8240 6c 6c 2c 20 24 63 75 72 73 6f 72 29 29 20 7b 0a 24 74 6f 6b 65 6e 73 5b 5d 20 3d 20 73 74 72 69 ll,.$cursor)).{.$tokens[].=.stri
b8260 70 63 73 6c 61 73 68 65 73 28 24 6d 61 74 63 68 5b 31 5d 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a pcslashes($match[1]);.}.else.{..
b8280 20 0a 20 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
b82a0 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 61 62 6c 65 20 74 6f 20 70 61 72 73 65 20 eption(sprintf('Unable.to.parse.
b82c0 69 6e 70 75 74 20 6e 65 61 72 20 22 2e 2e 2e 20 25 73 20 2e 2e 2e 22 27 2c 20 73 75 62 73 74 72 input.near."....%s...."',.substr
b82e0 28 24 69 6e 70 75 74 2c 20 24 63 75 72 73 6f 72 2c 20 31 30 29 29 29 3b 0a 0a 20 7d 0a 0a 24 63 ($input,.$cursor,.10)));...}..$c
b8300 75 72 73 6f 72 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6d 61 74 63 68 5b 30 5d 29 3b 0a 7d 0a 0a 72 ursor.+=.strlen($match[0]);.}..r
b8320 65 74 75 72 6e 20 24 74 6f 6b 65 6e 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a eturn.$tokens;.}.}.<?php........
b8340 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
b8360 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 20 49 6e 70 75 onsole\Input;.........class.Inpu
b8380 74 4f 70 74 69 6f 6e 0a 7b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 20 31 3b 0a tOption.{.const.VALUE_NONE.=.1;.
b83a0 63 6f 6e 73 74 20 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 const.VALUE_REQUIRED.=.2;.const.
b83c0 56 41 4c 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 3d 20 34 3b 0a 63 6f 6e 73 74 20 56 41 4c 55 45 5f VALUE_OPTIONAL.=.4;.const.VALUE_
b83e0 49 53 5f 41 52 52 41 59 20 3d 20 38 3b 0a 0a 70 72 69 76 61 74 65 20 24 6e 61 6d 65 3b 0a 70 72 IS_ARRAY.=.8;..private.$name;.pr
b8400 69 76 61 74 65 20 24 73 68 6f 72 74 63 75 74 3b 0a 70 72 69 76 61 74 65 20 24 6d 6f 64 65 3b 0a ivate.$shortcut;.private.$mode;.
b8420 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 3b 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 private.$default;.private.$descr
b8440 69 70 74 69 6f 6e 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 iption;...............public.fun
b8460 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 73 68 6f 72 74 63 ction.__construct($name,.$shortc
b8480 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 69 ut.=.null,.$mode.=.null,.$descri
b84a0 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 69 ption.=.'',.$default.=.null).{.i
b84c0 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 2d 2d 27 29 29 20 7b 0a f.(0.===.strpos($name,.'--')).{.
b84e0 24 6e 61 6d 65 20 3d 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 32 29 3b 0a 7d 0a 0a 69 66 20 $name.=.substr($name,.2);.}..if.
b8500 28 65 6d 70 74 79 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 (empty($name)).{.throw.new.\Inva
b8520 6c 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 lidArgumentException('An.option.
b8540 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 0a 69 66 20 28 name.cannot.be.empty.');.}..if.(
b8560 65 6d 70 74 79 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 empty($shortcut)).{.$shortcut.=.
b8580 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 73 68 6f 72 74 63 75 74 29 null;.}..if.(null.!==.$shortcut)
b85a0 20 7b 0a 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 24 73 .{.if.(is_array($shortcut)).{.$s
b85c0 68 6f 72 74 63 75 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 7c 27 2c 20 24 73 68 6f 72 74 63 75 74 hortcut.=.implode('|',.$shortcut
b85e0 29 3b 0a 7d 0a 24 73 68 6f 72 74 63 75 74 73 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7b 28 );.}.$shortcuts.=.preg_split('{(
b8600 5c 7c 29 2d 3f 7d 27 2c 20 6c 74 72 69 6d 28 24 73 68 6f 72 74 63 75 74 2c 20 27 2d 27 29 29 3b \|)-?}',.ltrim($shortcut,.'-'));
b8620 0a 24 73 68 6f 72 74 63 75 74 73 20 3d 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 24 73 68 6f 72 .$shortcuts.=.array_filter($shor
b8640 74 63 75 74 73 29 3b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 69 6d 70 6c 6f 64 65 28 27 7c 27 2c tcuts);.$shortcut.=.implode('|',
b8660 20 24 73 68 6f 72 74 63 75 74 73 29 3b 0a 0a 69 66 20 28 65 6d 70 74 79 28 24 73 68 6f 72 74 63 .$shortcuts);..if.(empty($shortc
b8680 75 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 67 75 6d 65 6e ut)).{.throw.new.\InvalidArgumen
b86a0 74 45 78 63 65 70 74 69 6f 6e 28 27 41 6e 20 6f 70 74 69 6f 6e 20 73 68 6f 72 74 63 75 74 20 63 tException('An.option.shortcut.c
b86c0 61 6e 6e 6f 74 20 62 65 20 65 6d 70 74 79 2e 27 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c annot.be.empty.');.}.}..if.(null
b86e0 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 56 41 4c 55 .===.$mode).{.$mode.=.self::VALU
b8700 45 5f 4e 4f 4e 45 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 E_NONE;.}.elseif.(!is_int($mode)
b8720 20 7c 7c 20 24 6d 6f 64 65 20 3e 20 31 35 20 7c 7c 20 24 6d 6f 64 65 20 3c 20 31 29 20 7b 0a 74 .||.$mode.>.15.||.$mode.<.1).{.t
b8740 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
b8760 6f 6e 28 73 70 72 69 6e 74 66 28 27 4f 70 74 69 6f 6e 20 6d 6f 64 65 20 22 25 73 22 20 69 73 20 on(sprintf('Option.mode."%s".is.
b8780 6e 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 not.valid.',.$mode));.}..$this->
b87a0 6e 61 6d 65 20 3d 20 24 6e 61 6d 65 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 20 3d 20 name.=.$name;.$this->shortcut.=.
b87c0 24 73 68 6f 72 74 63 75 74 3b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a $shortcut;.$this->mode.=.$mode;.
b87e0 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 6f $this->description.=.$descriptio
b8800 6e 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 73 41 72 72 61 79 28 29 20 26 26 20 21 24 74 68 n;..if.($this->isArray().&&.!$th
b8820 69 73 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c is->acceptValue()).{.throw.new.\
b8840 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 49 6d 70 6f 73 73 InvalidArgumentException('Imposs
b8860 69 62 6c 65 20 74 6f 20 68 61 76 65 20 61 6e 20 6f 70 74 69 6f 6e 20 6d 6f 64 65 20 56 41 4c 55 ible.to.have.an.option.mode.VALU
b8880 45 5f 49 53 5f 41 52 52 41 59 20 69 66 20 74 68 65 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e 6f E_IS_ARRAY.if.the.option.does.no
b88a0 74 20 61 63 63 65 70 74 20 61 20 76 61 6c 75 65 2e 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 t.accept.a.value.');.}..$this->s
b88c0 65 74 44 65 66 61 75 6c 74 28 24 64 65 66 61 75 6c 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 etDefault($default);.}.......pub
b88e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 68 6f 72 74 63 75 74 28 29 0a 7b 0a 72 65 74 lic.function.getShortcut().{.ret
b8900 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 urn.$this->shortcut;.}.......pub
b8920 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 20 lic.function.getName().{.return.
b8940 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 63 $this->name;.}.......public.func
b8960 74 69 6f 6e 20 61 63 63 65 70 74 56 61 6c 75 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 tion.acceptValue().{.return.$thi
b8980 73 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 20 7c 7c 20 24 74 68 69 73 2d 3e 69 s->isValueRequired().||.$this->i
b89a0 73 56 61 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 sValueOptional();.}.......public
b89c0 20 66 75 6e 63 74 69 6f 6e 20 69 73 56 61 6c 75 65 52 65 71 75 69 72 65 64 28 29 0a 7b 0a 72 65 .function.isValueRequired().{.re
b89e0 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 3d 3d 3d 20 28 73 turn.self::VALUE_REQUIRED.===.(s
b8a00 65 6c 66 3a 3a 56 41 4c 55 45 5f 52 45 51 55 49 52 45 44 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 elf::VALUE_REQUIRED.&.$this->mod
b8a20 65 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 69 73 56 61 e);.}.......public.function.isVa
b8a40 6c 75 65 4f 70 74 69 6f 6e 61 6c 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 41 4c lueOptional().{.return.self::VAL
b8a60 55 45 5f 4f 50 54 49 4f 4e 41 4c 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4f 50 54 UE_OPTIONAL.===.(self::VALUE_OPT
b8a80 49 4f 4e 41 4c 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 IONAL.&.$this->mode);.}.......pu
b8aa0 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 72 65 74 75 72 6e blic.function.isArray().{.return
b8ac0 20 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 49 53 5f 41 52 52 41 59 20 3d 3d 3d 20 28 73 65 6c 66 3a .self::VALUE_IS_ARRAY.===.(self:
b8ae0 3a 56 41 4c 55 45 5f 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 :VALUE_IS_ARRAY.&.$this->mode);.
b8b00 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 65 66 }.........public.function.setDef
b8b20 61 75 6c 74 28 24 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 ault($default.=.null).{.if.(self
b8b40 3a 3a 56 41 4c 55 45 5f 4e 4f 4e 45 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 56 41 4c 55 45 5f 4e 4f ::VALUE_NONE.===.(self::VALUE_NO
b8b60 4e 45 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 64 NE.&.$this->mode).&&.null.!==.$d
b8b80 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 65 70 74 efault).{.throw.new.\LogicExcept
b8ba0 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 75 65 20 ion('Cannot.set.a.default.value.
b8bc0 77 68 65 6e 20 75 73 69 6e 67 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 3a 56 41 4c 55 45 5f 4e 4f when.using.InputOption::VALUE_NO
b8be0 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 41 72 72 61 NE.mode.');.}..if.($this->isArra
b8c00 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 29 20 7b 0a y()).{.if.(null.===.$default).{.
b8c20 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 20 28 21 69 $default.=.array();.}.elseif.(!i
b8c40 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 65 77 20 5c s_array($default)).{.throw.new.\
b8c60 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 6c 75 65 20 LogicException('A.default.value.
b8c80 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 61 6e 20 61 for.an.array.option.must.be.an.a
b8ca0 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 24 rray.');.}.}..$this->default.=.$
b8cc0 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 6c 74 20 3a this->acceptValue().?.$default.:
b8ce0 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 69 6f 6e 20 .false;.}.......public.function.
b8d00 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 65 66 getDefault().{.return.$this->def
b8d20 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 67 65 ault;.}.......public.function.ge
b8d40 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 64 tDescription().{.return.$this->d
b8d60 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 66 75 6e 63 escription;.}........public.func
b8d80 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 69 6f 6e 29 tion.equals(InputOption.$option)
b8da0 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 20 3d 3d 3d .{.return.$option->getName().===
b8dc0 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 2d 3e 67 65 .$this->getName().&&.$option->ge
b8de0 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 6f 72 74 63 tShortcut().===.$this->getShortc
b8e00 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 29 20 3d 3d ut().&&.$option->getDefault().==
b8e20 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 74 69 6f 6e =.$this->getDefault().&&.$option
b8e40 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 61 79 28 29 ->isArray().===.$this->isArray()
b8e60 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 28 29 20 3d .&&.$option->isValueRequired().=
b8e80 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 26 26 20 24 ==.$this->isValueRequired().&&.$
b8ea0 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 3d 20 24 74 option->isValueOptional().===.$t
b8ec0 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 0a 3c 3f 70 his->isValueOptional().;.}.}.<?p
b8ee0 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
b8f00 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 0a 0a 0a 0a omponent\Console\Input;.........
b8f20 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 67 76 49 6e ....................class.ArgvIn
b8f40 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 24 74 6f 6b put.extends.Input.{.private.$tok
b8f60 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 0a 0a 0a 70 ens;.private.$parsed;..........p
b8f80 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 79 ublic.function.__construct(array
b8fa0 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 6f 6e 20 24 .$argv.=.null,.InputDefinition.$
b8fc0 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 6c 20 3d 3d definition.=.null).{.if.(null.==
b8fe0 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 27 61 72 67 =.$argv).{.$argv.=.$_SERVER['arg
b9000 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 3b 0a 0a 24 v'];.}....array_shift($argv);..$
b9020 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 74 3a 3a 5f this->tokens.=.$argv;..parent::_
b9040 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 70 72 6f 74 _construct($definition);.}..prot
b9060 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 61 79 20 24 ected.function.setTokens(array.$
b9080 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 6f 6b 65 6e tokens).{.$this->tokens.=.$token
b90a0 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 70 61 72 73 s;.}.....protected.function.pars
b90c0 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 24 74 68 69 e().{.$parseOptions.=.true;.$thi
b90e0 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 68 69 6c 65 s->parsed.=.$this->tokens;.while
b9100 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 69 66 74 28 .(null.!==.$token.=.array_shift(
b9120 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 4f 70 74 69 $this->parsed)).{.if.($parseOpti
b9140 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 2d 3e 70 61 ons.&&.''.==.$token).{.$this->pa
b9160 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 66 20 28 24 rseArgument($token);.}.elseif.($
b9180 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 65 6e 29 20 parseOptions.&&.'--'.==.$token).
b91a0 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 6c 73 65 69 {.$parseOptions.=.false;.}.elsei
b91c0 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 72 70 6f 73 f.($parseOptions.&&.0.===.strpos
b91e0 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 73 65 4c 6f ($token,.'--')).{.$this->parseLo
b9200 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 24 70 61 72 ngOption($token);.}.elseif.($par
b9220 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 30 5d 20 26 seOptions.&&.'-'.===.$token[0].&
b9240 26 20 27 2d 27 20 21 3d 3d 20 24 74 6f 6b 65 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 &.'-'.!==.$token).{.$this->parse
b9260 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 ShortOption($token);.}.else.{.$t
b9280 68 69 73 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 0a 7d 0a his->parseArgument($token);.}.}.
b92a0 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 70 61 72 73 65 53 68 }.......private.function.parseSh
b92c0 6f 72 74 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 73 ortOption($token).{.$name.=.subs
b92e0 74 72 28 24 74 6f 6b 65 6e 2c 20 31 29 3b 0a 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6e 61 6d 65 tr($token,.1);..if.(strlen($name
b9300 29 20 3e 20 31 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e ).>.1).{.if.($this->definition->
b9320 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 30 5d 29 20 26 26 20 24 74 68 69 73 2d 3e hasShortcut($name[0]).&&.$this->
b9340 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 definition->getOptionForShortcut
b9360 28 24 6e 61 6d 65 5b 30 5d 29 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 0a 20 24 ($name[0])->acceptValue()).{...$
b9380 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 5b 30 5d 2c 20 73 this->addShortOption($name[0],.s
b93a0 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 31 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 ubstr($name,.1));.}.else.{.$this
b93c0 2d 3e 70 61 72 73 65 53 68 6f 72 74 4f 70 74 69 6f 6e 53 65 74 28 24 6e 61 6d 65 29 3b 0a 7d 0a ->parseShortOptionSet($name);.}.
b93e0 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 }.else.{.$this->addShortOption($
b9400 6e 61 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 name,.null);.}.}.........private
b9420 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 53 65 74 28 24 6e .function.parseShortOptionSet($n
b9440 61 6d 65 29 0a 7b 0a 24 6c 65 6e 20 3d 20 73 74 72 6c 65 6e 28 24 6e 61 6d 65 29 3b 0a 66 6f 72 ame).{.$len.=.strlen($name);.for
b9460 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 6c 65 6e 3b 20 24 69 2b 2b 29 20 7b 0a 69 66 20 .($i.=.0;.$i.<.$len;.$i++).{.if.
b9480 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 63 75 74 (!$this->definition->hasShortcut
b94a0 28 24 6e 61 6d 65 5b 24 69 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d ($name[$i])).{.throw.new.\Runtim
b94c0 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 25 73 22 20 6f 70 eException(sprintf('The."-%s".op
b94e0 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 5b 24 69 5d tion.does.not.exist.',.$name[$i]
b9500 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
b9520 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 6e 61 6d 65 5b 24 on->getOptionForShortcut($name[$
b9540 69 5d 29 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 i]);.if.($option->acceptValue())
b9560 20 7b 0a 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 .{.$this->addLongOption($option-
b9580 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 69 20 3d 3d 3d 20 24 6c 65 6e 20 2d 20 31 20 3f 20 6e 75 >getName(),.$i.===.$len.-.1.?.nu
b95a0 6c 6c 20 3a 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 24 69 20 2b 20 31 29 29 3b 0a 0a 62 72 ll.:.substr($name,.$i.+.1));..br
b95c0 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 eak;.}.else.{.$this->addLongOpti
b95e0 6f 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a on($option->getName(),.null);.}.
b9600 7d 0a 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 70 61 72 73 65 }.}.......private.function.parse
b9620 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 6f 6b 65 6e 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 73 75 62 LongOption($token).{.$name.=.sub
b9640 73 74 72 28 24 74 6f 6b 65 6e 2c 20 32 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 str($token,.2);..if.(false.!==.$
b9660 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 6e 61 6d 65 2c 20 27 3d 27 29 29 20 7b 0a 24 74 68 69 pos.=.strpos($name,.'=')).{.$thi
b9680 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 30 s->addLongOption(substr($name,.0
b96a0 2c 20 24 70 6f 73 29 2c 20 73 75 62 73 74 72 28 24 6e 61 6d 65 2c 20 24 70 6f 73 20 2b 20 31 29 ,.$pos),.substr($name,.$pos.+.1)
b96c0 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e );.}.else.{.$this->addLongOption
b96e0 28 24 6e 61 6d 65 2c 20 6e 75 6c 6c 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 ($name,.null);.}.}.........priva
b9700 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 41 72 67 75 6d 65 6e 74 28 24 74 6f 6b 65 6e te.function.parseArgument($token
b9720 29 0a 7b 0a 24 63 20 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 ).{.$c.=.count($this->arguments)
b9740 3b 0a 0a 0a 20 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 ;....if.($this->definition->hasA
b9760 72 67 75 6d 65 6e 74 28 24 63 29 29 20 7b 0a 24 61 72 67 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 rgument($c)).{.$arg.=.$this->def
b9780 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 63 29 3b 0a 24 74 68 69 73 2d inition->getArgument($c);.$this-
b97a0 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 >arguments[$arg->getName()].=.$a
b97c0 72 67 2d 3e 69 73 41 72 72 61 79 28 29 3f 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 29 20 3a 20 24 rg->isArray()?.array($token).:.$
b97e0 74 6f 6b 65 6e 3b 0a 0a 0a 20 7d 20 65 6c 73 65 69 66 20 28 24 74 68 69 73 2d 3e 64 65 66 69 6e token;....}.elseif.($this->defin
b9800 69 74 69 6f 6e 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 20 26 26 20 24 74 ition->hasArgument($c.-.1).&&.$t
b9820 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 28 24 63 20 his->definition->getArgument($c.
b9840 2d 20 31 29 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 61 72 67 20 3d 20 24 74 68 69 73 2d -.1)->isArray()).{.$arg.=.$this-
b9860 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 28 24 63 20 2d 20 31 29 >definition->getArgument($c.-.1)
b9880 3b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 2d 3e 67 65 74 4e 61 6d 65 ;.$this->arguments[$arg->getName
b98a0 28 29 5d 5b 5d 20 3d 20 24 74 6f 6b 65 6e 3b 0a 0a 0a 20 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f ()][].=.$token;....}.else.{.thro
b98c0 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 54 6f 6f 20 6d 61 6e w.new.\RuntimeException('Too.man
b98e0 79 20 61 72 67 75 6d 65 6e 74 73 2e 27 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 y.arguments.');.}.}..........pri
b9900 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 vate.function.addShortOption($sh
b9920 6f 72 74 63 75 74 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 ortcut,.$value).{.if.(!$this->de
b9940 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 finition->hasShortcut($shortcut)
b9960 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(
b9980 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e sprintf('The."-%s".option.does.n
b99a0 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 24 74 68 69 ot.exist.',.$shortcut));.}..$thi
b99c0 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 s->addLongOption($this->definiti
b99e0 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 on->getOptionForShortcut($shortc
b9a00 75 74 29 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a ut)->getName(),.$value);.}......
b9a20 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 4c 6f 6e 67 4f 70 74 69 ....private.function.addLongOpti
b9a40 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e on($name,.$value).{.if.(!$this->
b9a60 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 20 7b 0a definition->hasOption($name)).{.
b9a80 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 69 throw.new.\RuntimeException(spri
b9aa0 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.
b9ac0 65 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 exist.',.$name));.}..$option.=.$
b9ae0 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 28 24 6e 61 6d this->definition->getOption($nam
b9b00 65 29 3b 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 24 e);....if.(false.===.$value).{.$
b9b20 76 61 6c 75 65 20 3d 20 6e 75 6c 6c 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 76 value.=.null;.}..if.(null.!==.$v
b9b40 61 6c 75 65 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 29 alue.&&.!$option->acceptValue())
b9b60 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 73 .{.throw.new.\RuntimeException(s
b9b80 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 20 6e printf('The."--%s".option.does.n
b9ba0 6f 74 20 61 63 63 65 70 74 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 2c 20 24 76 61 6c ot.accept.a.value.',.$name,.$val
b9bc0 75 65 29 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 76 61 6c 75 65 20 26 26 20 ue));.}..if.(null.===.$value.&&.
b9be0 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 26 26 20 63 6f 75 6e 74 28 $option->acceptValue().&&.count(
b9c00 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 29 20 7b 0a 0a 20 0a 20 24 6e 65 78 74 20 3d 20 61 72 $this->parsed)).{.....$next.=.ar
b9c20 72 61 79 5f 73 68 69 66 74 28 24 74 68 69 73 2d 3e 70 61 72 73 65 64 29 3b 0a 69 66 20 28 69 73 ray_shift($this->parsed);.if.(is
b9c40 73 65 74 28 24 6e 65 78 74 5b 30 5d 29 20 26 26 20 27 2d 27 20 21 3d 3d 20 24 6e 65 78 74 5b 30 set($next[0]).&&.'-'.!==.$next[0
b9c60 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 69 66 20 28 65 ]).{.$value.=.$next;.}.elseif.(e
b9c80 6d 70 74 79 28 24 6e 65 78 74 29 29 20 7b 0a 24 76 61 6c 75 65 20 3d 20 27 27 3b 0a 7d 20 65 6c mpty($next)).{.$value.=.'';.}.el
b9ca0 73 65 20 7b 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 se.{.array_unshift($this->parsed
b9cc0 2c 20 24 6e 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 ,.$next);.}.}..if.(null.===.$val
b9ce0 75 65 29 20 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 72 ue).{.if.($option->isValueRequir
b9d00 65 64 28 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 ed()).{.throw.new.\RuntimeExcept
b9d20 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f 6e 20 72 ion(sprintf('The."--%s".option.r
b9d40 65 71 75 69 72 65 73 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 69 equires.a.value.',.$name));.}..i
b9d60 66 20 28 21 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 76 61 6c 75 65 f.(!$option->isArray()).{.$value
b9d80 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 20 .=.$option->isValueOptional().?.
b9da0 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 0a $option->getDefault().:.true;.}.
b9dc0 7d 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 }..if.($option->isArray()).{.$th
b9de0 69 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 is->options[$name][].=.$value;.}
b9e00 20 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 .else.{.$this->options[$name].=.
b9e20 24 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 $value;.}.}.......public.functio
b9e40 6e 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 n.getFirstArgument().{.foreach.(
b9e60 24 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 $this->tokens.as.$token).{.if.($
b9e80 74 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 token.&&.'-'.===.$token[0]).{.co
b9ea0 6e 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 ntinue;.}..return.$token;.}.}...
b9ec0 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 50 61 72 61 .........public.function.hasPara
b9ee0 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d meterOption($values).{.$values.=
b9f00 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 .(array).$values;..foreach.($thi
b9f20 73 2d 3e 74 6f 6b 65 6e 73 20 61 73 20 24 74 6f 6b 65 6e 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 s->tokens.as.$token).{.foreach.(
b9f40 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 24 74 6f 6b 65 6e 20 $values.as.$value).{.if.($token.
b9f60 3d 3d 3d 20 24 76 61 6c 75 65 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 74 6f 6b 65 ===.$value.||.0.===.strpos($toke
b9f80 6e 2c 20 24 76 61 6c 75 65 2e 27 3d 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d n,.$value.'=')).{.return.true;.}
b9fa0 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 0a 0a .}.}..return.false;.}...........
b9fc0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 65 72 4f 70 ..public.function.getParameterOp
b9fe0 74 69 6f 6e 28 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c 73 65 29 0a tion($values,.$default.=.false).
ba000 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b 0a 0a 24 74 {.$values.=.(array).$values;..$t
ba020 6f 6b 65 6e 73 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 okens.=.$this->tokens;.while.($t
ba040 6f 6b 65 6e 20 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 oken.=.array_shift($tokens)).{.f
ba060 6f 72 65 61 63 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 oreach.($values.as.$value).{.if.
ba080 28 24 74 6f 6b 65 6e 20 3d 3d 3d 20 24 76 61 6c 75 65 20 7c 7c 20 30 20 3d 3d 3d 20 73 74 72 70 ($token.===.$value.||.0.===.strp
ba0a0 6f 73 28 24 74 6f 6b 65 6e 2c 20 24 76 61 6c 75 65 2e 27 3d 27 29 29 20 7b 0a 69 66 20 28 66 61 os($token,.$value.'=')).{.if.(fa
ba0c0 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 27 3d lse.!==.$pos.=.strpos($token,.'=
ba0e0 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 6f 73 ')).{.return.substr($token,.$pos
ba100 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 74 6f .+.1);.}..return.array_shift($to
ba120 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 0a 7d kens);.}.}.}..return.$default;.}
ba140 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e .......public.function.__toStrin
ba160 67 28 29 0a 7b 0a 24 73 65 6c 66 20 3d 20 24 74 68 69 73 3b 0a 24 74 6f 6b 65 6e 73 20 3d 20 61 g().{.$self.=.$this;.$tokens.=.a
ba180 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 74 6f 6b 65 6e 29 20 75 73 65 20 28 rray_map(function.($token).use.(
ba1a0 24 73 65 6c 66 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 5e 28 2d 5b 5e 3d $self).{.if.(preg_match('{^(-[^=
ba1c0 5d 2b 3d 29 28 2e 2b 29 7d 27 2c 20 24 74 6f 6b 65 6e 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 72 ]+=)(.+)}',.$token,.$match)).{.r
ba1e0 65 74 75 72 6e 20 24 6d 61 74 63 68 5b 31 5d 20 2e 20 24 73 65 6c 66 2d 3e 65 73 63 61 70 65 54 eturn.$match[1]...$self->escapeT
ba200 6f 6b 65 6e 28 24 6d 61 74 63 68 5b 32 5d 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 6f 6b 65 6e 20 26 oken($match[2]);.}..if.($token.&
ba220 26 20 24 74 6f 6b 65 6e 5b 30 5d 20 21 3d 3d 20 27 2d 27 29 20 7b 0a 72 65 74 75 72 6e 20 24 73 &.$token[0].!==.'-').{.return.$s
ba240 65 6c 66 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 74 6f 6b 65 6e 29 3b 0a 7d 0a 0a 72 65 74 elf->escapeToken($token);.}..ret
ba260 75 72 6e 20 24 74 6f 6b 65 6e 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 74 6f 6b 65 6e 73 29 3b 0a 0a urn.$token;.},.$this->tokens);..
ba280 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 74 6f 6b 65 6e 73 29 3b 0a 7d 0a return.implode('.',.$tokens);.}.
ba2a0 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
ba2c0 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 0a 0a 0a ony\Component\Console\Input;....
ba2e0 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 0a 0a 0a ...interface.InputInterface.{...
ba300 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
ba320 65 6e 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ent();............public.functio
ba340 6e 20 68 61 73 50 61 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 29 3b 0a 0a n.hasParameterOption($values);..
ba360 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 50 61 ...........public.function.getPa
ba380 72 61 6d 65 74 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 rameterOption($values,.$default.
ba3a0 3d 20 66 61 6c 73 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 =.false);.......public.function.
ba3c0 62 69 6e 64 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e bind(InputDefinition.$definition
ba3e0 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 );.........public.function.valid
ba400 61 74 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 ate();.......public.function.get
ba420 41 72 67 75 6d 65 6e 74 73 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 Arguments();.........public.func
ba440 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a tion.getArgument($name);........
ba460 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 28 24 6e ..public.function.setArgument($n
ba480 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ame,.$value);.........public.fun
ba4a0 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a ction.hasArgument($name);.......
ba4c0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 3b 0a 0a 0a public.function.getOptions();...
ba4e0 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 28 ......public.function.getOption(
ba500 24 6e 61 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e $name);..........public.function
ba520 20 73 65 74 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 3b 0a 0a 0a 0a 0a 0a .setOption($name,.$value);......
ba540 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 ...public.function.hasOption($na
ba560 6d 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 49 6e 74 me);.......public.function.isInt
ba580 65 72 61 63 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f eractive();.......public.functio
ba5a0 6e 20 73 65 74 49 6e 74 65 72 61 63 74 69 76 65 28 24 69 6e 74 65 72 61 63 74 69 76 65 29 3b 0a n.setInteractive($interactive);.
ba5c0 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
ba5e0 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 0a 0a 0a ony\Component\Console\Input;....
ba600 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 72 72 61 79 49 6e 70 75 74 20 65 78 74 65 6e 64 .........class.ArrayInput.extend
ba620 73 20 49 6e 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a s.Input.{.private.$parameters;..
ba640 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
ba660 75 63 74 28 61 72 72 61 79 20 24 70 61 72 61 6d 65 74 65 72 73 2c 20 49 6e 70 75 74 44 65 66 69 uct(array.$parameters,.InputDefi
ba680 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 24 74 68 nition.$definition.=.null).{.$th
ba6a0 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 3d 20 24 70 61 72 61 6d 65 74 65 72 73 3b 0a 0a 70 is->parameters.=.$parameters;..p
ba6c0 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 3b arent::__construct($definition);
ba6e0 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 69 72 73 .}.......public.function.getFirs
ba700 74 41 72 67 75 6d 65 6e 74 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 tArgument().{.foreach.($this->pa
ba720 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 rameters.as.$key.=>.$value).{.if
ba740 20 28 24 6b 65 79 20 26 26 20 27 2d 27 20 3d 3d 3d 20 24 6b 65 79 5b 30 5d 29 20 7b 0a 63 6f 6e .($key.&&.'-'.===.$key[0]).{.con
ba760 74 69 6e 75 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 0a 0a 0a tinue;.}..return.$value;.}.}....
ba780 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
ba7a0 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.=.
ba7c0 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
ba7e0 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 ->parameters.as.$k.=>.$v).{.if.(
ba800 21 69 73 5f 69 6e 74 28 24 6b 29 29 20 7b 0a 24 76 20 3d 20 24 6b 3b 0a 7d 0a 0a 69 66 20 28 69 !is_int($k)).{.$v.=.$k;.}..if.(i
ba820 6e 5f 61 72 72 61 79 28 24 76 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 n_array($v,.$values)).{.return.t
ba840 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a rue;.}.}..return.false;.}.......
ba860 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 72 61 6d 65 74 ......public.function.getParamet
ba880 65 72 4f 70 74 69 6f 6e 28 24 76 61 6c 75 65 73 2c 20 24 64 65 66 61 75 6c 74 20 3d 20 66 61 6c erOption($values,.$default.=.fal
ba8a0 73 65 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 76 61 6c 75 65 73 3b se).{.$values.=.(array).$values;
ba8c0 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 ..foreach.($this->parameters.as.
ba8e0 24 6b 20 3d 3e 20 24 76 29 20 7b 0a 69 66 20 28 69 73 5f 69 6e 74 28 24 6b 29 20 26 26 20 69 6e $k.=>.$v).{.if.(is_int($k).&&.in
ba900 5f 61 72 72 61 79 28 24 76 2c 20 24 76 61 6c 75 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 _array($v,.$values)).{.return.tr
ba920 75 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 69 6e 5f 61 72 72 61 79 28 24 6b 2c 20 24 76 61 6c 75 ue;.}.elseif.(in_array($k,.$valu
ba940 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 76 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 es)).{.return.$v;.}.}..return.$d
ba960 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.
ba980 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 24 70 61 72 61 6d 73 20 3d 20 61 72 72 61 79 28 29 __toString().{.$params.=.array()
ba9a0 3b 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 61 73 20 ;.foreach.($this->parameters.as.
ba9c0 24 70 61 72 61 6d 20 3d 3e 20 24 76 61 6c 29 20 7b 0a 69 66 20 28 24 70 61 72 61 6d 20 26 26 20 $param.=>.$val).{.if.($param.&&.
ba9e0 27 2d 27 20 3d 3d 3d 20 24 70 61 72 61 6d 5b 30 5d 29 20 7b 0a 24 70 61 72 61 6d 73 5b 5d 20 3d '-'.===.$param[0]).{.$params[].=
baa00 20 24 70 61 72 61 6d 20 2e 20 28 27 27 20 21 3d 20 24 76 61 6c 20 3f 20 27 3d 27 2e 24 74 68 69 .$param...(''.!=.$val.?.'='.$thi
baa20 73 2d 3e 65 73 63 61 70 65 54 6f 6b 65 6e 28 24 76 61 6c 29 20 3a 20 27 27 29 3b 0a 7d 20 65 6c s->escapeToken($val).:.'');.}.el
baa40 73 65 20 7b 0a 24 70 61 72 61 6d 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 65 73 63 61 70 65 54 6f se.{.$params[].=.$this->escapeTo
baa60 6b 65 6e 28 24 76 61 6c 29 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 ken($val);.}.}..return.implode('
baa80 20 27 2c 20 24 70 61 72 61 6d 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 .',.$params);.}.....protected.fu
baaa0 6e 63 74 69 6f 6e 20 70 61 72 73 65 28 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d nction.parse().{.foreach.($this-
baac0 3e 70 61 72 61 6d 65 74 65 72 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b >parameters.as.$key.=>.$value).{
baae0 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 6b 65 79 2c 20 27 2d 2d 27 29 29 20 7b .if.(0.===.strpos($key,.'--')).{
bab00 0a 24 74 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 73 75 62 73 74 72 28 24 6b 65 .$this->addLongOption(substr($ke
bab20 79 2c 20 32 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2d 27 20 3d 3d y,.2),.$value);.}.elseif.('-'.==
bab40 3d 20 24 6b 65 79 5b 30 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 53 68 6f 72 74 4f 70 74 69 =.$key[0]).{.$this->addShortOpti
bab60 6f 6e 28 73 75 62 73 74 72 28 24 6b 65 79 2c 20 31 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 20 65 on(substr($key,.1),.$value);.}.e
bab80 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6b 65 79 2c 20 24 lse.{.$this->addArgument($key,.$
baba0 76 61 6c 75 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 value);.}.}.}..........private.f
babc0 75 6e 63 74 69 6f 6e 20 61 64 64 53 68 6f 72 74 4f 70 74 69 6f 6e 28 24 73 68 6f 72 74 63 75 74 unction.addShortOption($shortcut
babe0 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 69 6e 69 74 69 ,.$value).{.if.(!$this->definiti
bac00 6f 6e 2d 3e 68 61 73 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 74 63 75 74 29 29 20 7b 0a 74 68 on->hasShortcut($shortcut)).{.th
bac20 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
bac40 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 25 73 22 20 6f 70 74 69 6f 6e 20 64 6f 65 73 n(sprintf('The."-%s".option.does
bac60 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 24 74 .not.exist.',.$shortcut));.}..$t
bac80 68 69 73 2d 3e 61 64 64 4c 6f 6e 67 4f 70 74 69 6f 6e 28 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 his->addLongOption($this->defini
baca0 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f 72 tion->getOptionForShortcut($shor
bacc0 74 63 75 74 29 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 0a 0a tcut)->getName(),.$value);.}....
bace0 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 4c 6f 6e 67 4f .......private.function.addLongO
bad00 70 74 69 6f 6e 28 24 6e 61 6d 65 2c 20 24 76 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 ption($name,.$value).{.if.(!$thi
bad20 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 29 s->definition->hasOption($name))
bad40 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
bad60 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 22 2d 2d 25 73 22 20 6f 70 74 69 6f eption(sprintf('The."--%s".optio
bad80 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 29 29 3b 0a 7d 0a 0a n.does.not.exist.',.$name));.}..
bada0 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 6f 6e 2d 3e 67 65 74 $option.=.$this->definition->get
badc0 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 3d 3d 3d 20 24 76 61 Option($name);..if.(null.===.$va
bade0 6c 75 65 29 20 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 65 52 65 71 75 69 lue).{.if.($option->isValueRequi
bae00 72 65 64 28 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d red()).{.throw.new.\InvalidArgum
bae20 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 2d 2d 25 73 22 entException(sprintf('The."--%s"
bae40 20 6f 70 74 69 6f 6e 20 72 65 71 75 69 72 65 73 20 61 20 76 61 6c 75 65 2e 27 2c 20 24 6e 61 6d .option.requires.a.value.',.$nam
bae60 65 29 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 e));.}..$value.=.$option->isValu
bae80 65 4f 70 74 69 6f 6e 61 6c 28 29 20 3f 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c eOptional().?.$option->getDefaul
baea0 74 28 29 20 3a 20 74 72 75 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e t().:.true;.}..$this->options[$n
baec0 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 ame].=.$value;.}..........privat
baee0 65 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 2c 20 24 76 e.function.addArgument($name,.$v
baf00 61 6c 75 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 64 65 66 69 6e 69 74 69 6f 6e 2d 3e alue).{.if.(!$this->definition->
baf20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 hasArgument($name)).{.throw.new.
baf40 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 \InvalidArgumentException(sprint
baf60 66 28 27 54 68 65 20 22 25 73 22 20 61 72 67 75 6d 65 6e 74 20 64 6f 65 73 20 6e 6f 74 20 65 78 f('The."%s".argument.does.not.ex
baf80 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 61 72 67 75 6d 65 ist.',.$name));.}..$this->argume
bafa0 6e 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a nts[$name].=.$value;.}.}.<?php..
bafc0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
bafe0 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 69 6e 74 65 72 nent\Console\Input;........inter
bb000 66 61 63 65 20 49 6e 70 75 74 41 77 61 72 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a face.InputAwareInterface.{......
bb020 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 49 6e 70 75 74 49 6e public.function.setInput(InputIn
bb040 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a terface.$input);.}.<?php........
bb060 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
bb080 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 3b 0a 0a 69 66 20 28 21 64 65 66 69 6e 65 64 28 27 4a 53 4f onsole\Input;..if.(!defined('JSO
bb0a0 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 27 29 29 20 7b 0a 64 65 66 69 6e 65 28 N_UNESCAPED_UNICODE')).{.define(
bb0c0 27 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 27 2c 20 36 34 29 3b 0a 64 'JSON_UNESCAPED_SLASHES',.64);.d
bb0e0 65 66 69 6e 65 28 27 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 27 2c 20 efine('JSON_UNESCAPED_UNICODE',.
bb100 32 35 36 29 3b 0a 7d 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 256);.}..use.Symfony\Component\C
bb120 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 onsole\Descriptor\TextDescriptor
bb140 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\
bb160 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 Descriptor\XmlDescriptor;.use.Sy
bb180 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 42 mfony\Component\Console\Output\B
bb1a0 75 66 66 65 72 65 64 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c ufferedOutput;................cl
bb1c0 61 73 73 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 ass.InputDefinition.{.private.$a
bb1e0 72 67 75 6d 65 6e 74 73 3b 0a 70 72 69 76 61 74 65 20 24 72 65 71 75 69 72 65 64 43 6f 75 6e 74 rguments;.private.$requiredCount
bb200 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 ;.private.$hasAnArrayArgument.=.
bb220 66 61 6c 73 65 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 4f 70 74 69 6f 6e 61 6c 3b 0a 70 72 69 false;.private.$hasOptional;.pri
bb240 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 70 72 69 76 61 74 65 20 24 73 68 6f 72 74 63 75 74 vate.$options;.private.$shortcut
bb260 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e s;.........public.function.__con
bb280 73 74 72 75 63 74 28 61 72 72 61 79 20 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 61 72 72 61 79 struct(array.$definition.=.array
bb2a0 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 66 69 ()).{.$this->setDefinition($defi
bb2c0 6e 69 74 69 6f 6e 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 nition);.}.........public.functi
bb2e0 6f 6e 20 73 65 74 44 65 66 69 6e 69 74 69 6f 6e 28 61 72 72 61 79 20 24 64 65 66 69 6e 69 74 69 on.setDefinition(array.$definiti
bb300 6f 6e 29 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 6f 70 74 on).{.$arguments.=.array();.$opt
bb320 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 ions.=.array();.foreach.($defini
bb340 74 69 6f 6e 20 61 73 20 24 69 74 65 6d 29 20 7b 0a 69 66 20 28 24 69 74 65 6d 20 69 6e 73 74 61 tion.as.$item).{.if.($item.insta
bb360 6e 63 65 6f 66 20 49 6e 70 75 74 4f 70 74 69 6f 6e 29 20 7b 0a 24 6f 70 74 69 6f 6e 73 5b 5d 20 nceof.InputOption).{.$options[].
bb380 3d 20 24 69 74 65 6d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 61 72 67 75 6d 65 6e 74 73 5b 5d 20 3d =.$item;.}.else.{.$arguments[].=
bb3a0 20 24 69 74 65 6d 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 65 74 41 72 67 75 6d 65 6e 74 73 .$item;.}.}..$this->setArguments
bb3c0 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 24 74 68 69 73 2d 3e 73 65 74 4f 70 74 69 6f 6e 73 28 ($arguments);.$this->setOptions(
bb3e0 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $options);.}.........public.func
bb400 74 69 6f 6e 20 73 65 74 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 tion.setArguments($arguments.=.a
bb420 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 rray()).{.$this->arguments.=.arr
bb440 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 20 3d 20 30 3b 0a ay();.$this->requiredCount.=.0;.
bb460 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 $this->hasOptional.=.false;.$thi
bb480 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 66 61 6c 73 65 3b 0a 24 s->hasAnArrayArgument.=.false;.$
bb4a0 74 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a this->addArguments($arguments);.
bb4c0 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 72 67 }.........public.function.addArg
bb4e0 75 6d 65 6e 74 73 28 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 uments($arguments.=.array()).{.i
bb500 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 61 72 67 75 6d 65 6e 74 73 29 20 7b 0a 66 6f 72 65 61 63 f.(null.!==.$arguments).{.foreac
bb520 68 20 28 24 61 72 67 75 6d 65 6e 74 73 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 74 h.($arguments.as.$argument).{.$t
bb540 68 69 73 2d 3e 61 64 64 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a 7d his->addArgument($argument);.}.}
bb560 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 .}...........public.function.add
bb580 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 Argument(InputArgument.$argument
bb5a0 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 ).{.if.(isset($this->arguments[$
bb5c0 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e argument->getName()])).{.throw.n
bb5e0 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 61 ew.\LogicException(sprintf('An.a
bb600 72 67 75 6d 65 6e 74 20 77 69 74 68 20 6e 61 6d 65 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 rgument.with.name."%s".already.e
bb620 78 69 73 74 73 2e 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b xists.',.$argument->getName()));
bb640 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e .}..if.($this->hasAnArrayArgumen
bb660 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 t).{.throw.new.\LogicException('
bb680 43 61 6e 6e 6f 74 20 61 64 64 20 61 6e 20 61 72 67 75 6d 65 6e 74 20 61 66 74 65 72 20 61 6e 20 Cannot.add.an.argument.after.an.
bb6a0 61 72 72 61 79 20 61 72 67 75 6d 65 6e 74 2e 27 29 3b 0a 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d array.argument.');.}..if.($argum
bb6c0 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 26 26 20 24 74 68 69 73 2d 3e 68 61 73 4f ent->isRequired().&&.$this->hasO
bb6e0 70 74 69 6f 6e 61 6c 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 ptional).{.throw.new.\LogicExcep
bb700 74 69 6f 6e 28 27 43 61 6e 6e 6f 74 20 61 64 64 20 61 20 72 65 71 75 69 72 65 64 20 61 72 67 75 tion('Cannot.add.a.required.argu
bb720 6d 65 6e 74 20 61 66 74 65 72 20 61 6e 20 6f 70 74 69 6f 6e 61 6c 20 6f 6e 65 2e 27 29 3b 0a 7d ment.after.an.optional.one.');.}
bb740 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 29 20 7b 0a 24 74 ..if.($argument->isArray()).{.$t
bb760 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 67 75 6d 65 6e 74 20 3d 20 74 72 75 65 3b 0a his->hasAnArrayArgument.=.true;.
bb780 7d 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 29 20 }..if.($argument->isRequired()).
bb7a0 7b 0a 2b 2b 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 3b 0a 7d 20 65 6c 73 65 {.++$this->requiredCount;.}.else
bb7c0 20 7b 0a 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 61 6c 20 3d 20 74 72 75 65 3b 0a 7d 0a .{.$this->hasOptional.=.true;.}.
bb7e0 0a 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 5b 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 .$this->arguments[$argument->get
bb800 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a Name()].=.$argument;.}..........
bb820 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 28 24 ...public.function.getArgument($
bb840 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 41 72 67 75 6d 65 6e 74 28 name).{.if.(!$this->hasArgument(
bb860 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
bb880 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".
bb8a0 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
bb8c0 29 29 3b 0a 7d 0a 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 ));.}..$arguments.=.is_int($name
bb8e0 29 20 3f 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 ).?.array_values($this->argument
bb900 73 29 20 3a 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 24 s).:.$this->arguments;..return.$
bb920 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 arguments[$name];.}...........pu
bb940 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 41 72 67 75 6d 65 6e 74 28 24 6e 61 6d 65 29 blic.function.hasArgument($name)
bb960 0a 7b 0a 24 61 72 67 75 6d 65 6e 74 73 20 3d 20 69 73 5f 69 6e 74 28 24 6e 61 6d 65 29 20 3f 20 .{.$arguments.=.is_int($name).?.
bb980 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 20 3a array_values($this->arguments).:
bb9a0 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 0a 72 65 74 75 72 6e 20 69 73 73 65 74 .$this->arguments;..return.isset
bb9c0 28 24 61 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ($arguments[$name]);.}.........p
bb9e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 0a 7b 0a ublic.function.getArguments().{.
bba00 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 3b 0a 7d 0a 0a 0a 0a 0a 0a return.$this->arguments;.}......
bba20 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 43 6f 75 6e .public.function.getArgumentCoun
bba40 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 68 61 73 41 6e 41 72 72 61 79 41 72 t().{.return.$this->hasAnArrayAr
bba60 67 75 6d 65 6e 74 20 3f 20 50 48 50 5f 49 4e 54 5f 4d 41 58 20 3a 20 63 6f 75 6e 74 28 24 74 68 gument.?.PHP_INT_MAX.:.count($th
bba80 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 is->arguments);.}.......public.f
bbaa0 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 75 6d 65 6e 74 52 65 71 75 69 72 65 64 43 6f 75 6e 74 unction.getArgumentRequiredCount
bbac0 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 71 75 69 72 65 64 43 6f 75 6e 74 ().{.return.$this->requiredCount
bbae0 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 72 67 ;.}.......public.function.getArg
bbb00 75 6d 65 6e 74 44 65 66 61 75 6c 74 73 28 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 umentDefaults().{.$values.=.arra
bbb20 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 72 67 75 6d 65 6e 74 73 20 61 y();.foreach.($this->arguments.a
bbb40 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 76 61 6c 75 65 73 5b 24 61 72 67 75 6d 65 6e 74 s.$argument).{.$values[$argument
bbb60 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 ->getName()].=.$argument->getDef
bbb80 61 75 6c 74 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 73 3b 0a 7d 0a 0a 0a 0a ault();.}..return.$values;.}....
bbba0 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 73 28 .....public.function.setOptions(
bbbc0 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 $options.=.array()).{.$this->opt
bbbe0 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 ions.=.array();.$this->shortcuts
bbc00 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 70 74 69 6f 6e 73 28 24 6f .=.array();.$this->addOptions($o
bbc20 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ptions);.}.........public.functi
bbc40 6f 6e 20 61 64 64 4f 70 74 69 6f 6e 73 28 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 on.addOptions($options.=.array()
bbc60 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6f 70 74 69 6f 6e 73 20 61 73 20 24 6f 70 74 69 6f 6e ).{.foreach.($options.as.$option
bbc80 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 29 3b 0a 7d ).{.$this->addOption($option);.}
bbca0 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 .}...........public.function.add
bbcc0 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 Option(InputOption.$option).{.if
bbce0 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6f 70 74 69 6f 6e 2d 3e .(isset($this->options[$option->
bbd00 67 65 74 4e 61 6d 65 28 29 5d 29 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 65 71 75 61 6c 73 28 getName()]).&&.!$option->equals(
bbd20 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 28 $this->options[$option->getName(
bbd40 29 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 70 74 69 6f 6e )])).{.throw.new.\LogicException
bbd60 28 73 70 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 69 6f 6e 20 6e 61 6d 65 64 20 22 25 73 22 20 61 (sprintf('An.option.named."%s".a
bbd80 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d lready.exists.',.$option->getNam
bbda0 65 28 29 29 29 3b 0a 7d 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 e()));.}..if.($option->getShortc
bbdc0 75 74 28 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f ut()).{.foreach.(explode('|',.$o
bbde0 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 61 73 20 24 73 68 6f 72 74 63 ption->getShortcut()).as.$shortc
bbe00 75 74 29 20 7b 0a 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 ut).{.if.(isset($this->shortcuts
bbe20 5b 24 73 68 6f 72 74 63 75 74 5d 29 20 26 26 20 21 24 6f 70 74 69 6f 6e 2d 3e 65 71 75 61 6c 73 [$shortcut]).&&.!$option->equals
bbe40 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 ($this->options[$this->shortcuts
bbe60 5b 24 73 68 6f 72 74 63 75 74 5d 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 [$shortcut]])).{.throw.new.\Logi
bbe80 63 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 6e 20 6f 70 74 69 6f 6e 20 77 69 cException(sprintf('An.option.wi
bbea0 74 68 20 73 68 6f 72 74 63 75 74 20 22 25 73 22 20 61 6c 72 65 61 64 79 20 65 78 69 73 74 73 2e th.shortcut."%s".already.exists.
bbec0 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 70 ',.$shortcut));.}.}.}..$this->op
bbee0 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 6f 70 74 tions[$option->getName()].=.$opt
bbf00 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 28 29 29 ion;.if.($option->getShortcut())
bbf20 20 7b 0a 66 6f 72 65 61 63 68 20 28 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 6f 6e .{.foreach.(explode('|',.$option
bbf40 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 61 73 20 24 73 68 6f 72 74 63 75 74 29 20 7b ->getShortcut()).as.$shortcut).{
bbf60 0a 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 74 5d 20 3d 20 24 .$this->shortcuts[$shortcut].=.$
bbf80 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a option->getName();.}.}.}........
bbfa0 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 28 24 .....public.function.getOption($
bbfc0 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 24 6e name).{.if.(!$this->hasOption($n
bbfe0 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 65 ame)).{.throw.new.\InvalidArgume
bc000 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 2d 2d 25 73 22 20 ntException(sprintf('The."--%s".
bc020 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 29 29 option.does.not.exist.',.$name))
bc040 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 ;.}..return.$this->options[$name
bc060 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 ];.}...........public.function.h
bc080 61 73 4f 70 74 69 6f 6e 28 24 6e 61 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 asOption($name).{.return.isset($
bc0a0 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a this->options[$name]);.}........
bc0c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 73 28 29 0a 7b 0a .public.function.getOptions().{.
bc0e0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a return.$this->options;.}........
bc100 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 68 6f 72 74 63 75 74 28 24 6e 61 .public.function.hasShortcut($na
bc120 6d 65 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 me).{.return.isset($this->shortc
bc140 75 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 75 uts[$name]);.}.........public.fu
bc160 6e 63 74 69 6f 6e 20 67 65 74 4f 70 74 69 6f 6e 46 6f 72 53 68 6f 72 74 63 75 74 28 24 73 68 6f nction.getOptionForShortcut($sho
bc180 72 74 63 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 67 65 74 4f 70 74 69 6f 6e rtcut).{.return.$this->getOption
bc1a0 28 24 74 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 54 6f 4e 61 6d 65 28 24 73 68 6f 72 74 63 75 74 ($this->shortcutToName($shortcut
bc1c0 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 65 74 4f ));.}.......public.function.getO
bc1e0 70 74 69 6f 6e 44 65 66 61 75 6c 74 73 28 29 0a 7b 0a 24 76 61 6c 75 65 73 20 3d 20 61 72 72 61 ptionDefaults().{.$values.=.arra
bc200 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 61 73 20 y();.foreach.($this->options.as.
bc220 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 76 61 6c 75 65 73 5b 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e $option).{.$values[$option->getN
bc240 61 6d 65 28 29 5d 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 3b 0a ame()].=.$option->getDefault();.
bc260 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 0a 0a 70 }..return.$values;.}...........p
bc280 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 72 74 63 75 74 54 6f 4e 61 6d 65 28 24 rivate.function.shortcutToName($
bc2a0 73 68 6f 72 74 63 75 74 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 68 shortcut).{.if.(!isset($this->sh
bc2c0 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 ortcuts[$shortcut])).{.throw.new
bc2e0 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
bc300 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 65 78 tf('The."-%s".option.does.not.ex
bc320 69 73 74 2e 27 2c 20 24 73 68 6f 72 74 63 75 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 ist.',.$shortcut));.}..return.$t
bc340 68 69 73 2d 3e 73 68 6f 72 74 63 75 74 73 5b 24 73 68 6f 72 74 63 75 74 5d 3b 0a 7d 0a 0a 0a 0a his->shortcuts[$shortcut];.}....
bc360 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 79 6e 6f 70 73 69 73 28 29 ...public.function.getSynopsis()
bc380 0a 7b 0a 24 65 6c 65 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 .{.$elements.=.array();.foreach.
bc3a0 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 6f 6e 29 ($this->getOptions().as.$option)
bc3c0 20 7b 0a 24 73 68 6f 72 74 63 75 74 20 3d 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 .{.$shortcut.=.$option->getShort
bc3e0 63 75 74 28 29 20 3f 20 73 70 72 69 6e 74 66 28 27 2d 25 73 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d cut().?.sprintf('-%s|',.$option-
bc400 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 3a 20 27 27 3b 0a 24 65 6c 65 6d 65 6e 74 73 5b >getShortcut()).:.'';.$elements[
bc420 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 5b 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 56 61 6c 75 ].=.sprintf('['.($option->isValu
bc440 65 52 65 71 75 69 72 65 64 28 29 20 3f 20 27 25 73 2d 2d 25 73 3d 22 2e 2e 2e 22 27 20 3a 20 28 eRequired().?.'%s--%s="..."'.:.(
bc460 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 20 27 25 73 $option->isValueOptional().?.'%s
bc480 2d 2d 25 73 5b 3d 22 2e 2e 2e 22 5d 27 20 3a 20 27 25 73 2d 2d 25 73 27 29 29 2e 27 5d 27 2c 20 --%s[="..."]'.:.'%s--%s')).']',.
bc4a0 24 73 68 6f 72 74 63 75 74 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a $shortcut,.$option->getName());.
bc4c0 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 }..foreach.($this->getArguments(
bc4e0 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 ).as.$argument).{.$elements[].=.
bc500 73 70 72 69 6e 74 66 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 69 72 65 64 28 29 20 sprintf($argument->isRequired().
bc520 3f 20 27 25 73 27 20 3a 20 27 5b 25 73 5d 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e ?.'%s'.:.'[%s]',.$argument->getN
bc540 61 6d 65 28 29 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 31 ame().($argument->isArray().?.'1
bc560 27 20 3a 20 27 27 29 29 3b 0a 0a 69 66 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 '.:.''));..if.($argument->isArra
bc580 79 28 29 29 20 7b 0a 24 65 6c 65 6d 65 6e 74 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 27 2e 2e y()).{.$elements[].=.sprintf('..
bc5a0 2e 20 5b 25 73 4e 5d 27 2c 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b ..[%sN]',.$argument->getName());
bc5c0 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 69 6d 70 6c 6f 64 65 28 27 20 27 2c 20 24 65 6c 65 6d 65 .}.}..return.implode('.',.$eleme
bc5e0 6e 74 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 nts);.}.........public.function.
bc600 61 73 54 65 78 74 28 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 54 65 78 asText().{.$descriptor.=.new.Tex
bc620 74 44 65 73 63 72 69 70 74 6f 72 28 29 3b 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 42 75 66 tDescriptor();.$output.=.new.Buf
bc640 66 65 72 65 64 4f 75 74 70 75 74 28 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 3a 3a 56 45 52 42 feredOutput(BufferedOutput::VERB
bc660 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 74 72 75 65 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 OSITY_NORMAL,.true);.$descriptor
bc680 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 2c 20 61 72 72 61 79 ->describe($output,.$this,.array
bc6a0 28 27 72 61 77 5f 6f 75 74 70 75 74 27 20 3d 3e 20 74 72 75 65 29 29 3b 0a 0a 72 65 74 75 72 6e ('raw_output'.=>.true));..return
bc6c0 20 24 6f 75 74 70 75 74 2d 3e 66 65 74 63 68 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 .$output->fetch();.}...........p
bc6e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 58 6d 6c 28 24 61 73 44 6f 6d 20 3d 20 66 61 ublic.function.asXml($asDom.=.fa
bc700 6c 73 65 29 0a 7b 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 6e 65 77 20 58 6d 6c 44 65 73 63 lse).{.$descriptor.=.new.XmlDesc
bc720 72 69 70 74 6f 72 28 29 3b 0a 0a 69 66 20 28 24 61 73 44 6f 6d 29 20 7b 0a 72 65 74 75 72 6e 20 riptor();..if.($asDom).{.return.
bc740 24 64 65 73 63 72 69 70 74 6f 72 2d 3e 67 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 $descriptor->getInputDefinitionD
bc760 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 20 3d 20 6e 65 77 ocument($this);.}..$output.=.new
bc780 20 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 28 29 3b 0a 24 64 65 73 63 72 69 70 74 6f 72 2d 3e .BufferedOutput();.$descriptor->
bc7a0 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 74 68 69 73 29 3b 0a 0a 72 65 74 75 72 describe($output,.$this);..retur
bc7c0 6e 20 24 6f 75 74 70 75 74 2d 3e 66 65 74 63 68 28 29 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a n.$output->fetch();.}.}.<?php...
bc7e0 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
bc800 65 6e 74 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 ent\Console;..use.Symfony\Compon
bc820 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 53 74 72 69 6e 67 49 6e 70 75 74 3b 0a 75 ent\Console\Input\StringInput;.u
bc840 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 74 se.Symfony\Component\Console\Out
bc860 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 6d 66 6f 6e 79 5c 43 put\ConsoleOutput;.use.Symfony\C
bc880 6f 6d 70 6f 6e 65 6e 74 5c 50 72 6f 63 65 73 73 5c 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 3b omponent\Process\ProcessBuilder;
bc8a0 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
bc8c0 68 70 45 78 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c hpExecutableFinder;...........cl
bc8e0 61 73 73 20 53 68 65 6c 6c 0a 7b 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e ass.Shell.{.private.$application
bc900 3b 0a 70 72 69 76 61 74 65 20 24 68 69 73 74 6f 72 79 3b 0a 70 72 69 76 61 74 65 20 24 6f 75 74 ;.private.$history;.private.$out
bc920 70 75 74 3b 0a 70 72 69 76 61 74 65 20 24 68 61 73 52 65 61 64 6c 69 6e 65 3b 0a 70 72 69 76 61 put;.private.$hasReadline;.priva
bc940 74 65 20 24 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 3d 20 66 61 6c 73 65 3b 0a 0a 0a te.$processIsolation.=.false;...
bc960 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
bc980 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).{.$
bc9a0 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 20 3d 20 66 75 6e 63 74 69 6f 6e 5f 65 78 69 this->hasReadline.=.function_exi
bc9c0 73 74 73 28 27 72 65 61 64 6c 69 6e 65 27 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 sts('readline');.$this->applicat
bc9e0 69 6f 6e 20 3d 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 68 69 73 74 6f ion.=.$application;.$this->histo
bca00 72 79 20 3d 20 67 65 74 65 6e 76 28 27 48 4f 4d 45 27 29 2e 27 2f 2e 68 69 73 74 6f 72 79 5f 27 ry.=.getenv('HOME').'/.history_'
bca20 2e 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 3b 0a 24 74 68 69 73 2d .$application->getName();.$this-
bca40 3e 6f 75 74 70 75 74 20 3d 20 6e 65 77 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 28 29 3b 0a 7d >output.=.new.ConsoleOutput();.}
bca60 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 75 6e 28 29 0a 7b 0a 24 74 68 .....public.function.run().{.$th
bca80 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 73 65 74 41 75 74 6f 45 78 69 74 28 66 61 6c is->application->setAutoExit(fal
bcaa0 73 65 29 3b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 73 65 74 43 61 74 63 se);.$this->application->setCatc
bcac0 68 45 78 63 65 70 74 69 6f 6e 73 28 74 72 75 65 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 hExceptions(true);..if.($this->h
bcae0 61 73 52 65 61 64 6c 69 6e 65 29 20 7b 0a 72 65 61 64 6c 69 6e 65 5f 72 65 61 64 5f 68 69 73 74 asReadline).{.readline_read_hist
bcb00 6f 72 79 28 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 79 29 3b 0a 72 65 61 64 6c 69 6e 65 5f 63 6f ory($this->history);.readline_co
bcb20 6d 70 6c 65 74 69 6f 6e 5f 66 75 6e 63 74 69 6f 6e 28 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 mpletion_function(array($this,.'
bcb40 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 27 29 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 autocompleter'));.}..$this->outp
bcb60 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d 3e 67 65 74 48 65 61 64 65 72 28 29 29 3b ut->writeln($this->getHeader());
bcb80 0a 24 70 68 70 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 .$php.=.null;.if.($this->process
bcba0 49 73 6f 6c 61 74 69 6f 6e 29 20 7b 0a 24 66 69 6e 64 65 72 20 3d 20 6e 65 77 20 50 68 70 45 78 Isolation).{.$finder.=.new.PhpEx
bcbc0 65 63 75 74 61 62 6c 65 46 69 6e 64 65 72 28 29 3b 0a 24 70 68 70 20 3d 20 24 66 69 6e 64 65 72 ecutableFinder();.$php.=.$finder
bcbe0 2d 3e 66 69 6e 64 28 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e ->find();.$this->output->writeln
bcc00 28 3c 3c 3c 45 4f 46 0a 3c 69 6e 66 6f 3e 52 75 6e 6e 69 6e 67 20 77 69 74 68 20 70 72 6f 63 65 (<<<EOF.<info>Running.with.proce
bcc20 73 73 20 69 73 6f 6c 61 74 69 6f 6e 2c 20 79 6f 75 20 73 68 6f 75 6c 64 20 63 6f 6e 73 69 64 65 ss.isolation,.you.should.conside
bcc40 72 20 74 68 69 73 3a 3c 2f 69 6e 66 6f 3e 0a 20 20 2a 20 65 61 63 68 20 63 6f 6d 6d 61 6e 64 20 r.this:</info>...*.each.command.
bcc60 69 73 20 65 78 65 63 75 74 65 64 20 61 73 20 73 65 70 61 72 61 74 65 20 70 72 6f 63 65 73 73 2c is.executed.as.separate.process,
bcc80 0a 20 20 2a 20 63 6f 6d 6d 61 6e 64 73 20 64 6f 6e 27 74 20 73 75 70 70 6f 72 74 20 69 6e 74 65 ...*.commands.don't.support.inte
bcca0 72 61 63 74 69 76 69 74 79 2c 20 61 6c 6c 20 70 61 72 61 6d 73 20 6d 75 73 74 20 62 65 20 70 61 ractivity,.all.params.must.be.pa
bccc0 73 73 65 64 20 65 78 70 6c 69 63 69 74 6c 79 2c 0a 20 20 2a 20 63 6f 6d 6d 61 6e 64 73 20 6f 75 ssed.explicitly,...*.commands.ou
bcce0 74 70 75 74 20 69 73 20 6e 6f 74 20 63 6f 6c 6f 72 69 7a 65 64 2e 0a 0a 45 4f 46 0a 29 3b 0a 7d tput.is.not.colorized...EOF.);.}
bcd00 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 24 74 68 69 ..while.(true).{.$command.=.$thi
bcd20 73 2d 3e 72 65 61 64 6c 69 6e 65 28 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 63 s->readline();..if.(false.===.$c
bcd40 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e ommand).{.$this->output->writeln
bcd60 28 22 5c 6e 22 29 3b 0a 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 68 61 ("\n");..break;.}..if.($this->ha
bcd80 73 52 65 61 64 6c 69 6e 65 29 20 7b 0a 72 65 61 64 6c 69 6e 65 5f 61 64 64 5f 68 69 73 74 6f 72 sReadline).{.readline_add_histor
bcda0 79 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 72 65 61 64 6c 69 6e 65 5f 77 72 69 74 65 5f 68 69 73 74 y($command);.readline_write_hist
bcdc0 6f 72 79 28 24 74 68 69 73 2d 3e 68 69 73 74 6f 72 79 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 ory($this->history);.}..if.($thi
bcde0 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 29 20 7b 0a 24 70 62 20 3d 20 6e 65 77 s->processIsolation).{.$pb.=.new
bce00 20 50 72 6f 63 65 73 73 42 75 69 6c 64 65 72 28 29 3b 0a 0a 24 70 72 6f 63 65 73 73 20 3d 20 24 .ProcessBuilder();..$process.=.$
bce20 70 62 0a 2d 3e 61 64 64 28 24 70 68 70 29 0a 2d 3e 61 64 64 28 24 5f 53 45 52 56 45 52 5b 27 61 pb.->add($php).->add($_SERVER['a
bce40 72 67 76 27 5d 5b 30 5d 29 0a 2d 3e 61 64 64 28 24 63 6f 6d 6d 61 6e 64 29 0a 2d 3e 69 6e 68 65 rgv'][0]).->add($command).->inhe
bce60 72 69 74 45 6e 76 69 72 6f 6e 6d 65 6e 74 56 61 72 69 61 62 6c 65 73 28 74 72 75 65 29 0a 2d 3e ritEnvironmentVariables(true).->
bce80 67 65 74 50 72 6f 63 65 73 73 28 29 0a 3b 0a 0a 24 6f 75 74 70 75 74 20 3d 20 24 74 68 69 73 2d getProcess().;..$output.=.$this-
bcea0 3e 6f 75 74 70 75 74 3b 0a 24 70 72 6f 63 65 73 73 2d 3e 72 75 6e 28 66 75 6e 63 74 69 6f 6e 20 >output;.$process->run(function.
bcec0 28 24 74 79 70 65 2c 20 24 64 61 74 61 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 29 20 7b 0a 24 ($type,.$data).use.($output).{.$
bcee0 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 64 61 74 61 29 3b 0a 7d 29 3b 0a 0a 24 72 65 output->writeln($data);.});..$re
bcf00 74 20 3d 20 24 70 72 6f 63 65 73 73 2d 3e 67 65 74 45 78 69 74 43 6f 64 65 28 29 3b 0a 7d 20 65 t.=.$process->getExitCode();.}.e
bcf20 6c 73 65 20 7b 0a 24 72 65 74 20 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d lse.{.$ret.=.$this->application-
bcf40 3e 72 75 6e 28 6e 65 77 20 53 74 72 69 6e 67 49 6e 70 75 74 28 24 63 6f 6d 6d 61 6e 64 29 2c 20 >run(new.StringInput($command),.
bcf60 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 21 3d 3d 20 24 72 65 $this->output);.}..if.(0.!==.$re
bcf80 74 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 73 70 72 69 t).{.$this->output->writeln(spri
bcfa0 6e 74 66 28 27 3c 65 72 72 6f 72 3e 54 68 65 20 63 6f 6d 6d 61 6e 64 20 74 65 72 6d 69 6e 61 74 ntf('<error>The.command.terminat
bcfc0 65 64 20 77 69 74 68 20 61 6e 20 65 72 72 6f 72 20 73 74 61 74 75 73 20 28 25 73 29 3c 2f 65 72 ed.with.an.error.status.(%s)</er
bcfe0 72 6f 72 3e 27 2c 20 24 72 65 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 ror>',.$ret));.}.}.}.......prote
bd000 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 61 64 65 72 28 29 0a 7b 0a 72 65 74 75 cted.function.getHeader().{.retu
bd020 72 6e 20 3c 3c 3c 45 4f 46 0a 0a 57 65 6c 63 6f 6d 65 20 74 6f 20 74 68 65 20 3c 69 6e 66 6f 3e rn.<<<EOF..Welcome.to.the.<info>
bd040 7b 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 7d 3c {$this->application->getName()}<
bd060 2f 69 6e 66 6f 3e 20 73 68 65 6c 6c 20 28 3c 63 6f 6d 6d 65 6e 74 3e 7b 24 74 68 69 73 2d 3e 61 /info>.shell.(<comment>{$this->a
bd080 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 7d 3c 2f 63 6f 6d 6d 65 pplication->getVersion()}</comme
bd0a0 6e 74 3e 29 2e 0a 0a 41 74 20 74 68 65 20 70 72 6f 6d 70 74 2c 20 74 79 70 65 20 3c 63 6f 6d 6d nt>)...At.the.prompt,.type.<comm
bd0c0 65 6e 74 3e 68 65 6c 70 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 66 6f 72 20 73 6f 6d 65 20 68 65 6c 70 ent>help</comment>.for.some.help
bd0e0 2c 0a 6f 72 20 3c 63 6f 6d 6d 65 6e 74 3e 6c 69 73 74 3c 2f 63 6f 6d 6d 65 6e 74 3e 20 74 6f 20 ,.or.<comment>list</comment>.to.
bd100 67 65 74 20 61 20 6c 69 73 74 20 6f 66 20 61 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 get.a.list.of.available.commands
bd120 2e 0a 0a 54 6f 20 65 78 69 74 20 74 68 65 20 73 68 65 6c 6c 2c 20 74 79 70 65 20 3c 63 6f 6d 6d ...To.exit.the.shell,.type.<comm
bd140 65 6e 74 3e 5e 44 3c 2f 63 6f 6d 6d 65 6e 74 3e 2e 0a 0a 45 4f 46 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ent>^D</comment>...EOF;.}.......
bd160 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 6d 70 74 28 29 0a 7b protected.function.getPrompt().{
bd180 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 46 6f 72 6d ...return.$this->output->getForm
bd1a0 61 74 74 65 72 28 29 2d 3e 66 6f 72 6d 61 74 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 atter()->format($this->applicati
bd1c0 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 20 3e 20 27 29 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 on->getName().'.>.');.}..protect
bd1e0 65 64 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e ed.function.getOutput().{.return
bd200 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 3b 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e .$this->output;.}..protected.fun
bd220 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 75 72 6e 20 ction.getApplication().{.return.
bd240 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 0a 0a 70 72 $this->application;.}.........pr
bd260 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 61 75 74 6f 63 6f 6d 70 6c 65 74 65 72 28 24 74 65 ivate.function.autocompleter($te
bd280 78 74 29 0a 7b 0a 24 69 6e 66 6f 20 3d 20 72 65 61 64 6c 69 6e 65 5f 69 6e 66 6f 28 29 3b 0a 24 xt).{.$info.=.readline_info();.$
bd2a0 74 65 78 74 20 3d 20 73 75 62 73 74 72 28 24 69 6e 66 6f 5b 27 6c 69 6e 65 5f 62 75 66 66 65 72 text.=.substr($info['line_buffer
bd2c0 27 5d 2c 20 30 2c 20 24 69 6e 66 6f 5b 27 65 6e 64 27 5d 29 3b 0a 0a 69 66 20 28 24 69 6e 66 6f '],.0,.$info['end']);..if.($info
bd2e0 5b 27 70 6f 69 6e 74 27 5d 20 21 3d 3d 20 24 69 6e 66 6f 5b 27 65 6e 64 27 5d 29 20 7b 0a 72 65 ['point'].!==.$info['end']).{.re
bd300 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 73 74 turn.true;.}....if.(false.===.st
bd320 72 70 6f 73 28 24 74 65 78 74 2c 20 27 20 27 29 20 7c 7c 20 21 24 74 65 78 74 29 20 7b 0a 72 65 rpos($text,.'.').||.!$text).{.re
bd340 74 75 72 6e 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 turn.array_keys($this->applicati
bd360 6f 6e 2d 3e 61 6c 6c 28 29 29 3b 0a 7d 0a 0a 0a 20 74 72 79 20 7b 0a 24 63 6f 6d 6d 61 6e 64 20 on->all());.}....try.{.$command.
bd380 3d 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 66 69 6e 64 28 73 75 62 73 74 =.$this->application->find(subst
bd3a0 72 28 24 74 65 78 74 2c 20 30 2c 20 73 74 72 70 6f 73 28 24 74 65 78 74 2c 20 27 20 27 29 29 29 r($text,.0,.strpos($text,.'.')))
bd3c0 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 72 65 74 75 ;.}.catch.(\Exception.$e).{.retu
bd3e0 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 6c 69 73 74 20 3d 20 61 72 72 61 79 28 27 2d 2d 68 65 6c rn.true;.}..$list.=.array('--hel
bd400 70 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 66 69 6e p');.foreach.($command->getDefin
bd420 69 74 69 6f 6e 28 29 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e ition()->getOptions().as.$option
bd440 29 20 7b 0a 24 6c 69 73 74 5b 5d 20 3d 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e ).{.$list[].=.'--'.$option->getN
bd460 61 6d 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6c 69 73 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ame();.}..return.$list;.}.......
bd480 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 61 64 6c 69 6e 65 28 29 0a 7b 0a 69 66 private.function.readline().{.if
bd4a0 20 28 24 74 68 69 73 2d 3e 68 61 73 52 65 61 64 6c 69 6e 65 29 20 7b 0a 24 6c 69 6e 65 20 3d 20 .($this->hasReadline).{.$line.=.
bd4c0 72 65 61 64 6c 69 6e 65 28 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 6d 70 74 28 29 29 3b 0a 7d 20 readline($this->getPrompt());.}.
bd4e0 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 74 68 69 else.{.$this->output->write($thi
bd500 73 2d 3e 67 65 74 50 72 6f 6d 70 74 28 29 29 3b 0a 24 6c 69 6e 65 20 3d 20 66 67 65 74 73 28 53 s->getPrompt());.$line.=.fgets(S
bd520 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 69 6e 65 20 26 26 20 TDIN,.1024);.$line.=.(!$line.&&.
bd540 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 73 65 20 3a 20 72 74 strlen($line).==.0).?.false.:.rt
bd560 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 6e 65 3b 0a 7d 0a 0a rim($line);.}..return.$line;.}..
bd580 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 6f 63 65 73 73 49 73 6f 6c 61 74 public.function.getProcessIsolat
bd5a0 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 63 65 73 73 49 73 6f ion().{.return.$this->processIso
bd5c0 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 6e 20 73 65 74 50 72 lation;.}..public.function.setPr
bd5e0 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 6f 6c 61 74 69 6f 6e ocessIsolation($processIsolation
bd600 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 6f 6e 20 3d 20 28 42 ).{.$this->processIsolation.=.(B
bd620 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 3b 0a 0a 69 66 20 28 oolean).$processIsolation;..if.(
bd640 24 74 68 69 73 2d 3e 70 72 6f 63 65 73 73 49 73 6f 6c 61 74 69 6f 6e 20 26 26 20 21 63 6c 61 73 $this->processIsolation.&&.!clas
bd660 73 5f 65 78 69 73 74 73 28 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 50 72 s_exists('Symfony\\Component\\Pr
bd680 6f 63 65 73 73 5c 5c 50 72 6f 63 65 73 73 27 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 ocess\\Process')).{.throw.new.\R
bd6a0 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 6f 20 69 73 6f 6c 61 untimeException('Unable.to.isola
bd6c0 74 65 20 70 72 6f 63 65 73 73 65 73 20 61 73 20 74 68 65 20 53 79 6d 66 6f 6e 79 20 50 72 6f 63 te.processes.as.the.Symfony.Proc
bd6e0 65 73 73 20 43 6f 6d 70 6f 6e 65 6e 74 20 69 73 20 6e 6f 74 20 69 6e 73 74 61 6c 6c 65 64 2e 27 ess.Component.is.not.installed.'
bd700 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 );.}.}.}.<?php...........namespa
bd720 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 4f 75 74 ce.Symfony\Component\Console\Out
bd740 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 put;..use.Symfony\Component\Cons
bd760 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 49 6e 74 ole\Formatter\OutputFormatterInt
bd780 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 5c 43 6f erface;.use.Symfony\Component\Co
bd7a0 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;
bd7c0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 .................abstract.class.
bd7e0 4f 75 74 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 Output.implements.OutputInterfac
bd800 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 76 65 72 62 6f 73 69 74 79 3b 0a 70 72 69 76 61 74 65 20 e.{.private.$verbosity;.private.
bd820 24 66 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e $formatter;...........public.fun
bd840 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 74 79 20 3d 20 73 ction.__construct($verbosity.=.s
bd860 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 74 65 elf::VERBOSITY_NORMAL,.$decorate
bd880 64 20 3d 20 66 61 6c 73 65 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 d.=.false,.OutputFormatterInterf
bd8a0 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e ace.$formatter.=.null).{.$this->
bd8c0 76 65 72 62 6f 73 69 74 79 20 3d 20 6e 75 6c 6c 20 3d 3d 3d 20 24 76 65 72 62 6f 73 69 74 79 20 verbosity.=.null.===.$verbosity.
bd8e0 3f 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3a 20 24 76 65 72 62 ?.self::VERBOSITY_NORMAL.:.$verb
bd900 6f 73 69 74 79 3b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 66 6f 72 6d 61 osity;.$this->formatter.=.$forma
bd920 74 74 65 72 20 3f 3a 20 6e 65 77 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 24 tter.?:.new.OutputFormatter();.$
bd940 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 64 this->formatter->setDecorated($d
bd960 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e ecorated);.}.....public.function
bd980 20 73 65 74 46 6f 72 6d 61 74 74 65 72 28 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 .setFormatter(OutputFormatterInt
bd9a0 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d erface.$formatter).{.$this->form
bd9c0 61 74 74 65 72 20 3d 20 24 66 6f 72 6d 61 74 74 65 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 atter.=.$formatter;.}.....public
bd9e0 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 72 .function.getFormatter().{.retur
bda00 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 70 75 62 6c 69 63 n.$this->formatter;.}.....public
bda20 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 6f 72 61 74 65 .function.setDecorated($decorate
bda40 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 65 63 6f 72 61 d).{.$this->formatter->setDecora
bda60 74 65 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ted($decorated);.}.....public.fu
bda80 6e 63 74 69 6f 6e 20 69 73 44 65 63 6f 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 nction.isDecorated().{.return.$t
bdaa0 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 7d his->formatter->isDecorated();.}
bdac0 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 .....public.function.setVerbosit
bdae0 79 28 24 6c 65 76 65 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 20 3d 20 28 y($level).{.$this->verbosity.=.(
bdb00 69 6e 74 29 20 24 6c 65 76 65 6c 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 int).$level;.}.....public.functi
bdb20 6f 6e 20 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 on.getVerbosity().{.return.$this
bdb40 2d 3e 76 65 72 62 6f 73 69 74 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ->verbosity;.}..public.function.
bdb60 69 73 51 75 69 65 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 isQuiet().{.return.self::VERBOSI
bdb80 54 59 5f 51 55 49 45 54 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 3b 0a 7d TY_QUIET.===.$this->verbosity;.}
bdba0 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 0a ..public.function.isVerbose().{.
bdbc0 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 20 3c return.self::VERBOSITY_VERBOSE.<
bdbe0 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 =.$this->verbosity;.}..public.fu
bdc00 6e 63 74 69 6f 6e 20 69 73 56 65 72 79 56 65 72 62 6f 73 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 nction.isVeryVerbose().{.return.
bdc20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 20 3c 3d 20 self::VERBOSITY_VERY_VERBOSE.<=.
bdc40 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 $this->verbosity;.}..public.func
bdc60 74 69 6f 6e 20 69 73 44 65 62 75 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 45 tion.isDebug().{.return.self::VE
bdc80 52 42 4f 53 49 54 59 5f 44 45 42 55 47 20 3c 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 RBOSITY_DEBUG.<=.$this->verbosit
bdca0 79 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 6c 6e y;.}.....public.function.writeln
bdcc0 28 24 6d 65 73 73 61 67 65 73 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 55 54 ($messages,.$type.=.self::OUTPUT
bdce0 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 _NORMAL).{.$this->write($message
bdd00 73 2c 20 74 72 75 65 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 s,.true,.$type);.}.....public.fu
bdd20 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
bdd40 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 55 54 5f 4e .=.false,.$type.=.self::OUTPUT_N
bdd60 4f 52 4d 41 4c 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 51 55 49 ORMAL).{.if.(self::VERBOSITY_QUI
bdd80 45 54 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 65 72 62 6f 73 69 74 79 29 20 7b 0a 72 65 74 75 72 ET.===.$this->verbosity).{.retur
bdda0 6e 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 n;.}..$messages.=.(array).$messa
bddc0 67 65 73 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 24 6d 65 73 ges;..foreach.($messages.as.$mes
bdde0 73 61 67 65 29 20 7b 0a 73 77 69 74 63 68 20 28 24 74 79 70 65 29 20 7b 0a 63 61 73 65 20 4f 75 sage).{.switch.($type).{.case.Ou
bde00 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 3a 0a 24 6d tputInterface::OUTPUT_NORMAL:.$m
bde20 65 73 73 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 essage.=.$this->formatter->forma
bde40 74 28 24 6d 65 73 73 61 67 65 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 t($message);.break;.case.OutputI
bde60 6e 74 65 72 66 61 63 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 3a 0a 62 72 65 61 6b 3b 0a 63 61 73 nterface::OUTPUT_RAW:.break;.cas
bde80 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 50 4c 41 49 4e 3a e.OutputInterface::OUTPUT_PLAIN:
bdea0 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 74 72 69 70 5f 74 61 67 73 28 24 74 68 69 73 2d 3e 66 6f .$message.=.strip_tags($this->fo
bdec0 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 29 3b 0a 62 72 65 61 rmatter->format($message));.brea
bdee0 6b 3b 0a 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 k;.default:.throw.new.\InvalidAr
bdf00 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 55 6e 6b 6e 6f 77 6e gumentException(sprintf('Unknown
bdf20 20 6f 75 74 70 75 74 20 74 79 70 65 20 67 69 76 65 6e 20 28 25 73 29 27 2c 20 24 74 79 70 65 29 .output.type.given.(%s)',.$type)
bdf40 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 65 2c 20 24 );.}..$this->doWrite($message,.$
bdf60 6e 65 77 6c 69 6e 65 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 newline);.}.}........abstract.pr
bdf80 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 67 otected.function.doWrite($messag
bdfa0 65 2c 20 24 6e 65 77 6c 69 6e 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e,.$newline);.}.<?php...........
bdfc0 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 73 namespace.Symfony\Component\Cons
bdfe0 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 ole\Output;..use.Symfony\Compone
be000 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 46 6f 72 6d 61 74 74 65 72 5c 4f 75 74 70 75 74 46 6f 72 6d 61 nt\Console\Formatter\OutputForma
be020 74 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 tter;.use.Symfony\Component\Cons
be040 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 49 6e 74 ole\Formatter\OutputFormatterInt
be060 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4e 75 6c 6c 4f 75 74 erface;............class.NullOut
be080 70 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 0a 7b put.implements.OutputInterface.{
be0a0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 72 6d 61 74 74 65 72 ....public.function.setFormatter
be0c0 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 61 (OutputFormatterInterface.$forma
be0e0 74 74 65 72 29 0a 7b 0a 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 tter).{...}.....public.function.
be100 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 0a 7b 0a 0a 20 72 65 74 75 72 6e 20 6e 65 77 20 4f 75 getFormatter().{...return.new.Ou
be120 74 70 75 74 46 6f 72 6d 61 74 74 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 tputFormatter();.}.....public.fu
be140 6e 63 74 69 6f 6e 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 nction.setDecorated($decorated).
be160 7b 0a 0a 20 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
be180 72 61 74 65 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 rated().{.return.false;.}.....pu
be1a0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 blic.function.setVerbosity($leve
be1c0 6c 29 0a 7b 0a 0a 20 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 l).{...}.....public.function.get
be1e0 56 65 72 62 6f 73 69 74 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 56 45 52 42 4f Verbosity().{.return.self::VERBO
be200 53 49 54 59 5f 51 55 49 45 54 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f SITY_QUIET;.}.....public.functio
be220 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 73 65 6c n.writeln($messages,.$type.=.sel
be240 66 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 0a 20 7d 0a 0a 0a 0a 0a 70 75 62 6c f::OUTPUT_NORMAL).{...}.....publ
be260 69 63 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 ic.function.write($messages,.$ne
be280 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 wline.=.false,.$type.=.self::OUT
be2a0 50 55 54 5f 4e 4f 52 4d 41 4c 29 0a 7b 0a 0a 20 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a PUT_NORMAL).{...}.}.<?php.......
be2c0 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 5c ....namespace.Symfony\Component\
be2e0 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 Console\Output;........interface
be300 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 6e 64 73 20 .ConsoleOutputInterface.extends.
be320 4f 75 74 70 75 74 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 OutputInterface.{......public.fu
be340 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 0a 0a 0a 0a 0a 70 nction.getErrorOutput();.......p
be360 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 74 28 4f 75 ublic.function.setErrorOutput(Ou
be380 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 65 72 72 6f 72 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a tputInterface.$error);.}.<?php..
be3a0 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
be3c0 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 6d 66 6f 6e nent\Console\Output;..use.Symfon
be3e0 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 5c 4f 75 y\Component\Console\Formatter\Ou
be400 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a tputFormatterInterface;.........
be420 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 65 78 74 65 6e ........class.StreamOutput.exten
be440 64 73 20 4f 75 74 70 75 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 72 65 61 6d 3b 0a 0a 0a 0a ds.Output.{.private.$stream;....
be460 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
be480 74 72 75 63 74 28 24 73 74 72 65 61 6d 2c 20 24 76 65 72 62 6f 73 69 74 79 20 3d 20 73 65 6c 66 truct($stream,.$verbosity.=.self
be4a0 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3d ::VERBOSITY_NORMAL,.$decorated.=
be4c0 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 .null,.OutputFormatterInterface.
be4e0 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 21 69 73 5f 72 65 73 $formatter.=.null).{.if.(!is_res
be500 6f 75 72 63 65 28 24 73 74 72 65 61 6d 29 20 7c 7c 20 27 73 74 72 65 61 6d 27 20 21 3d 3d 20 67 ource($stream).||.'stream'.!==.g
be520 65 74 5f 72 65 73 6f 75 72 63 65 5f 74 79 70 65 28 24 73 74 72 65 61 6d 29 29 20 7b 0a 74 68 72 et_resource_type($stream)).{.thr
be540 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
be560 28 27 54 68 65 20 53 74 72 65 61 6d 4f 75 74 70 75 74 20 63 6c 61 73 73 20 6e 65 65 64 73 20 61 ('The.StreamOutput.class.needs.a
be580 20 73 74 72 65 61 6d 20 61 73 20 69 74 73 20 66 69 72 73 74 20 61 72 67 75 6d 65 6e 74 2e 27 29 .stream.as.its.first.argument.')
be5a0 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 0a 69 ;.}..$this->stream.=.$stream;..i
be5c0 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 64 65 63 6f 72 61 74 65 64 29 20 7b 0a 24 64 65 63 6f 72 f.(null.===.$decorated).{.$decor
be5e0 61 74 65 64 20 3d 20 24 74 68 69 73 2d 3e 68 61 73 43 6f 6c 6f 72 53 75 70 70 6f 72 74 28 29 3b ated.=.$this->hasColorSupport();
be600 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 76 65 72 62 6f 73 69 .}..parent::__construct($verbosi
be620 74 79 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a ty,.$decorated,.$formatter);.}..
be640 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 74 72 65 61 6d 28 29 .....public.function.getStream()
be660 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 .{.return.$this->stream;.}.....p
be680 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 6f 57 72 69 74 65 28 24 6d 65 73 73 61 rotected.function.doWrite($messa
be6a0 67 65 2c 20 24 6e 65 77 6c 69 6e 65 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 40 66 ge,.$newline).{.if.(false.===.@f
be6c0 77 72 69 74 65 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 2c 20 24 6d 65 73 73 61 67 65 2e 28 24 write($this->stream,.$message.($
be6e0 6e 65 77 6c 69 6e 65 20 3f 20 50 48 50 5f 45 4f 4c 20 3a 20 27 27 29 29 29 20 7b 0a 0a 20 0a 20 newline.?.PHP_EOL.:.''))).{.....
be700 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 61 throw.new.\RuntimeException('Una
be720 62 6c 65 20 74 6f 20 77 72 69 74 65 20 6f 75 74 70 75 74 2e 27 29 3b 0a 0a 20 7d 0a 0a 66 66 6c ble.to.write.output.');...}..ffl
be740 75 73 68 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ush($this->stream);.}...........
be760 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 43 6f 6c 6f 72 53 75 70 70 .protected.function.hasColorSupp
be780 6f 72 74 28 29 0a 7b 0a 0a 20 69 66 20 28 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f ort().{...if.(DIRECTORY_SEPARATO
be7a0 52 20 3d 3d 20 27 5c 5c 27 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 67 65 R.==.'\\').{.return.false.!==.ge
be7c0 74 65 6e 76 28 27 41 4e 53 49 43 4f 4e 27 29 20 7c 7c 20 27 4f 4e 27 20 3d 3d 3d 20 67 65 74 65 tenv('ANSICON').||.'ON'.===.gete
be7e0 6e 76 28 27 43 6f 6e 45 6d 75 41 4e 53 49 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 66 75 6e 63 nv('ConEmuANSI');.}..return.func
be800 74 69 6f 6e 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 40 tion_exists('posix_isatty').&&.@
be820 70 6f 73 69 78 5f 69 73 61 74 74 79 28 24 74 68 69 73 2d 3e 73 74 72 65 61 6d 29 3b 0a 0a 20 7d posix_isatty($this->stream);...}
be840 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d .}.<?php...........namespace.Sym
be860 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a fony\Component\Console\Output;..
be880 0a 0a 0a 63 6c 61 73 73 20 42 75 66 66 65 72 65 64 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 ...class.BufferedOutput.extends.
be8a0 4f 75 74 70 75 74 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 62 75 66 66 65 72 20 3d 20 27 27 Output.{....private.$buffer.=.''
be8c0 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 65 74 63 68 28 29 0a ;.......public.function.fetch().
be8e0 7b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 24 74 68 69 73 2d 3e 62 75 66 66 65 72 3b 0a 24 74 68 69 {.$content.=.$this->buffer;.$thi
be900 73 2d 3e 62 75 66 66 65 72 20 3d 20 27 27 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 s->buffer.=.'';..return.$content
be920 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 64 6f 57 72 69 ;.}.....protected.function.doWri
be940 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 24 74 68 69 73 2d 3e te($message,.$newline).{.$this->
be960 62 75 66 66 65 72 20 2e 3d 20 24 6d 65 73 73 61 67 65 3b 0a 0a 69 66 20 28 24 6e 65 77 6c 69 6e buffer..=.$message;..if.($newlin
be980 65 29 20 7b 0a 24 74 68 69 73 2d 3e 62 75 66 66 65 72 20 2e 3d 20 22 5c 6e 22 3b 0a 7d 0a 7d 0a e).{.$this->buffer..=."\n";.}.}.
be9a0 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
be9c0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 3b 0a 0a 75 ony\Component\Console\Output;..u
be9e0 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 6f 72 se.Symfony\Component\Console\For
bea00 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 61 63 65 3b matter\OutputFormatterInterface;
bea20 0a 0a 0a 0a 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 .........interface.OutputInterfa
bea40 63 65 0a 7b 0a 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 20 3d 20 30 3b 0a ce.{.const.VERBOSITY_QUIET.=.0;.
bea60 63 6f 6e 73 74 20 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 4c 20 3d 20 31 3b 0a 63 6f 6e 73 const.VERBOSITY_NORMAL.=.1;.cons
bea80 74 20 56 45 52 42 4f 53 49 54 59 5f 56 45 52 42 4f 53 45 20 3d 20 32 3b 0a 63 6f 6e 73 74 20 56 t.VERBOSITY_VERBOSE.=.2;.const.V
beaa0 45 52 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 20 3d 20 33 3b 0a 63 6f 6e 73 74 ERBOSITY_VERY_VERBOSE.=.3;.const
beac0 20 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 20 3d 20 34 3b 0a 0a 63 6f 6e 73 74 20 4f 55 54 .VERBOSITY_DEBUG.=.4;..const.OUT
beae0 50 55 54 5f 4e 4f 52 4d 41 4c 20 3d 20 30 3b 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 52 41 57 PUT_NORMAL.=.0;.const.OUTPUT_RAW
beb00 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4f 55 54 50 55 54 5f 50 4c 41 49 4e 20 3d 20 32 3b 0a 0a 0a .=.1;.const.OUTPUT_PLAIN.=.2;...
beb20 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 72 69 74 65 28 ..........public.function.write(
beb40 24 6d 65 73 73 61 67 65 73 2c 20 24 6e 65 77 6c 69 6e 65 20 3d 20 66 61 6c 73 65 2c 20 24 74 79 $messages,.$newline.=.false,.$ty
beb60 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 29 3b 0a 0a 0a 0a 0a 0a pe.=.self::OUTPUT_NORMAL);......
beb80 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 6c 6e 28 24 6d ......public.function.writeln($m
beba0 65 73 73 61 67 65 73 2c 20 24 74 79 70 65 20 3d 20 73 65 6c 66 3a 3a 4f 55 54 50 55 54 5f 4e 4f essages,.$type.=.self::OUTPUT_NO
bebc0 52 4d 41 4c 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 RMAL);.........public.function.s
bebe0 65 74 56 65 72 62 6f 73 69 74 79 28 24 6c 65 76 65 6c 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 etVerbosity($level);.........pub
bec00 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 56 65 72 62 6f 73 69 74 79 28 29 3b 0a 0a 0a 0a lic.function.getVerbosity();....
bec20 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 65 .....public.function.setDecorate
bec40 64 28 24 64 65 63 6f 72 61 74 65 64 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 d($decorated);.........public.fu
bec60 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 70 75 nction.isDecorated();.........pu
bec80 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 72 28 4f 75 74 70 75 blic.function.setFormatter(Outpu
beca0 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 65 72 29 3b tFormatterInterface.$formatter);
becc0 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 46 6f 72 6d .........public.function.getForm
bece0 61 74 74 65 72 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 atter();.}.<?php...........names
bed00 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 4f pace.Symfony\Component\Console\O
bed20 75 74 70 75 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f utput;..use.Symfony\Component\Co
bed40 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 49 nsole\Formatter\OutputFormatterI
bed60 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 nterface;.................class.
bed80 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 20 65 78 74 65 6e 64 73 20 53 74 72 65 61 6d 4f 75 74 70 ConsoleOutput.extends.StreamOutp
beda0 75 74 20 69 6d 70 6c 65 6d 65 6e 74 73 20 43 6f 6e 73 6f 6c 65 4f 75 74 70 75 74 49 6e 74 65 72 ut.implements.ConsoleOutputInter
bedc0 66 61 63 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 73 74 64 65 72 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a face.{.private.$stderr;.........
bede0 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 76 ..public.function.__construct($v
bee00 65 72 62 6f 73 69 74 79 20 3d 20 73 65 6c 66 3a 3a 56 45 52 42 4f 53 49 54 59 5f 4e 4f 52 4d 41 erbosity.=.self::VERBOSITY_NORMA
bee20 4c 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3d 20 6e 75 6c 6c 2c 20 4f 75 74 70 75 74 46 6f 72 6d L,.$decorated.=.null,.OutputForm
bee40 61 74 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 6e 75 6c 6c atterInterface.$formatter.=.null
bee60 29 0a 7b 0a 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 73 74 64 6f 75 ).{.$outputStream.=.'php://stdou
bee80 74 27 3b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 53 74 64 6f 75 74 53 75 70 70 6f 72 74 t';.if.(!$this->hasStdoutSupport
beea0 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 53 74 72 65 61 6d 20 3d 20 27 70 68 70 3a 2f 2f 6f 75 74 ()).{.$outputStream.=.'php://out
beec0 70 75 74 27 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 66 6f 70 put';.}..parent::__construct(fop
beee0 65 6e 28 24 6f 75 74 70 75 74 53 74 72 65 61 6d 2c 20 27 77 27 29 2c 20 24 76 65 72 62 6f 73 69 en($outputStream,.'w'),.$verbosi
bef00 74 79 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 0a 24 74 ty,.$decorated,.$formatter);..$t
bef20 68 69 73 2d 3e 73 74 64 65 72 72 20 3d 20 6e 65 77 20 53 74 72 65 61 6d 4f 75 74 70 75 74 28 66 his->stderr.=.new.StreamOutput(f
bef40 6f 70 65 6e 28 27 70 68 70 3a 2f 2f 73 74 64 65 72 72 27 2c 20 27 77 27 29 2c 20 24 76 65 72 62 open('php://stderr',.'w'),.$verb
bef60 6f 73 69 74 79 2c 20 24 64 65 63 6f 72 61 74 65 64 2c 20 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a osity,.$decorated,.$formatter);.
bef80 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 65 63 6f 72 61 74 }.....public.function.setDecorat
befa0 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 65 74 44 65 63 6f ed($decorated).{.parent::setDeco
befc0 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 73 74 64 65 72 72 rated($decorated);.$this->stderr
befe0 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 3b 0a 7d 0a 0a 0a ->setDecorated($decorated);.}...
bf000 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 72 28 4f ..public.function.setFormatter(O
bf020 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
bf040 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 6f 72 6d er).{.parent::setFormatter($form
bf060 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 6d 61 74 atter);.$this->stderr->setFormat
bf080 74 65 72 28 24 66 6f 72 6d 61 74 74 65 72 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ter($formatter);.}.....public.fu
bf0a0 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
bf0c0 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
bf0e0 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);
bf100 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
bf120 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;.
bf140 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 72 72 6f 72 4f 75 }.....public.function.setErrorOu
bf160 74 70 75 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 tput(OutputInterface.$error).{.$
bf180 74 68 69 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 this->stderr.=.$error;.}........
bf1a0 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 53 74 64 6f 75 74 ....protected.function.hasStdout
bf1c0 53 75 70 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 Support().{.return.('OS400'.!=.p
bf1e0 68 70 5f 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 hp_uname('s'));.}.}.<?php.......
bf200 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 5c ....namespace.Symfony\Component\
bf220 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 Console\Descriptor;..use.Symfony
bf240 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
bf260 49 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 44 65 73 63 72 Interface;.......interface.Descr
bf280 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 iptorInterface.{........public.f
bf2a0 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 unction.describe(OutputInterface
bf2c0 20 24 6f 75 74 70 75 74 2c 20 24 6f 62 6a 65 63 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e .$output,.$object,.array.$option
bf2e0 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a s.=.array());.}.<?php...........
bf300 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 73 namespace.Symfony\Component\Cons
bf320 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d ole\Descriptor;..use.Symfony\Com
bf340 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 20 ponent\Console\Application;.use.
bf360 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 6e Symfony\Component\Console\Comman
bf380 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 d\Command;.use.Symfony\Component
bf3a0 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 \Console\Input\InputArgument;.us
bf3c0 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
bf3e0 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\InputDefinition;.use.Symfony\C
bf400 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 69 omponent\Console\Input\InputOpti
bf420 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 20 65 on;.......class.TextDescriptor.e
bf440 78 74 65 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 xtends.Descriptor.{....protected
bf460 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 .function.describeInputArgument(
bf480 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 24 InputArgument.$argument,.array.$
bf4a0 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 6c 20 21 3d options.=.array()).{.if.(null.!=
bf4c0 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 20 26 26 20 28 21 69 =.$argument->getDefault().&&.(!i
bf4e0 73 5f 61 72 72 61 79 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 s_array($argument->getDefault())
bf500 20 7c 7c 20 63 6f 75 6e 74 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 .||.count($argument->getDefault(
bf520 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 3c 63 6f 6d 6d )))).{.$default.=.sprintf('<comm
bf540 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 3e 27 2c 20 24 ent>.(default:.%s)</comment>',.$
bf560 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 61 72 67 75 6d 65 this->formatDefaultValue($argume
bf580 6e 74 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 24 64 65 nt->getDefault()));.}.else.{.$de
bf5a0 66 61 75 6c 74 20 3d 20 27 27 3b 0a 7d 0a 0a 24 6e 61 6d 65 57 69 64 74 68 20 3d 20 69 73 73 65 fault.=.'';.}..$nameWidth.=.isse
bf5c0 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 69 64 74 68 27 5d 29 20 3f 20 24 6f 70 74 t($options['name_width']).?.$opt
bf5e0 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 69 64 74 68 27 5d 20 3a 20 73 74 72 6c 65 6e 28 24 61 72 67 ions['name_width'].:.strlen($arg
bf600 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 ument->getName());..$this->write
bf620 54 65 78 74 28 73 70 72 69 6e 74 66 28 22 20 3c 69 6e 66 6f 3e 25 2d 24 7b 6e 61 6d 65 57 69 64 Text(sprintf(".<info>%-${nameWid
bf640 74 68 7d 73 3c 2f 69 6e 66 6f 3e 20 25 73 25 73 22 2c 0a 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 th}s</info>.%s%s",.$argument->ge
bf660 74 4e 61 6d 65 28 29 2c 0a 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 22 2e tName(),.str_replace("\n",."\n".
bf680 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6e 61 6d 65 57 69 64 74 68 20 2b 20 32 29 2c str_repeat('.',.$nameWidth.+.2),
bf6a0 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 2c 0a 24 .$argument->getDescription()),.$
bf6c0 64 65 66 61 75 6c 74 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 default.),.$options);.}.....prot
bf6e0 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 ected.function.describeInputOpti
bf700 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f on(InputOption.$option,.array.$o
bf720 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d ptions.=.array()).{.if.($option-
bf740 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 26 26 20 6e 75 6c 6c 20 21 3d 3d 20 24 6f 70 74 69 >acceptValue().&&.null.!==.$opti
bf760 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 26 26 20 28 21 69 73 5f 61 72 72 61 79 28 24 on->getDefault().&&.(!is_array($
bf780 6f 70 74 69 6f 6e 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 option->getDefault()).||.count($
bf7a0 6f 70 74 69 6f 6e 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 option->getDefault()))).{.$defau
bf7c0 6c 74 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 63 6f 6d 6d 65 6e 74 3e 20 28 64 65 66 61 75 6c 74 lt.=.sprintf('<comment>.(default
bf7e0 3a 20 25 73 29 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 44 :.%s)</comment>',.$this->formatD
bf800 65 66 61 75 6c 74 56 61 6c 75 65 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 efaultValue($option->getDefault(
bf820 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.=.'';.}..
bf840 24 6e 61 6d 65 57 69 64 74 68 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d $nameWidth.=.isset($options['nam
bf860 65 5f 77 69 64 74 68 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 5f 77 69 64 74 e_width']).?.$options['name_widt
bf880 68 27 5d 20 3a 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 h'].:.strlen($option->getName())
bf8a0 3b 0a 24 6e 61 6d 65 57 69 74 68 53 68 6f 72 74 63 75 74 57 69 64 74 68 20 3d 20 24 6e 61 6d 65 ;.$nameWithShortcutWidth.=.$name
bf8c0 57 69 64 74 68 20 2d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 Width.-.strlen($option->getName(
bf8e0 29 29 20 2d 20 32 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 73 70 72 69 6e 74 )).-.2;..$this->writeText(sprint
bf900 66 28 22 20 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 20 25 2d 24 7b 6e 61 6d 65 57 69 74 68 f(".<info>%s</info>.%-${nameWith
bf920 53 68 6f 72 74 63 75 74 57 69 64 74 68 7d 73 25 73 25 73 25 73 22 2c 0a 27 2d 2d 27 2e 24 6f 70 ShortcutWidth}s%s%s%s",.'--'.$op
bf940 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
bf960 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
bf980 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 73 74 72 5f 72 65 ion->getShortcut()).:.'',.str_re
bf9a0 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 22 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c place("\n",."\n".str_repeat('.',
bf9c0 20 24 6e 61 6d 65 57 69 64 74 68 20 2b 20 32 29 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 .$nameWidth.+.2),.$option->getDe
bf9e0 73 63 72 69 70 74 69 6f 6e 28 29 29 2c 0a 24 64 65 66 61 75 6c 74 2c 0a 24 6f 70 74 69 6f 6e 2d scription()),.$default,.$option-
bfa00 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 75 6c 74 69 70 6c >isArray().?.'<comment>.(multipl
bfa20 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 3e 27 20 3a 20 27 e.values.allowed)</comment>'.:.'
bfa40 27 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 '.),.$options);.}.....protected.
bfa60 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e function.describeInputDefinition
bfa80 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 61 72 (InputDefinition.$definition,.ar
bfaa0 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 24 6e 61 6d 65 57 ray.$options.=.array()).{.$nameW
bfac0 69 64 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e idth.=.0;.foreach.($definition->
bfae0 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 6e 61 6d 65 getOptions().as.$option).{.$name
bfb00 4c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 Length.=.strlen($option->getName
bfb20 28 29 29 20 2b 20 32 3b 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 ()).+.2;.if.($option->getShortcu
bfb40 74 28 29 29 20 7b 0a 24 6e 61 6d 65 4c 65 6e 67 74 68 20 2b 3d 20 73 74 72 6c 65 6e 28 24 6f 70 t()).{.$nameLength.+=.strlen($op
bfb60 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 20 2b 20 33 3b 0a 7d 0a 24 6e 61 6d tion->getShortcut()).+.3;.}.$nam
bfb80 65 57 69 64 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 57 69 64 74 68 2c 20 24 6e 61 6d 65 4c 65 eWidth.=.max($nameWidth,.$nameLe
bfba0 6e 67 74 68 29 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 ngth);.}.foreach.($definition->g
bfbc0 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 7b 0a 24 6e etArguments().as.$argument).{.$n
bfbe0 61 6d 65 57 69 64 74 68 20 3d 20 6d 61 78 28 24 6e 61 6d 65 57 69 64 74 68 2c 20 73 74 72 6c 65 ameWidth.=.max($nameWidth,.strle
bfc00 6e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 29 29 3b 0a 7d 0a 2b 2b 24 6e n($argument->getName()));.}.++$n
bfc20 61 6d 65 57 69 64 74 68 3b 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 ameWidth;..if.($definition->getA
bfc40 72 67 75 6d 65 6e 74 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 rguments()).{.$this->writeText('
bfc60 3c 63 6f 6d 6d 65 6e 74 3e 41 72 67 75 6d 65 6e 74 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 <comment>Arguments:</comment>',.
bfc80 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 $options);.$this->writeText("\n"
bfca0 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 );.foreach.($definition->getArgu
bfcc0 6d 65 6e 74 73 28 29 20 61 73 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 64 ments().as.$argument).{.$this->d
bfce0 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 2c 20 escribeInputArgument($argument,.
bfd00 61 72 72 61 79 5f 6d 65 72 67 65 28 24 6f 70 74 69 6f 6e 73 2c 20 61 72 72 61 79 28 27 6e 61 6d array_merge($options,.array('nam
bfd20 65 5f 77 69 64 74 68 27 20 3d 3e 20 24 6e 61 6d 65 57 69 64 74 68 29 29 29 3b 0a 24 74 68 69 73 e_width'.=>.$nameWidth)));.$this
bfd40 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 64 65 66 ->writeText("\n");.}.}..if.($def
bfd60 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 29 20 26 26 20 24 64 65 66 69 inition->getArguments().&&.$defi
bfd80 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 nition->getOptions()).{.$this->w
bfda0 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 riteText("\n");.}..if.($definiti
bfdc0 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 on->getOptions()).{.$this->write
bfde0 54 65 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 4f 70 74 69 6f 6e 73 3a 3c 2f 63 6f 6d 6d 65 6e 74 Text('<comment>Options:</comment
bfe00 3e 27 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 >',.$options);.$this->writeText(
bfe20 22 5c 6e 22 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 "\n");.foreach.($definition->get
bfe40 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 74 68 69 73 2d 3e 64 Options().as.$option).{.$this->d
bfe60 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 escribeInputOption($option,.arra
bfe80 79 5f 6d 65 72 67 65 28 24 6f 70 74 69 6f 6e 73 2c 20 61 72 72 61 79 28 27 6e 61 6d 65 5f 77 69 y_merge($options,.array('name_wi
bfea0 64 74 68 27 20 3d 3e 20 24 6e 61 6d 65 57 69 64 74 68 29 29 29 3b 0a 24 74 68 69 73 2d 3e 77 72 dth'.=>.$nameWidth)));.$this->wr
bfec0 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 iteText("\n");.}.}.}.....protect
bfee0 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d ed.function.describeCommand(Comm
bff00 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 and.$command,.array.$options.=.a
bff20 72 72 61 79 28 29 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 rray()).{.$command->getSynopsis(
bff40 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 );.$command->mergeApplicationDef
bff60 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 inition(false);..$this->writeTex
bff80 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 55 73 61 67 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c 20 24 t('<comment>Usage:</comment>',.$
bffa0 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 options);.$this->writeText("\n")
bffc0 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 20 27 2e 24 63 6f 6d 6d 61 6e 64 2d ;.$this->writeText('.'.$command-
bffe0 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 >getSynopsis(),.$options);.$this
c0000 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 63 ->writeText("\n");..if.(count($c
c0020 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 20 3e 20 30 29 20 7b 0a 24 74 68 ommand->getAliases()).>.0).{.$th
c0040 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 is->writeText("\n");.$this->writ
c0060 65 54 65 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 41 6c 69 61 73 65 73 3a 3c 2f 63 6f 6d 6d 65 6e eText('<comment>Aliases:</commen
c0080 74 3e 20 3c 69 6e 66 6f 3e 27 2e 69 6d 70 6c 6f 64 65 28 27 2c 20 27 2c 20 24 63 6f 6d 6d 61 6e t>.<info>'.implode(',.',.$comman
c00a0 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 2e 27 3c 2f 69 6e 66 6f 3e 27 2c 20 24 6f 70 74 d->getAliases()).'</info>',.$opt
c00c0 69 6f 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 63 6f 6d ions);.}..if.($definition.=.$com
c00e0 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 20 7b 0a 24 mand->getNativeDefinition()).{.$
c0100 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 64 65 this->writeText("\n");.$this->de
c0120 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 64 65 66 69 6e 69 74 69 6f scribeInputDefinition($definitio
c0140 6e 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 n,.$options);.}..$this->writeTex
c0160 74 28 22 5c 6e 22 29 3b 0a 0a 69 66 20 28 24 68 65 6c 70 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e t("\n");..if.($help.=.$command->
c0180 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c 70 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 getProcessedHelp()).{.$this->wri
c01a0 74 65 54 65 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e 48 65 6c 70 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e teText('<comment>Help:</comment>
c01c0 27 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 ',.$options);.$this->writeText("
c01e0 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 20 27 2e 73 74 72 5f 72 \n");.$this->writeText('.'.str_r
c0200 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 68 65 6c 70 29 2c 20 24 6f 70 74 eplace("\n",."\n.",.$help),.$opt
c0220 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d ions);.$this->writeText("\n");.}
c0240 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 64 65 73 63 72 69 .}.....protected.function.descri
c0260 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 beApplication(Application.$appli
c0280 63 61 74 69 6f 6e 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 cation,.array.$options.=.array()
c02a0 29 0a 7b 0a 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 69 73 73 65 74 28 ).{.$describedNamespace.=.isset(
c02c0 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e $options['namespace']).?.$option
c02e0 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 64 65 73 63 72 69 70 74 s['namespace'].:.null;.$descript
c0300 69 6f 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e ion.=.new.ApplicationDescription
c0320 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 ($application,.$describedNamespa
c0340 63 65 29 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 ce);..if.(isset($options['raw_te
c0360 78 74 27 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 29 20 7b xt']).&&.$options['raw_text']).{
c0380 0a 24 77 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 .$width.=.$this->getColumnWidth(
c03a0 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 29 3b 0a 0a 66 $description->getCommands());..f
c03c0 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 oreach.($description->getCommand
c03e0 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 s().as.$command).{.$this->writeT
c0400 65 78 74 28 73 70 72 69 6e 74 66 28 22 25 2d 24 7b 77 69 64 74 68 7d 73 20 25 73 22 2c 20 24 63 ext(sprintf("%-${width}s.%s",.$c
c0420 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 ommand->getName(),.$command->get
c0440 44 65 73 63 72 69 70 74 69 6f 6e 28 29 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 Description()),.$options);.$this
c0460 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 0a 24 77 ->writeText("\n");.}.}.else.{.$w
c0480 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 64 65 idth.=.$this->getColumnWidth($de
c04a0 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 29 3b 0a 0a 24 74 68 69 scription->getCommands());..$thi
c04c0 73 2d 3e 77 72 69 74 65 54 65 78 74 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 48 65 s->writeText($application->getHe
c04e0 6c 70 28 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 lp(),.$options);.$this->writeTex
c0500 74 28 22 5c 6e 5c 6e 22 29 3b 0a 0a 69 66 20 28 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 t("\n\n");..if.($describedNamesp
c0520 61 63 65 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 73 70 72 69 6e 74 66 28 ace).{.$this->writeText(sprintf(
c0540 22 3c 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 20 66 6f 72 "<comment>Available.commands.for
c0560 20 74 68 65 20 5c 22 25 73 5c 22 20 6e 61 6d 65 73 70 61 63 65 3a 3c 2f 63 6f 6d 6d 65 6e 74 3e .the.\"%s\".namespace:</comment>
c0580 22 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 2c 20 24 6f 70 74 69 6f 6e ",.$describedNamespace),.$option
c05a0 73 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 3c s);.}.else.{.$this->writeText('<
c05c0 63 6f 6d 6d 65 6e 74 3e 41 76 61 69 6c 61 62 6c 65 20 63 6f 6d 6d 61 6e 64 73 3a 3c 2f 63 6f 6d comment>Available.commands:</com
c05e0 6d 65 6e 74 3e 27 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 ment>',.$options);.}....foreach.
c0600 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 20 61 ($description->getNamespaces().a
c0620 73 20 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 69 66 20 28 21 24 64 65 73 63 72 69 62 65 64 4e s.$namespace).{.if.(!$describedN
c0640 61 6d 65 73 70 61 63 65 20 26 26 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 amespace.&&.ApplicationDescripti
c0660 6f 6e 3a 3a 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 43 45 20 21 3d 3d 20 24 6e 61 6d 65 73 70 on::GLOBAL_NAMESPACE.!==.$namesp
c0680 61 63 65 5b 27 69 64 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c ace['id']).{.$this->writeText("\
c06a0 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 65 78 74 28 27 3c 63 6f 6d 6d 65 6e 74 3e n");.$this->writeText('<comment>
c06c0 27 2e 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 64 27 5d 2e 27 3c 2f 63 6f 6d 6d 65 6e 74 3e 27 2c '.$namespace['id'].'</comment>',
c06e0 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 .$options);.}..foreach.($namespa
c0700 63 65 5b 27 63 6f 6d 6d 61 6e 64 73 27 5d 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 ce['commands'].as.$name).{.$this
c0720 2d 3e 77 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 54 ->writeText("\n");.$this->writeT
c0740 65 78 74 28 73 70 72 69 6e 74 66 28 22 20 20 3c 69 6e 66 6f 3e 25 2d 24 7b 77 69 64 74 68 7d 73 ext(sprintf("..<info>%-${width}s
c0760 3c 2f 69 6e 66 6f 3e 20 25 73 22 2c 20 24 6e 61 6d 65 2c 20 24 64 65 73 63 72 69 70 74 69 6f 6e </info>.%s",.$name,.$description
c0780 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 28 24 6e 61 6d 65 29 2d 3e 67 65 74 44 65 73 63 72 69 70 74 ->getCommand($name)->getDescript
c07a0 69 6f 6e 28 29 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 ion()),.$options);.}.}..$this->w
c07c0 72 69 74 65 54 65 78 74 28 22 5c 6e 22 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 riteText("\n");.}.}.....private.
c07e0 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 54 65 78 74 28 24 63 6f 6e 74 65 6e 74 2c 20 61 72 72 function.writeText($content,.arr
c0800 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 24 74 68 69 73 2d 3e ay.$options.=.array()).{.$this->
c0820 77 72 69 74 65 28 0a 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 write(.isset($options['raw_text'
c0840 5d 29 20 26 26 20 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 74 65 78 74 27 5d 20 3f 20 73 74 72 ]).&&.$options['raw_text'].?.str
c0860 69 70 5f 74 61 67 73 28 24 63 6f 6e 74 65 6e 74 29 20 3a 20 24 63 6f 6e 74 65 6e 74 2c 0a 69 73 ip_tags($content).:.$content,.is
c0880 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 6f 75 74 70 75 74 27 5d 29 20 3f 20 21 24 set($options['raw_output']).?.!$
c08a0 6f 70 74 69 6f 6e 73 5b 27 72 61 77 5f 6f 75 74 70 75 74 27 5d 20 3a 20 74 72 75 65 0a 29 3b 0a options['raw_output'].:.true.);.
c08c0 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 66 6f 72 6d 61 }.........private.function.forma
c08e0 74 44 65 66 61 75 6c 74 56 61 6c 75 65 28 24 64 65 66 61 75 6c 74 29 0a 7b 0a 69 66 20 28 76 65 tDefaultValue($default).{.if.(ve
c0900 72 73 69 6f 6e 5f 63 6f 6d 70 61 72 65 28 50 48 50 5f 56 45 52 53 49 4f 4e 2c 20 27 35 2e 34 27 rsion_compare(PHP_VERSION,.'5.4'
c0920 2c 20 27 3c 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 27 5c 2f ,.'<')).{.return.str_replace('\/
c0940 27 2c 20 27 2f 27 2c 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 65 66 61 75 6c 74 29 29 3b 0a ',.'/',.json_encode($default));.
c0960 7d 0a 0a 72 65 74 75 72 6e 20 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 24 64 65 66 61 75 6c 74 2c 20 }..return.json_encode($default,.
c0980 4a 53 4f 4e 5f 55 4e 45 53 43 41 50 45 44 5f 53 4c 41 53 48 45 53 20 7c 20 4a 53 4f 4e 5f 55 4e JSON_UNESCAPED_SLASHES.|.JSON_UN
c09a0 45 53 43 41 50 45 44 5f 55 4e 49 43 4f 44 45 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 ESCAPED_UNICODE);.}.......privat
c09c0 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 61 72 72 61 79 20 e.function.getColumnWidth(array.
c09e0 24 63 6f 6d 6d 61 6e 64 73 29 0a 7b 0a 24 77 69 64 74 68 20 3d 20 30 3b 0a 66 6f 72 65 61 63 68 $commands).{.$width.=.0;.foreach
c0a00 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 77 69 64 74 .($commands.as.$command).{.$widt
c0a20 68 20 3d 20 73 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 h.=.strlen($command->getName()).
c0a40 3e 20 24 77 69 64 74 68 20 3f 20 73 74 72 6c 65 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e >.$width.?.strlen($command->getN
c0a60 61 6d 65 28 29 29 20 3a 20 24 77 69 64 74 68 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 77 69 64 74 ame()).:.$width;.}..return.$widt
c0a80 68 20 2b 20 32 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 h.+.2;.}.}.<?php...........names
c0aa0 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 44 pace.Symfony\Component\Console\D
c0ac0 65 73 63 72 69 70 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 escriptor;..use.Symfony\Componen
c0ae0 74 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f t\Console\Application;.use.Symfo
c0b00 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
c0b20 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
c0b40 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d ole\Input\InputArgument;.use.Sym
c0b60 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
c0b80 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e utDefinition;.use.Symfony\Compon
c0ba0 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 0a ent\Console\Input\InputOption;..
c0bc0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 20 65 78 74 65 6e 64 73 .....class.XmlDescriptor.extends
c0be0 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 .Descriptor.{......public.functi
c0c00 6f 6e 20 67 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 49 6e on.getInputDefinitionDocument(In
c0c20 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 29 0a 7b 0a 24 64 6f putDefinition.$definition).{.$do
c0c40 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 20 27 55 54 46 m.=.new.\DOMDocument('1.0',.'UTF
c0c60 2d 38 27 29 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 -8');.$dom->appendChild($definit
c0c80 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
c0ca0 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
c0cc0 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->
c0ce0 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
c0d00 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 28 each.($definition->getArguments(
c0d20 29 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 70 70 65 6e 64 44 ).as.$argument).{.$this->appendD
c0d40 6f 63 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 73 58 4d 4c 2c 20 24 74 68 69 73 2d 3e 67 65 ocument($argumentsXML,.$this->ge
c0d60 74 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 44 6f 63 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 tInputArgumentDocument($argument
c0d80 29 29 3b 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 ));.}..$definitionXML->appendChi
c0da0 6c 64 28 24 6f 70 74 69 6f 6e 73 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 ld($optionsXML.=.$dom->createEle
c0dc0 6d 65 6e 74 28 27 6f 70 74 69 6f 6e 73 27 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 ment('options'));.foreach.($defi
c0de0 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 nition->getOptions().as.$option)
c0e00 20 7b 0a 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 6f 70 74 69 6f 6e .{.$this->appendDocument($option
c0e20 73 58 4d 4c 2c 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e 44 6f 63 75 6d sXML,.$this->getInputOptionDocum
c0e40 65 6e 74 28 24 6f 70 74 69 6f 6e 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d ent($option));.}..return.$dom;.}
c0e60 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 43 6f 6d 6d 61 6e .......public.function.getComman
c0e80 64 44 6f 63 75 6d 65 6e 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 64 dDocument(Command.$command).{.$d
c0ea0 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 20 27 55 54 om.=.new.\DOMDocument('1.0',.'UT
c0ec0 46 2d 38 27 29 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 F-8');.$dom->appendChild($comman
c0ee0 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
c0f00 61 6e 64 27 29 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 and'));..$command->getSynopsis()
c0f20 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 ;.$command->mergeApplicationDefi
c0f40 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 73 65 74 nition(false);..$commandXML->set
c0f60 41 74 74 72 69 62 75 74 65 28 27 69 64 27 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d Attribute('id',.$command->getNam
c0f80 65 28 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 65 28 e());.$commandXML->setAttribute(
c0fa0 27 6e 61 6d 65 27 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 0a 24 'name',.$command->getName());..$
c0fc0 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 75 73 61 67 65 58 4d commandXML->appendChild($usageXM
c0fe0 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 75 73 61 67 65 27 29 L.=.$dom->createElement('usage')
c1000 29 3b 0a 24 75 73 61 67 65 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e );.$usageXML->appendChild($dom->
c1020 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 73 70 72 69 6e 74 66 28 24 63 6f 6d 6d 61 6e 64 2d createTextNode(sprintf($command-
c1040 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 6d 6d 61 6e 64 >getSynopsis(),.'')));..$command
c1060 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 6e 58 4d 4c XML->appendChild($descriptionXML
c1080 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 72 69 70 74 .=.$dom->createElement('descript
c10a0 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 65 6e 64 43 ion'));.$descriptionXML->appendC
c10c0 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 74 72 5f 72 65 hild($dom->createTextNode(str_re
c10e0 70 6c 61 63 65 28 22 5c 6e 22 2c 20 22 5c 6e 20 22 2c 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 place("\n",."\n.",.$command->get
c1100 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 2d 3e Description())));..$commandXML->
c1120 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 72 65 appendChild($helpXML.=.$dom->cre
c1140 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 3e 61 ateElement('help'));.$helpXML->a
c1160 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 65 28 ppendChild($dom->createTextNode(
c1180 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 63 6f 6d 6d 61 6e str_replace("\n",."\n.",.$comman
c11a0 64 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 d->getProcessedHelp())));..$comm
c11c0 61 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 andXML->appendChild($aliasesXML.
c11e0 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 61 6c 69 61 73 65 73 27 29 =.$dom->createElement('aliases')
c1200 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 );.foreach.($command->getAliases
c1220 28 29 20 61 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 ().as.$alias).{.$aliasesXML->app
c1240 65 6e 64 43 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 endChild($aliasXML.=.$dom->creat
c1260 65 45 6c 65 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 eElement('alias'));.$aliasXML->a
c1280 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 65 28 ppendChild($dom->createTextNode(
c12a0 24 61 6c 69 61 73 29 29 3b 0a 7d 0a 0a 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 20 3d 20 24 74 $alias));.}..$definitionXML.=.$t
c12c0 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 his->getInputDefinitionDocument(
c12e0 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 $command->getNativeDefinition())
c1300 3b 0a 24 74 68 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 ;.$this->appendDocument($command
c1320 58 4d 4c 2c 20 24 64 65 66 69 6e 69 74 69 6f 6e 58 4d 4c 2d 3e 67 65 74 45 6c 65 6d 65 6e 74 73 XML,.$definitionXML->getElements
c1340 42 79 54 61 67 4e 61 6d 65 28 27 64 65 66 69 6e 69 74 69 6f 6e 27 29 2d 3e 69 74 65 6d 28 30 29 ByTagName('definition')->item(0)
c1360 29 3b 0a 0a 72 65 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 );..return.$dom;.}........public
c1380 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 70 70 6c 69 63 61 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 .function.getApplicationDocument
c13a0 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 2c 20 24 6e 61 6d 65 (Application.$application,.$name
c13c0 73 70 61 63 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 space.=.null).{.$dom.=.new.\DOMD
c13e0 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 61 ocument('1.0',.'UTF-8');.$dom->a
c1400 70 70 65 6e 64 43 68 69 6c 64 28 24 72 6f 6f 74 58 6d 6c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 ppendChild($rootXml.=.$dom->crea
c1420 74 65 45 6c 65 6d 65 6e 74 28 27 73 79 6d 66 6f 6e 79 27 29 29 3b 0a 0a 69 66 20 28 24 61 70 70 teElement('symfony'));..if.($app
c1440 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 20 21 3d 3d 20 27 55 4e 4b 4e 4f 57 4e lication->getName().!==.'UNKNOWN
c1460 27 29 20 7b 0a 24 72 6f 6f 74 58 6d 6c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d ').{.$rootXml->setAttribute('nam
c1480 65 27 2c 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 69 66 e',.$application->getName());.if
c14a0 20 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 56 65 72 73 69 6f 6e 28 29 20 21 3d 3d .($application->getVersion().!==
c14c0 20 27 55 4e 4b 4e 4f 57 4e 27 29 20 7b 0a 24 72 6f 6f 74 58 6d 6c 2d 3e 73 65 74 41 74 74 72 69 .'UNKNOWN').{.$rootXml->setAttri
c14e0 62 75 74 65 28 27 76 65 72 73 69 6f 6e 27 2c 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 bute('version',.$application->ge
c1500 74 56 65 72 73 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 0a 24 72 6f 6f 74 58 6d 6c 2d 3e 61 70 70 65 tVersion());.}.}..$rootXml->appe
c1520 6e 64 43 68 69 6c 64 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 ndChild($commandsXML.=.$dom->cre
c1540 61 74 65 45 6c 65 6d 65 6e 74 28 27 63 6f 6d 6d 61 6e 64 73 27 29 29 3b 0a 0a 24 64 65 73 63 72 ateElement('commands'));..$descr
c1560 69 70 74 69 6f 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 iption.=.new.ApplicationDescript
c1580 69 6f 6e 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 6e 61 6d 65 73 70 61 63 65 29 3b 0a 0a ion($application,.$namespace);..
c15a0 69 66 20 28 24 6e 61 6d 65 73 70 61 63 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c 2d 3e if.($namespace).{.$commandsXML->
c15c0 73 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 73 70 61 63 65 27 2c 20 24 6e 61 6d 65 73 setAttribute('namespace',.$names
c15e0 70 61 63 65 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d pace);.}..foreach.($description-
c1600 3e 67 65 74 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 >getCommands().as.$command).{.$t
c1620 68 69 73 2d 3e 61 70 70 65 6e 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 73 58 4d 4c his->appendDocument($commandsXML
c1640 2c 20 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d ,.$this->getCommandDocument($com
c1660 6d 61 6e 64 29 29 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 72 mand));.}..if.(!$namespace).{.$r
c1680 6f 6f 74 58 6d 6c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 6e 61 6d 65 73 70 61 63 65 73 58 ootXml->appendChild($namespacesX
c16a0 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 6d 65 73 70 ML.=.$dom->createElement('namesp
c16c0 61 63 65 73 27 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d aces'));..foreach.($description-
c16e0 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 44 65 >getNamespaces().as.$namespaceDe
c1700 73 63 72 69 70 74 69 6f 6e 29 20 7b 0a 24 6e 61 6d 65 73 70 61 63 65 73 58 4d 4c 2d 3e 61 70 70 scription).{.$namespacesXML->app
c1720 65 6e 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 20 3d 20 24 64 endChild($namespaceArrayXML.=.$d
c1740 6f 6d 2d 3e 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 6e 61 6d 65 73 70 61 63 65 27 29 29 3b om->createElement('namespace'));
c1760 0a 24 6e 61 6d 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 .$namespaceArrayXML->setAttribut
c1780 65 28 27 69 64 27 2c 20 24 6e 61 6d 65 73 70 61 63 65 44 65 73 63 72 69 70 74 69 6f 6e 5b 27 69 e('id',.$namespaceDescription['i
c17a0 64 27 5d 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 70 61 63 65 44 65 73 63 72 69 d']);..foreach.($namespaceDescri
c17c0 70 74 69 6f 6e 5b 27 63 6f 6d 6d 61 6e 64 73 27 5d 20 61 73 20 24 6e 61 6d 65 29 20 7b 0a 24 6e ption['commands'].as.$name).{.$n
c17e0 61 6d 65 73 70 61 63 65 41 72 72 61 79 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 63 amespaceArrayXML->appendChild($c
c1800 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 28 ommandXML.=.$dom->createElement(
c1820 27 63 6f 6d 6d 61 6e 64 27 29 29 3b 0a 24 63 6f 6d 6d 61 6e 64 58 4d 4c 2d 3e 61 70 70 65 6e 64 'command'));.$commandXML->append
c1840 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 6e 61 6d 65 Child($dom->createTextNode($name
c1860 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 72 ));.}.}.}..return.$dom;.}.....pr
c1880 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 otected.function.describeInputAr
c18a0 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 gument(InputArgument.$argument,.
c18c0 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 24 74 68 69 array.$options.=.array()).{.$thi
c18e0 73 2d 3e 77 72 69 74 65 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 s->writeDocument($this->getInput
c1900 41 72 67 75 6d 65 6e 74 44 6f 63 75 6d 65 6e 74 28 24 61 72 67 75 6d 65 6e 74 29 29 3b 0a 7d 0a ArgumentDocument($argument));.}.
c1920 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 ....protected.function.describeI
c1940 6e 70 75 74 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 nputOption(InputOption.$option,.
c1960 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 24 74 68 69 array.$options.=.array()).{.$thi
c1980 73 2d 3e 77 72 69 74 65 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 s->writeDocument($this->getInput
c19a0 4f 70 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 24 6f 70 74 69 6f 6e 29 29 3b 0a 7d 0a 0a 0a 0a 0a OptionDocument($option));.}.....
c19c0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 protected.function.describeInput
c19e0 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 Definition(InputDefinition.$defi
c1a00 6e 69 74 69 6f 6e 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 nition,.array.$options.=.array()
c1a20 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e ).{.$this->writeDocument($this->
c1a40 67 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 24 64 65 66 69 getInputDefinitionDocument($defi
c1a60 6e 69 74 69 6f 6e 29 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 nition));.}.....protected.functi
c1a80 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d on.describeCommand(Command.$comm
c1aa0 61 6e 64 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 and,.array.$options.=.array()).{
c1ac0 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 .$this->writeDocument($this->get
c1ae0 43 6f 6d 6d 61 6e 64 44 6f 63 75 6d 65 6e 74 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 7d 0a 0a 0a CommandDocument($command));.}...
c1b00 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 ..protected.function.describeApp
c1b20 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f lication(Application.$applicatio
c1b40 6e 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 24 n,.array.$options.=.array()).{.$
c1b60 74 68 69 73 2d 3e 77 72 69 74 65 44 6f 63 75 6d 65 6e 74 28 24 74 68 69 73 2d 3e 67 65 74 41 70 this->writeDocument($this->getAp
c1b80 70 6c 69 63 61 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 plicationDocument($application,.
c1ba0 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 isset($options['namespace']).?.$
c1bc0 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 29 29 3b 0a 7d options['namespace'].:.null));.}
c1be0 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 70 70 65 6e 64 44 ........private.function.appendD
c1c00 6f 63 75 6d 65 6e 74 28 5c 44 4f 4d 4e 6f 64 65 20 24 70 61 72 65 6e 74 4e 6f 64 65 2c 20 5c 44 ocument(\DOMNode.$parentNode,.\D
c1c20 4f 4d 4e 6f 64 65 20 24 69 6d 70 6f 72 74 65 64 50 61 72 65 6e 74 29 0a 7b 0a 66 6f 72 65 61 63 OMNode.$importedParent).{.foreac
c1c40 68 20 28 24 69 6d 70 6f 72 74 65 64 50 61 72 65 6e 74 2d 3e 63 68 69 6c 64 4e 6f 64 65 73 20 61 h.($importedParent->childNodes.a
c1c60 73 20 24 63 68 69 6c 64 4e 6f 64 65 29 20 7b 0a 24 70 61 72 65 6e 74 4e 6f 64 65 2d 3e 61 70 70 s.$childNode).{.$parentNode->app
c1c80 65 6e 64 43 68 69 6c 64 28 24 70 61 72 65 6e 74 4e 6f 64 65 2d 3e 6f 77 6e 65 72 44 6f 63 75 6d endChild($parentNode->ownerDocum
c1ca0 65 6e 74 2d 3e 69 6d 70 6f 72 74 4e 6f 64 65 28 24 63 68 69 6c 64 4e 6f 64 65 2c 20 74 72 75 65 ent->importNode($childNode,.true
c1cc0 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e ));.}.}.........private.function
c1ce0 20 77 72 69 74 65 44 6f 63 75 6d 65 6e 74 28 5c 44 4f 4d 44 6f 63 75 6d 65 6e 74 20 24 64 6f 6d .writeDocument(\DOMDocument.$dom
c1d00 29 0a 7b 0a 24 64 6f 6d 2d 3e 66 6f 72 6d 61 74 4f 75 74 70 75 74 20 3d 20 74 72 75 65 3b 0a 24 ).{.$dom->formatOutput.=.true;.$
c1d20 74 68 69 73 2d 3e 77 72 69 74 65 28 24 64 6f 6d 2d 3e 73 61 76 65 58 4d 4c 28 29 29 3b 0a 7d 0a this->write($dom->saveXML());.}.
c1d40 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 49 6e 70 75 74 41 ......private.function.getInputA
c1d60 72 67 75 6d 65 6e 74 44 6f 63 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 rgumentDocument(InputArgument.$a
c1d80 72 67 75 6d 65 6e 74 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 rgument).{.$dom.=.new.\DOMDocume
c1da0 6e 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e nt('1.0',.'UTF-8');..$dom->appen
c1dc0 64 43 68 69 6c 64 28 24 6f 62 6a 65 63 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 dChild($objectXML.=.$dom->create
c1de0 45 6c 65 6d 65 6e 74 28 27 61 72 67 75 6d 65 6e 74 27 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c Element('argument'));.$objectXML
c1e00 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 6d 65 6e 74 ->setAttribute('name',.$argument
c1e20 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 ->getName());.$objectXML->setAtt
c1e40 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 75 6d 65 6e 74 2d ribute('is_required',.$argument-
c1e60 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 6f 62 6a 65 63 74 58 >isRequired().?.1.:.0);.$objectX
c1e80 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 61 72 72 61 79 27 2c 20 24 61 72 ML->setAttribute('is_array',.$ar
c1ea0 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a gument->isArray().?.1.:.0);.$obj
c1ec0 65 63 74 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 6e ectXML->appendChild($description
c1ee0 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 72 XML.=.$dom->createElement('descr
c1f00 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 65 iption'));.$descriptionXML->appe
c1f20 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 61 72 ndChild($dom->createTextNode($ar
c1f40 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 29 3b 0a 0a 24 6f 62 gument->getDescription()));..$ob
c1f60 6a 65 63 74 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 jectXML->appendChild($defaultsXM
c1f80 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
c1fa0 73 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 73 20 3d 20 69 73 5f 61 72 72 61 79 28 24 61 72 67 75 s'));.$defaults.=.is_array($argu
c1fc0 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 24 61 72 67 75 6d 65 6e 74 2d ment->getDefault()).?.$argument-
c1fe0 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 61 72 67 75 6d 65 >getDefault().:.(is_bool($argume
c2000 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 72 5f 65 78 nt->getDefault()).?.array(var_ex
c2020 70 6f 72 74 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 port($argument->getDefault(),.tr
c2040 75 65 29 29 20 3a 20 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 ue)).:.($argument->getDefault().
c2060 3f 20 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 ?.array($argument->getDefault())
c2080 20 3a 20 61 72 72 61 79 28 29 29 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 61 75 6c 74 73 .:.array()));.foreach.($defaults
c20a0 20 61 73 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 70 .as.$default).{.$defaultsXML->ap
c20c0 70 65 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 pendChild($defaultXML.=.$dom->cr
c20e0 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 6c eateElement('default'));.$defaul
c2100 74 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 tXML->appendChild($dom->createTe
c2120 78 74 4e 6f 64 65 28 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 64 6f xtNode($default));.}..return.$do
c2140 6d 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 6e 20 67 65 74 49 m;.}.......private.function.getI
c2160 6e 70 75 74 4f 70 74 69 6f 6e 44 6f 63 75 6d 65 6e 74 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 nputOptionDocument(InputOption.$
c2180 6f 70 74 69 6f 6e 29 0a 7b 0a 24 64 6f 6d 20 3d 20 6e 65 77 20 5c 44 4f 4d 44 6f 63 75 6d 65 6e option).{.$dom.=.new.\DOMDocumen
c21a0 74 28 27 31 2e 30 27 2c 20 27 55 54 46 2d 38 27 29 3b 0a 0a 24 64 6f 6d 2d 3e 61 70 70 65 6e 64 t('1.0',.'UTF-8');..$dom->append
c21c0 43 68 69 6c 64 28 24 6f 62 6a 65 63 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 74 65 45 Child($objectXML.=.$dom->createE
c21e0 6c 65 6d 65 6e 74 28 27 6f 70 74 69 6f 6e 27 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 lement('option'));.$objectXML->s
c2200 65 74 41 74 74 72 69 62 75 74 65 28 27 6e 61 6d 65 27 2c 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e etAttribute('name',.'--'.$option
c2220 2d 3e 67 65 74 4e 61 6d 65 28 29 29 3b 0a 24 70 6f 73 20 3d 20 73 74 72 70 6f 73 28 24 6f 70 74 ->getName());.$pos.=.strpos($opt
c2240 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 2c 20 27 7c 27 29 3b 0a 69 66 20 28 66 61 ion->getShortcut(),.'|');.if.(fa
c2260 6c 73 65 20 21 3d 3d 20 24 70 6f 73 29 20 7b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 lse.!==.$pos).{.$objectXML->setA
c2280 74 74 72 69 62 75 74 65 28 27 73 68 6f 72 74 63 75 74 27 2c 20 27 2d 27 2e 73 75 62 73 74 72 28 ttribute('shortcut',.'-'.substr(
c22a0 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 2c 20 30 2c 20 24 70 6f 73 29 $option->getShortcut(),.0,.$pos)
c22c0 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 73 68 6f );.$objectXML->setAttribute('sho
c22e0 72 74 63 75 74 73 27 2c 20 27 2d 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 2d 27 2c 20 65 78 70 6c 6f rtcuts',.'-'.implode('|-',.explo
c2300 64 65 28 27 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 29 de('|',.$option->getShortcut()))
c2320 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 );.}.else.{.$objectXML->setAttri
c2340 62 75 74 65 28 27 73 68 6f 72 74 63 75 74 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f bute('shortcut',.$option->getSho
c2360 72 74 63 75 74 28 29 20 3f 20 27 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 rtcut().?.'-'.$option->getShortc
c2380 75 74 28 29 20 3a 20 27 27 29 3b 0a 7d 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 ut().:.'');.}.$objectXML->setAtt
c23a0 72 69 62 75 74 65 28 27 61 63 63 65 70 74 5f 76 61 6c 75 65 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e ribute('accept_value',.$option->
c23c0 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 acceptValue().?.1.:.0);.$objectX
c23e0 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 75 74 65 28 27 69 73 5f 76 61 6c 75 65 5f 72 65 71 75 69 ML->setAttribute('is_value_requi
c2400 72 65 64 27 2c 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 28 29 red',.$option->isValueRequired()
c2420 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 73 65 74 41 74 74 72 69 62 .?.1.:.0);.$objectXML->setAttrib
c2440 75 74 65 28 27 69 73 5f 6d 75 6c 74 69 70 6c 65 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 ute('is_multiple',.$option->isAr
c2460 72 61 79 28 29 20 3f 20 31 20 3a 20 30 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 61 70 70 65 ray().?.1.:.0);.$objectXML->appe
c2480 6e 64 43 68 69 6c 64 28 24 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e ndChild($descriptionXML.=.$dom->
c24a0 63 72 65 61 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 73 63 72 69 70 74 69 6f 6e 27 29 29 3b 0a 24 createElement('description'));.$
c24c0 64 65 73 63 72 69 70 74 69 6f 6e 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d descriptionXML->appendChild($dom
c24e0 2d 3e 63 72 65 61 74 65 54 65 78 74 4e 6f 64 65 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 ->createTextNode($option->getDes
c2500 63 72 69 70 74 69 6f 6e 28 29 29 29 3b 0a 0a 69 66 20 28 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 cription()));..if.($option->acce
c2520 70 74 56 61 6c 75 65 28 29 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 20 3d 20 69 73 5f 61 72 72 61 ptValue()).{.$defaults.=.is_arra
c2540 79 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 24 6f 70 74 69 y($option->getDefault()).?.$opti
c2560 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3a 20 28 69 73 5f 62 6f 6f 6c 28 24 6f 70 74 on->getDefault().:.(is_bool($opt
c2580 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3f 20 61 72 72 61 79 28 76 61 72 5f 65 ion->getDefault()).?.array(var_e
c25a0 78 70 6f 72 74 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 xport($option->getDefault(),.tru
c25c0 65 29 29 20 3a 20 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 20 3f 20 61 e)).:.($option->getDefault().?.a
c25e0 72 72 61 79 28 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 29 20 3a 20 61 72 rray($option->getDefault()).:.ar
c2600 72 61 79 28 29 29 29 3b 0a 24 6f 62 6a 65 63 74 58 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 ray()));.$objectXML->appendChild
c2620 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
c2640 65 6e 74 28 27 64 65 66 61 75 6c 74 73 27 29 29 3b 0a 0a 69 66 20 28 21 65 6d 70 74 79 28 24 64 ent('defaults'));..if.(!empty($d
c2660 65 66 61 75 6c 74 73 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 61 75 6c 74 73 20 61 efaults)).{.foreach.($defaults.a
c2680 73 20 24 64 65 66 61 75 6c 74 29 20 7b 0a 24 64 65 66 61 75 6c 74 73 58 4d 4c 2d 3e 61 70 70 65 s.$default).{.$defaultsXML->appe
c26a0 6e 64 43 68 69 6c 64 28 24 64 65 66 61 75 6c 74 58 4d 4c 20 3d 20 24 64 6f 6d 2d 3e 63 72 65 61 ndChild($defaultXML.=.$dom->crea
c26c0 74 65 45 6c 65 6d 65 6e 74 28 27 64 65 66 61 75 6c 74 27 29 29 3b 0a 24 64 65 66 61 75 6c 74 58 teElement('default'));.$defaultX
c26e0 4d 4c 2d 3e 61 70 70 65 6e 64 43 68 69 6c 64 28 24 64 6f 6d 2d 3e 63 72 65 61 74 65 54 65 78 74 ML->appendChild($dom->createText
c2700 4e 6f 64 65 28 24 64 65 66 61 75 6c 74 29 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 Node($default));.}.}.}..return.$
c2720 64 6f 6d 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 dom;.}.}.<?php...........namespa
c2740 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 44 65 73 ce.Symfony\Component\Console\Des
c2760 63 72 69 70 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 criptor;..use.Symfony\Component\
c2780 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 Console\Application;.use.Symfony
c27a0 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 6d 61 \Component\Console\Command\Comma
c27c0 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 6f 6c nd;.use.Symfony\Component\Consol
c27e0 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f e\Input\InputArgument;.use.Symfo
c2800 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
c2820 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e Definition;.use.Symfony\Componen
c2840 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 0a 0a 0a t\Console\Input\InputOption;....
c2860 0a 0a 0a 63 6c 61 73 73 20 4d 61 72 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 20 65 78 74 65 ...class.MarkdownDescriptor.exte
c2880 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 nds.Descriptor.{....protected.fu
c28a0 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 49 6e 70 nction.describeInputArgument(Inp
c28c0 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 24 6f 70 74 utArgument.$argument,.array.$opt
c28e0 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 0a ions.=.array()).{.$this->write(.
c2900 27 2a 2a 27 2e 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 2a 2a 27 2e '**'.$argument->getName().':**'.
c2920 22 5c 6e 5c 6e 22 0a 2e 27 2a 20 4e 61 6d 65 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 "\n\n"..'*.Name:.'.($argument->g
c2940 65 74 4e 61 6d 65 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 49 etName().?:.'<none>')."\n"..'*.I
c2960 73 20 72 65 71 75 69 72 65 64 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 52 65 71 75 s.required:.'.($argument->isRequ
c2980 69 72 65 64 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 ired().?.'yes'.:.'no')."\n"..'*.
c29a0 49 73 20 61 72 72 61 79 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 Is.array:.'.($argument->isArray(
c29c0 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 73 63 72 ).?.'yes'.:.'no')."\n"..'*.Descr
c29e0 69 70 74 69 6f 6e 3a 20 27 2e 28 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 73 63 72 69 70 iption:.'.($argument->getDescrip
c2a00 74 69 6f 6e 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 66 tion().?:.'<none>')."\n"..'*.Def
c2a20 61 75 6c 74 3a 20 60 27 2e 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 76 ault:.`'.str_replace("\n",.'',.v
c2a40 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 65 66 61 75 6c 74 28 ar_export($argument->getDefault(
c2a60 29 2c 20 74 72 75 65 29 29 2e 27 60 27 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 ),.true)).'`'.);.}.....protected
c2a80 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 49 6e .function.describeInputOption(In
c2aa0 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e putOption.$option,.array.$option
c2ac0 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 0a 27 2a 2a s.=.array()).{.$this->write(.'**
c2ae0 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 3a 2a 2a 27 2e 22 5c 6e 5c 6e '.$option->getName().':**'."\n\n
c2b00 22 0a 2e 27 2a 20 4e 61 6d 65 3a 20 60 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d "..'*.Name:.`--'.$option->getNam
c2b20 65 28 29 2e 27 60 27 2e 22 5c 6e 22 0a 2e 27 2a 20 53 68 6f 72 74 63 75 74 3a 20 27 2e 28 24 6f e().'`'."\n"..'*.Shortcut:.'.($o
c2b40 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 3f 20 27 60 2d 27 2e 69 6d 70 6c ption->getShortcut().?.'`-'.impl
c2b60 6f 64 65 28 27 7c 2d 27 2c 20 65 78 70 6c 6f 64 65 28 27 7c 27 2c 20 24 6f 70 74 69 6f 6e 2d 3e ode('|-',.explode('|',.$option->
c2b80 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 29 2e 27 60 27 20 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e getShortcut())).'`'.:.'<none>').
c2ba0 22 5c 6e 22 0a 2e 27 2a 20 41 63 63 65 70 74 20 76 61 6c 75 65 3a 20 27 2e 28 24 6f 70 74 69 6f "\n"..'*.Accept.value:.'.($optio
c2bc0 6e 2d 3e 61 63 63 65 70 74 56 61 6c 75 65 28 29 20 3f 20 27 79 65 73 27 20 3a 20 27 6e 6f 27 29 n->acceptValue().?.'yes'.:.'no')
c2be0 2e 22 5c 6e 22 0a 2e 27 2a 20 49 73 20 76 61 6c 75 65 20 72 65 71 75 69 72 65 64 3a 20 27 2e 28 ."\n"..'*.Is.value.required:.'.(
c2c00 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 79 65 $option->isValueRequired().?.'ye
c2c20 73 27 20 3a 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 49 73 20 6d 75 6c 74 69 70 6c 65 3a s'.:.'no')."\n"..'*.Is.multiple:
c2c40 20 27 2e 28 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 20 3f 20 27 79 65 73 27 20 3a .'.($option->isArray().?.'yes'.:
c2c60 20 27 6e 6f 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 73 63 72 69 70 74 69 6f 6e 3a 20 27 2e 28 .'no')."\n"..'*.Description:.'.(
c2c80 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 20 3f 3a 20 27 3c 6e $option->getDescription().?:.'<n
c2ca0 6f 6e 65 3e 27 29 2e 22 5c 6e 22 0a 2e 27 2a 20 44 65 66 61 75 6c 74 3a 20 60 27 2e 73 74 72 5f one>')."\n"..'*.Default:.`'.str_
c2cc0 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c 20 27 27 2c 20 76 61 72 5f 65 78 70 6f 72 74 28 24 6f 70 replace("\n",.'',.var_export($op
c2ce0 74 69 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 20 74 72 75 65 29 29 2e 27 60 27 0a 29 tion->getDefault(),.true)).'`'.)
c2d00 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 64 65 73 63 72 ;.}.....protected.function.descr
c2d20 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 ibeInputDefinition(InputDefiniti
c2d40 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d on.$definition,.array.$options.=
c2d60 20 61 72 72 61 79 28 29 29 0a 7b 0a 69 66 20 28 24 73 68 6f 77 41 72 67 75 6d 65 6e 74 73 20 3d .array()).{.if.($showArguments.=
c2d80 20 63 6f 75 6e 74 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 73 .count($definition->getArguments
c2da0 28 29 29 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 23 23 23 20 41 72 67 ()).>.0).{.$this->write('###.Arg
c2dc0 75 6d 65 6e 74 73 3a 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d uments:');.foreach.($definition-
c2de0 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 7b 0a >getArguments().as.$argument).{.
c2e00 24 74 68 69 73 2d 3e 77 72 69 74 65 28 22 5c 6e 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 $this->write("\n\n");.$this->wri
c2e20 74 65 28 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 te($this->describeInputArgument(
c2e40 24 61 72 67 75 6d 65 6e 74 29 29 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 63 6f 75 6e 74 28 24 64 65 66 $argument));.}.}..if.(count($def
c2e60 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 29 20 3e 20 30 29 20 7b 0a 69 66 inition->getOptions()).>.0).{.if
c2e80 20 28 24 73 68 6f 77 41 72 67 75 6d 65 6e 74 73 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 .($showArguments).{.$this->write
c2ea0 28 22 5c 6e 5c 6e 22 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 23 23 23 20 4f ("\n\n");.}..$this->write('###.O
c2ec0 70 74 69 6f 6e 73 3a 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d ptions:');.foreach.($definition-
c2ee0 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 74 68 69 >getOptions().as.$option).{.$thi
c2f00 73 2d 3e 77 72 69 74 65 28 22 5c 6e 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 s->write("\n\n");.$this->write($
c2f20 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 70 74 69 6f this->describeInputOption($optio
c2f40 6e 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 6e 63 74 69 6f n));.}.}.}.....protected.functio
c2f60 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 n.describeCommand(Command.$comma
c2f80 6e 64 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 nd,.array.$options.=.array()).{.
c2fa0 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e $command->getSynopsis();.$comman
c2fc0 64 2d 3e 6d 65 72 67 65 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 d->mergeApplicationDefinition(fa
c2fe0 6c 73 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 67 lse);..$this->write(.$command->g
c3000 65 74 4e 61 6d 65 28 29 2e 22 5c 6e 22 0a 2e 73 74 72 5f 72 65 70 65 61 74 28 27 2d 27 2c 20 73 etName()."\n"..str_repeat('-',.s
c3020 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 29 2e 22 5c 6e 5c trlen($command->getName()))."\n\
c3040 6e 22 0a 2e 27 2a 20 44 65 73 63 72 69 70 74 69 6f 6e 3a 20 27 2e 28 24 63 6f 6d 6d 61 6e 64 2d n"..'*.Description:.'.($command-
c3060 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 20 3f 3a 20 27 3c 6e 6f 6e 65 3e 27 29 2e 22 >getDescription().?:.'<none>')."
c3080 5c 6e 22 0a 2e 27 2a 20 55 73 61 67 65 3a 20 60 27 2e 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 53 \n"..'*.Usage:.`'.$command->getS
c30a0 79 6e 6f 70 73 69 73 28 29 2e 27 60 27 2e 22 5c 6e 22 0a 2e 27 2a 20 41 6c 69 61 73 65 73 3a 20 ynopsis().'`'."\n"..'*.Aliases:.
c30c0 27 2e 28 63 6f 75 6e 74 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 '.(count($command->getAliases())
c30e0 20 3f 20 27 60 27 2e 69 6d 70 6c 6f 64 65 28 27 60 2c 20 60 27 2c 20 24 63 6f 6d 6d 61 6e 64 2d .?.'`'.implode('`,.`',.$command-
c3100 3e 67 65 74 41 6c 69 61 73 65 73 28 29 29 2e 27 60 27 20 3a 20 27 3c 6e 6f 6e 65 3e 27 29 0a 29 >getAliases()).'`'.:.'<none>').)
c3120 3b 0a 0a 69 66 20 28 24 68 65 6c 70 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 6f 63 ;..if.($help.=.$command->getProc
c3140 65 73 73 65 64 48 65 6c 70 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 22 5c 6e 5c essedHelp()).{.$this->write("\n\
c3160 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 68 65 6c 70 29 3b 0a 7d 0a 0a 69 66 20 n");.$this->write($help);.}..if.
c3180 28 24 64 65 66 69 6e 69 74 69 6f 6e 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 69 ($definition.=.$command->getNati
c31a0 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 22 veDefinition()).{.$this->write("
c31c0 5c 6e 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 \n\n");.$this->describeInputDefi
c31e0 6e 69 74 69 6f 6e 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 nition($command->getNativeDefini
c3200 74 69 6f 6e 28 29 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 tion());.}.}.....protected.funct
c3220 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 ion.describeApplication(Applicat
c3240 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 ion.$application,.array.$options
c3260 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 .=.array()).{.$describedNamespac
c3280 65 20 3d 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 e.=.isset($options['namespace'])
c32a0 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b .?.$options['namespace'].:.null;
c32c0 0a 24 64 65 73 63 72 69 70 74 69 6f 6e 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 .$description.=.new.ApplicationD
c32e0 65 73 63 72 69 70 74 69 6f 6e 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 escription($application,.$descri
c3300 62 65 64 4e 61 6d 65 73 70 61 63 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 61 70 bedNamespace);..$this->write($ap
c3320 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 22 5c 6e 22 2e 73 74 72 5f 72 65 plication->getName()."\n".str_re
c3340 70 65 61 74 28 27 3d 27 2c 20 73 74 72 6c 65 6e 28 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 67 peat('=',.strlen($application->g
c3360 65 74 4e 61 6d 65 28 29 29 29 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 etName())));..foreach.($descript
c3380 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 20 61 73 20 24 6e 61 6d 65 73 70 61 ion->getNamespaces().as.$namespa
c33a0 63 65 29 20 7b 0a 69 66 20 28 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e ce).{.if.(ApplicationDescription
c33c0 3a 3a 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 43 45 20 21 3d 3d 20 24 6e 61 6d 65 73 70 61 63 ::GLOBAL_NAMESPACE.!==.$namespac
c33e0 65 5b 27 69 64 27 5d 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 22 5c 6e 5c 6e 22 29 3b e['id']).{.$this->write("\n\n");
c3400 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 27 2a 2a 27 2e 24 6e 61 6d 65 73 70 61 63 65 5b 27 69 .$this->write('**'.$namespace['i
c3420 64 27 5d 2e 27 3a 2a 2a 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 22 5c 6e 5c d'].':**');.}..$this->write("\n\
c3440 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 n");.$this->write(implode("\n",.
c3460 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 array_map(function.($commandName
c3480 29 20 7b 0a 72 65 74 75 72 6e 20 27 2a 20 27 2e 24 63 6f 6d 6d 61 6e 64 4e 61 6d 65 3b 0a 7d 20 ).{.return.'*.'.$commandName;.}.
c34a0 2c 20 24 6e 61 6d 65 73 70 61 63 65 5b 27 63 6f 6d 6d 61 6e 64 73 27 5d 29 29 29 3b 0a 7d 0a 0a ,.$namespace['commands'])));.}..
c34c0 66 6f 72 65 61 63 68 20 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e foreach.($description->getComman
c34e0 64 73 28 29 20 61 73 20 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 ds().as.$command).{.$this->write
c3500 28 22 5c 6e 5c 6e 22 29 3b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 24 74 68 69 73 2d 3e 64 65 ("\n\n");.$this->write($this->de
c3520 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 7d 0a 7d 0a 7d 0a scribeCommand($command));.}.}.}.
c3540 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
c3560 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a y\Component\Console\Descriptor;.
c3580 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 41 .use.Symfony\Component\Console\A
c35a0 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e pplication;.use.Symfony\Componen
c35c0 74 5c 43 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 63 t\Console\Command\Command;.....c
c35e0 6c 61 73 73 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 0a 7b 0a 63 6f lass.ApplicationDescription.{.co
c3600 6e 73 74 20 47 4c 4f 42 41 4c 5f 4e 41 4d 45 53 50 41 43 45 20 3d 20 27 5f 67 6c 6f 62 61 6c 27 nst.GLOBAL_NAMESPACE.=.'_global'
c3620 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 0a 0a 0a 0a ;.....private.$application;.....
c3640 70 72 69 76 61 74 65 20 24 6e 61 6d 65 73 70 61 63 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 private.$namespace;.....private.
c3660 24 6e 61 6d 65 73 70 61 63 65 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 6e $namespaces;.....private.$comman
c3680 64 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 6c 69 61 73 65 73 3b 0a 0a 0a 0a 0a 0a 0a ds;.....private.$aliases;.......
c36a0 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 41 70 70 .public.function.__construct(App
c36c0 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 6e 61 6d 65 73 70 61 63 lication.$application,.$namespac
c36e0 65 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d e.=.null).{.$this->application.=
c3700 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 20 .$application;.$this->namespace.
c3720 3d 20 24 6e 61 6d 65 73 70 61 63 65 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 =.$namespace;.}.....public.funct
c3740 69 6f 6e 20 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d ion.getNamespaces().{.if.(null.=
c3760 3d 3d 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 ==.$this->namespaces).{.$this->i
c3780 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 nspectApplication();.}..return.$
c37a0 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 this->namespaces;.}.....public.f
c37c0 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c unction.getCommands().{.if.(null
c37e0 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 29 20 7b 0a 24 74 68 69 73 2d 3e 69 .===.$this->commands).{.$this->i
c3800 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 nspectApplication();.}..return.$
c3820 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 this->commands;.}.........public
c3840 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 .function.getCommand($name).{.if
c3860 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 29 .(!isset($this->commands[$name])
c3880 20 26 26 20 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d .&&.!isset($this->aliases[$name]
c38a0 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
c38c0 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 43 6f 6d 6d 61 6e 64 20 25 73 20 64 6f 65 xception(sprintf('Command.%s.doe
c38e0 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 s.not.exist.',.$name));.}..retur
c3900 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 20 n.isset($this->commands[$name]).
c3920 3f 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 5b 24 6e 61 6d 65 5d 20 3a 20 24 74 68 69 73 ?.$this->commands[$name].:.$this
c3940 2d 3e 61 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e ->aliases[$name];.}..private.fun
c3960 63 74 69 6f 6e 20 69 6e 73 70 65 63 74 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 ction.inspectApplication().{.$th
c3980 69 73 2d 3e 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 74 68 69 73 2d 3e 6e is->commands.=.array();.$this->n
c39a0 61 6d 65 73 70 61 63 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 24 61 6c 6c 20 3d 20 24 74 68 amespaces.=.array();..$all.=.$th
c39c0 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 61 6c 6c 28 24 74 68 69 73 2d 3e 6e 61 6d 65 is->application->all($this->name
c39e0 73 70 61 63 65 20 3f 20 24 74 68 69 73 2d 3e 61 70 70 6c 69 63 61 74 69 6f 6e 2d 3e 66 69 6e 64 space.?.$this->application->find
c3a00 4e 61 6d 65 73 70 61 63 65 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 70 61 63 65 29 20 3a 20 6e 75 Namespace($this->namespace).:.nu
c3a20 6c 6c 29 3b 0a 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 ll);.foreach.($this->sortCommand
c3a40 73 28 24 61 6c 6c 29 20 61 73 20 24 6e 61 6d 65 73 70 61 63 65 20 3d 3e 20 24 63 6f 6d 6d 61 6e s($all).as.$namespace.=>.$comman
c3a60 64 73 29 20 7b 0a 24 6e 61 6d 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 66 6f 72 65 61 63 ds).{.$names.=.array();...foreac
c3a80 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 63 6f 6d 6d 61 6e h.($commands.as.$name.=>.$comman
c3aa0 64 29 20 7b 0a 69 66 20 28 21 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e 61 6d 65 28 29 29 20 7b d).{.if.(!$command->getName()).{
c3ac0 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 4e .continue;.}..if.($command->getN
c3ae0 61 6d 65 28 29 20 3d 3d 3d 20 24 6e 61 6d 65 29 20 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e ame().===.$name).{.$this->comman
c3b00 64 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 ds[$name].=.$command;.}.else.{.$
c3b20 74 68 69 73 2d 3e 61 6c 69 61 73 65 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b this->aliases[$name].=.$command;
c3b40 0a 7d 0a 0a 24 6e 61 6d 65 73 5b 5d 20 3d 20 24 6e 61 6d 65 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e .}..$names[].=.$name;.}..$this->
c3b60 6e 61 6d 65 73 70 61 63 65 73 5b 24 6e 61 6d 65 73 70 61 63 65 5d 20 3d 20 61 72 72 61 79 28 27 namespaces[$namespace].=.array('
c3b80 69 64 27 20 3d 3e 20 24 6e 61 6d 65 73 70 61 63 65 2c 20 27 63 6f 6d 6d 61 6e 64 73 27 20 3d 3e id'.=>.$namespace,.'commands'.=>
c3ba0 20 24 6e 61 6d 65 73 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 .$names);.}.}.......private.func
c3bc0 74 69 6f 6e 20 73 6f 72 74 43 6f 6d 6d 61 6e 64 73 28 61 72 72 61 79 20 24 63 6f 6d 6d 61 6e 64 tion.sortCommands(array.$command
c3be0 73 29 0a 7b 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 s).{.$namespacedCommands.=.array
c3c00 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6d 6d 61 6e 64 73 20 61 73 20 24 6e 61 6d 65 20 ();.foreach.($commands.as.$name.
c3c20 3d 3e 20 24 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 61 70 70 =>.$command).{.$key.=.$this->app
c3c40 6c 69 63 61 74 69 6f 6e 2d 3e 65 78 74 72 61 63 74 4e 61 6d 65 73 70 61 63 65 28 24 6e 61 6d 65 lication->extractNamespace($name
c3c60 2c 20 31 29 3b 0a 69 66 20 28 21 24 6b 65 79 29 20 7b 0a 24 6b 65 79 20 3d 20 27 5f 67 6c 6f 62 ,.1);.if.(!$key).{.$key.=.'_glob
c3c80 61 6c 27 3b 0a 7d 0a 0a 24 6e 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 5b 24 6b 65 79 al';.}..$namespacedCommands[$key
c3ca0 5d 5b 24 6e 61 6d 65 5d 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 6b 73 6f 72 74 28 24 6e 61 ][$name].=.$command;.}.ksort($na
c3cc0 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 mespacedCommands);..foreach.($na
c3ce0 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 20 61 73 20 26 24 63 6f 6d 6d 61 6e 64 73 29 20 mespacedCommands.as.&$commands).
c3d00 7b 0a 6b 73 6f 72 74 28 24 63 6f 6d 6d 61 6e 64 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6e {.ksort($commands);.}..return.$n
c3d20 61 6d 65 73 70 61 63 65 64 43 6f 6d 6d 61 6e 64 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a amespacedCommands;.}.}.<?php....
c3d40 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
c3d60 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 nt\Console\Descriptor;..use.Symf
c3d80 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
c3da0 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
c3dc0 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 6f \Command\Command;.use.Symfony\Co
c3de0 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d mponent\Console\Input\InputArgum
c3e00 65 6e 74 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f ent;.use.Symfony\Component\Conso
c3e20 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 73 65 20 53 79 le\Input\InputDefinition;.use.Sy
c3e40 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
c3e60 70 75 74 4f 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 putOption;.use.Symfony\Component
c3e80 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;
c3ea0 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 44 65 73 63 72 69 70 74 6f 72 20 69 .....abstract.class.Descriptor.i
c3ec0 6d 70 6c 65 6d 65 6e 74 73 20 44 65 73 63 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a mplements.DescriptorInterface.{.
c3ee0 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 ...private.$output;.....public.f
c3f00 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 unction.describe(OutputInterface
c3f20 20 24 6f 75 74 70 75 74 2c 20 24 6f 62 6a 65 63 74 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e .$output,.$object,.array.$option
c3f40 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 s.=.array()).{.$this->output.=.$
c3f60 6f 75 74 70 75 74 3b 0a 0a 73 77 69 74 63 68 20 28 74 72 75 65 29 20 7b 0a 63 61 73 65 20 24 6f output;..switch.(true).{.case.$o
c3f80 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3a 0a bject.instanceof.InputArgument:.
c3fa0 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 24 6f 62 $this->describeInputArgument($ob
c3fc0 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 24 6f 62 ject,.$options);.break;.case.$ob
c3fe0 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 4f 70 74 69 6f 6e 3a 0a 24 74 68 ject.instanceof.InputOption:.$th
c4000 69 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 24 6f 62 6a 65 63 74 2c is->describeInputOption($object,
c4020 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 .$options);.break;.case.$object.
c4040 69 6e 73 74 61 6e 63 65 6f 66 20 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3a 0a 24 74 68 69 instanceof.InputDefinition:.$thi
c4060 73 2d 3e 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 28 24 6f 62 6a 65 s->describeInputDefinition($obje
c4080 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 24 6f 62 6a 65 ct,.$options);.break;.case.$obje
c40a0 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 6d 61 6e 64 3a 0a 24 74 68 69 73 2d 3e 64 65 ct.instanceof.Command:.$this->de
c40c0 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 scribeCommand($object,.$options)
c40e0 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 24 6f 62 6a 65 63 74 20 69 6e 73 74 61 6e 63 65 6f 66 ;.break;.case.$object.instanceof
c4100 20 41 70 70 6c 69 63 61 74 69 6f 6e 3a 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 62 65 41 70 70 .Application:.$this->describeApp
c4120 6c 69 63 61 74 69 6f 6e 28 24 6f 62 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 62 72 65 lication($object,.$options);.bre
c4140 61 6b 3b 0a 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 ak;.default:.throw.new.\InvalidA
c4160 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 4f 62 6a 65 63 74 rgumentException(sprintf('Object
c4180 20 6f 66 20 74 79 70 65 20 22 25 73 22 20 69 73 20 6e 6f 74 20 64 65 73 63 72 69 62 61 62 6c 65 .of.type."%s".is.not.describable
c41a0 2e 27 2c 20 67 65 74 5f 63 6c 61 73 73 28 24 6f 62 6a 65 63 74 29 29 29 3b 0a 7d 0a 7d 0a 0a 0a .',.get_class($object)));.}.}...
c41c0 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 77 72 69 74 65 28 24 63 .....protected.function.write($c
c41e0 6f 6e 74 65 6e 74 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 74 ontent,.$decorated.=.false).{.$t
c4200 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 63 6f 6e 74 65 6e 74 2c 20 66 61 6c his->output->write($content,.fal
c4220 73 65 2c 20 24 64 65 63 6f 72 61 74 65 64 20 3f 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 se,.$decorated.?.OutputInterface
c4240 3a 3a 4f 55 54 50 55 54 5f 4e 4f 52 4d 41 4c 20 3a 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 ::OUTPUT_NORMAL.:.OutputInterfac
c4260 65 3a 3a 4f 55 54 50 55 54 5f 52 41 57 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 e::OUTPUT_RAW);.}..........abstr
c4280 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 act.protected.function.describeI
c42a0 6e 70 75 74 41 72 67 75 6d 65 6e 74 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 nputArgument(InputArgument.$argu
c42c0 6d 65 6e 74 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 3b ment,.array.$options.=.array());
c42e0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e ..........abstract.protected.fun
c4300 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f ction.describeInputOption(InputO
c4320 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 ption.$option,.array.$options.=.
c4340 61 72 72 61 79 28 29 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 array());..........abstract.prot
c4360 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 66 69 ected.function.describeInputDefi
c4380 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 nition(InputDefinition.$definiti
c43a0 6f 6e 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 3b 0a 0a on,.array.$options.=.array());..
c43c0 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 ........abstract.protected.funct
c43e0 69 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d ion.describeCommand(Command.$com
c4400 6d 61 6e 64 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 3b mand,.array.$options.=.array());
c4420 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e ..........abstract.protected.fun
c4440 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 ction.describeApplication(Applic
c4460 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 69 6f 6e 2c 20 61 72 72 61 79 20 24 6f 70 74 69 6f ation.$application,.array.$optio
c4480 6e 73 20 3d 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a ns.=.array());.}.<?php..........
c44a0 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
c44c0 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f sole\Descriptor;..use.Symfony\Co
c44e0 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
c4500 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
c4520 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e nd\Command;.use.Symfony\Componen
c4540 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 3b 0a 75 t\Console\Input\InputArgument;.u
c4560 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
c4580 75 74 5c 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c ut\InputDefinition;.use.Symfony\
c45a0 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 49 6e 70 75 74 5c 49 6e 70 75 74 4f 70 74 Component\Console\Input\InputOpt
c45c0 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 20 ion;.......class.JsonDescriptor.
c45e0 65 78 74 65 6e 64 73 20 44 65 73 63 72 69 70 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 extends.Descriptor.{....protecte
c4600 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 d.function.describeInputArgument
c4620 28 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 2c 20 61 72 72 61 79 20 (InputArgument.$argument,.array.
c4640 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 $options.=.array()).{.$this->wri
c4660 74 65 44 61 74 61 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 44 61 teData($this->getInputArgumentDa
c4680 74 61 28 24 61 72 67 75 6d 65 6e 74 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a ta($argument),.$options);.}.....
c46a0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 protected.function.describeInput
c46c0 4f 70 74 69 6f 6e 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 6f 70 74 69 6f 6e 2c 20 61 72 72 61 Option(InputOption.$option,.arra
c46e0 79 20 24 6f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 y.$options.=.array()).{.$this->w
c4700 72 69 74 65 44 61 74 61 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e 44 61 riteData($this->getInputOptionDa
c4720 74 61 28 24 6f 70 74 69 6f 6e 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 ta($option),.$options);.}.....pr
c4740 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 49 6e 70 75 74 44 65 otected.function.describeInputDe
c4760 66 69 6e 69 74 69 6f 6e 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 finition(InputDefinition.$defini
c4780 74 69 6f 6e 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 tion,.array.$options.=.array()).
c47a0 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 44 61 74 61 28 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 {.$this->writeData($this->getInp
c47c0 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 61 74 61 28 24 64 65 66 69 6e 69 74 69 6f 6e 29 2c 20 24 utDefinitionData($definition),.$
c47e0 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 options);.}.....protected.functi
c4800 6f 6e 20 64 65 73 63 72 69 62 65 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d on.describeCommand(Command.$comm
c4820 61 6e 64 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 and,.array.$options.=.array()).{
c4840 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 44 61 74 61 28 24 74 68 69 73 2d 3e 67 65 74 43 6f 6d 6d .$this->writeData($this->getComm
c4860 61 6e 64 44 61 74 61 28 24 63 6f 6d 6d 61 6e 64 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a andData($command),.$options);.}.
c4880 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 41 ....protected.function.describeA
c48a0 70 70 6c 69 63 61 74 69 6f 6e 28 41 70 70 6c 69 63 61 74 69 6f 6e 20 24 61 70 70 6c 69 63 61 74 pplication(Application.$applicat
c48c0 69 6f 6e 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 ion,.array.$options.=.array()).{
c48e0 0a 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 20 3d 20 69 73 73 65 74 28 24 6f 70 .$describedNamespace.=.isset($op
c4900 74 69 6f 6e 73 5b 27 6e 61 6d 65 73 70 61 63 65 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 tions['namespace']).?.$options['
c4920 6e 61 6d 65 73 70 61 63 65 27 5d 20 3a 20 6e 75 6c 6c 3b 0a 24 64 65 73 63 72 69 70 74 69 6f 6e namespace'].:.null;.$description
c4940 20 3d 20 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 73 63 72 69 70 74 69 6f 6e 28 24 61 .=.new.ApplicationDescription($a
c4960 70 70 6c 69 63 61 74 69 6f 6e 2c 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 pplication,.$describedNamespace)
c4980 3b 0a 24 63 6f 6d 6d 61 6e 64 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 ;.$commands.=.array();..foreach.
c49a0 28 24 64 65 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 43 6f 6d 6d 61 6e 64 73 28 29 20 61 73 20 ($description->getCommands().as.
c49c0 24 63 6f 6d 6d 61 6e 64 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 73 5b 5d 20 3d 20 24 74 68 69 73 2d $command).{.$commands[].=.$this-
c49e0 3e 67 65 74 43 6f 6d 6d 61 6e 64 44 61 74 61 28 24 63 6f 6d 6d 61 6e 64 29 3b 0a 7d 0a 0a 24 64 >getCommandData($command);.}..$d
c4a00 61 74 61 20 3d 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 0a 3f 20 61 72 72 61 ata.=.$describedNamespace.?.arra
c4a20 79 28 27 63 6f 6d 6d 61 6e 64 73 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 27 6e 61 6d 65 y('commands'.=>.$commands,.'name
c4a40 73 70 61 63 65 27 20 3d 3e 20 24 64 65 73 63 72 69 62 65 64 4e 61 6d 65 73 70 61 63 65 29 0a 3a space'.=>.$describedNamespace).:
c4a60 20 61 72 72 61 79 28 27 63 6f 6d 6d 61 6e 64 73 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 73 2c 20 .array('commands'.=>.$commands,.
c4a80 27 6e 61 6d 65 73 70 61 63 65 73 27 20 3d 3e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 64 65 'namespaces'.=>.array_values($de
c4aa0 73 63 72 69 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 73 70 61 63 65 73 28 29 29 29 3b 0a 0a 24 scription->getNamespaces()));..$
c4ac0 74 68 69 73 2d 3e 77 72 69 74 65 44 61 74 61 28 24 64 61 74 61 2c 20 24 6f 70 74 69 6f 6e 73 29 this->writeData($data,.$options)
c4ae0 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 77 72 ;.}..........private.function.wr
c4b00 69 74 65 44 61 74 61 28 61 72 72 61 79 20 24 64 61 74 61 2c 20 61 72 72 61 79 20 24 6f 70 74 69 iteData(array.$data,.array.$opti
c4b20 6f 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 77 72 69 74 65 28 6a 73 6f 6e 5f 65 6e 63 6f 64 65 28 ons).{.$this->write(json_encode(
c4b40 24 64 61 74 61 2c 20 69 73 73 65 74 28 24 6f 70 74 69 6f 6e 73 5b 27 6a 73 6f 6e 5f 65 6e 63 6f $data,.isset($options['json_enco
c4b60 64 69 6e 67 27 5d 29 20 3f 20 24 6f 70 74 69 6f 6e 73 5b 27 6a 73 6f 6e 5f 65 6e 63 6f 64 69 6e ding']).?.$options['json_encodin
c4b80 67 27 5d 20 3a 20 30 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 g'].:.0));.}.......private.funct
c4ba0 69 6f 6e 20 67 65 74 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 44 61 74 61 28 49 6e 70 75 74 41 72 ion.getInputArgumentData(InputAr
c4bc0 67 75 6d 65 6e 74 20 24 61 72 67 75 6d 65 6e 74 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 gument.$argument).{.return.array
c4be0 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 4e 61 6d 65 28 29 (.'name'.=>.$argument->getName()
c4c00 2c 0a 27 69 73 5f 72 65 71 75 69 72 65 64 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 69 73 ,.'is_required'.=>.$argument->is
c4c20 52 65 71 75 69 72 65 64 28 29 2c 0a 27 69 73 5f 61 72 72 61 79 27 20 3d 3e 20 24 61 72 67 75 6d Required(),.'is_array'.=>.$argum
c4c40 65 6e 74 2d 3e 69 73 41 72 72 61 79 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e ent->isArray(),.'description'.=>
c4c60 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 2c 0a 27 64 .$argument->getDescription(),.'d
c4c80 65 66 61 75 6c 74 27 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 2d 3e 67 65 74 44 65 66 61 75 6c 74 efault'.=>.$argument->getDefault
c4ca0 28 29 2c 0a 29 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 6e 20 (),.);.}.......private.function.
c4cc0 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e 44 61 74 61 28 49 6e 70 75 74 4f 70 74 69 6f 6e 20 24 getInputOptionData(InputOption.$
c4ce0 6f 70 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d option).{.return.array(.'name'.=
c4d00 3e 20 27 2d 2d 27 2e 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 73 68 6f 72 >.'--'.$option->getName(),.'shor
c4d20 74 63 75 74 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 20 tcut'.=>.$option->getShortcut().
c4d40 3f 20 27 2d 27 2e 69 6d 70 6c 6f 64 65 28 27 7c 2d 27 2c 20 65 78 70 6c 6f 64 65 28 27 7c 27 2c ?.'-'.implode('|-',.explode('|',
c4d60 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 53 68 6f 72 74 63 75 74 28 29 29 29 20 3a 20 27 27 2c 0a .$option->getShortcut())).:.'',.
c4d80 27 61 63 63 65 70 74 5f 76 61 6c 75 65 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 61 63 63 65 70 'accept_value'.=>.$option->accep
c4da0 74 56 61 6c 75 65 28 29 2c 0a 27 69 73 5f 76 61 6c 75 65 5f 72 65 71 75 69 72 65 64 27 20 3d 3e tValue(),.'is_value_required'.=>
c4dc0 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 28 29 2c 0a 27 69 73 .$option->isValueRequired(),.'is
c4de0 5f 6d 75 6c 74 69 70 6c 65 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 69 73 41 72 72 61 79 28 29 _multiple'.=>.$option->isArray()
c4e00 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e 20 24 6f 70 74 69 6f 6e 2d 3e 67 65 74 44 ,.'description'.=>.$option->getD
c4e20 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 0a 27 64 65 66 61 75 6c 74 27 20 3d 3e 20 24 6f 70 74 69 escription(),.'default'.=>.$opti
c4e40 6f 6e 2d 3e 67 65 74 44 65 66 61 75 6c 74 28 29 2c 0a 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 on->getDefault(),.);.}.......pri
c4e60 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e vate.function.getInputDefinition
c4e80 44 61 74 61 28 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 20 24 64 65 66 69 6e 69 74 69 6f 6e Data(InputDefinition.$definition
c4ea0 29 0a 7b 0a 24 69 6e 70 75 74 41 72 67 75 6d 65 6e 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 ).{.$inputArguments.=.array();.f
c4ec0 6f 72 65 61 63 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 41 72 67 75 6d 65 6e 74 oreach.($definition->getArgument
c4ee0 73 28 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 61 72 67 75 6d 65 6e 74 29 20 7b 0a 24 69 6e s().as.$name.=>.$argument).{.$in
c4f00 70 75 74 41 72 67 75 6d 65 6e 74 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 putArguments[$name].=.$this->get
c4f20 49 6e 70 75 74 41 72 67 75 6d 65 6e 74 44 61 74 61 28 24 61 72 67 75 6d 65 6e 74 29 3b 0a 7d 0a InputArgumentData($argument);.}.
c4f40 0a 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 .$inputOptions.=.array();.foreac
c4f60 68 20 28 24 64 65 66 69 6e 69 74 69 6f 6e 2d 3e 67 65 74 4f 70 74 69 6f 6e 73 28 29 20 61 73 20 h.($definition->getOptions().as.
c4f80 24 6e 61 6d 65 20 3d 3e 20 24 6f 70 74 69 6f 6e 29 20 7b 0a 24 69 6e 70 75 74 4f 70 74 69 6f 6e $name.=>.$option).{.$inputOption
c4fa0 73 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 49 6e 70 75 74 4f 70 74 69 6f 6e s[$name].=.$this->getInputOption
c4fc0 44 61 74 61 28 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 27 Data($option);.}..return.array('
c4fe0 61 72 67 75 6d 65 6e 74 73 27 20 3d 3e 20 24 69 6e 70 75 74 41 72 67 75 6d 65 6e 74 73 2c 20 27 arguments'.=>.$inputArguments,.'
c5000 6f 70 74 69 6f 6e 73 27 20 3d 3e 20 24 69 6e 70 75 74 4f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a options'.=>.$inputOptions);.}...
c5020 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 44 ....private.function.getCommandD
c5040 61 74 61 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a 24 63 6f 6d 6d 61 6e 64 ata(Command.$command).{.$command
c5060 2d 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 3b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 6d 65 72 67 65 ->getSynopsis();.$command->merge
c5080 41 70 70 6c 69 63 61 74 69 6f 6e 44 65 66 69 6e 69 74 69 6f 6e 28 66 61 6c 73 65 29 3b 0a 0a 72 ApplicationDefinition(false);..r
c50a0 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 6e 61 6d 65 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d eturn.array(.'name'.=>.$command-
c50c0 3e 67 65 74 4e 61 6d 65 28 29 2c 0a 27 75 73 61 67 65 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d >getName(),.'usage'.=>.$command-
c50e0 3e 67 65 74 53 79 6e 6f 70 73 69 73 28 29 2c 0a 27 64 65 73 63 72 69 70 74 69 6f 6e 27 20 3d 3e >getSynopsis(),.'description'.=>
c5100 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 44 65 73 63 72 69 70 74 69 6f 6e 28 29 2c 0a 27 68 65 .$command->getDescription(),.'he
c5120 6c 70 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 50 72 6f 63 65 73 73 65 64 48 65 6c lp'.=>.$command->getProcessedHel
c5140 70 28 29 2c 0a 27 61 6c 69 61 73 65 73 27 20 3d 3e 20 24 63 6f 6d 6d 61 6e 64 2d 3e 67 65 74 41 p(),.'aliases'.=>.$command->getA
c5160 6c 69 61 73 65 73 28 29 2c 0a 27 64 65 66 69 6e 69 74 69 6f 6e 27 20 3d 3e 20 24 74 68 69 73 2d liases(),.'definition'.=>.$this-
c5180 3e 67 65 74 49 6e 70 75 74 44 65 66 69 6e 69 74 69 6f 6e 44 61 74 61 28 24 63 6f 6d 6d 61 6e 64 >getInputDefinitionData($command
c51a0 2d 3e 67 65 74 4e 61 74 69 76 65 44 65 66 69 6e 69 74 69 6f 6e 28 29 29 2c 0a 29 3b 0a 7d 0a 7d ->getNativeDefinition()),.);.}.}
c51c0 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
c51e0 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 3b 0a 0a 0a 0a ny\Component\Console\Helper;....
c5200 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 0a 7b .....interface.HelperInterface.{
c5220 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 48 65 6c 70 65 ........public.function.setHelpe
c5240 72 53 65 74 28 48 65 6c 70 65 72 53 65 74 20 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c rSet(HelperSet.$helperSet.=.null
c5260 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 67 65 74 48 65 );.........public.function.getHe
c5280 6c 70 65 72 53 65 74 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 lperSet();.........public.functi
c52a0 6f 6e 20 67 65 74 4e 61 6d 65 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a on.getName();.}.<?php...........
c52c0 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 73 namespace.Symfony\Component\Cons
c52e0 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 ole\Helper;..use.Symfony\Compone
c5300 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
c5320 65 3b 0a 75 73 65 20 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 3b e;.use.InvalidArgumentException;
c5340 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 54 61 62 6c 65 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 .......class.TableHelper.extends
c5360 20 48 65 6c 70 65 72 0a 7b 0a 63 6f 6e 73 74 20 4c 41 59 4f 55 54 5f 44 45 46 41 55 4c 54 20 3d .Helper.{.const.LAYOUT_DEFAULT.=
c5380 20 30 3b 0a 63 6f 6e 73 74 20 4c 41 59 4f 55 54 5f 42 4f 52 44 45 52 4c 45 53 53 20 3d 20 31 3b .0;.const.LAYOUT_BORDERLESS.=.1;
c53a0 0a 63 6f 6e 73 74 20 4c 41 59 4f 55 54 5f 43 4f 4d 50 41 43 54 20 3d 20 32 3b 0a 0a 0a 0a 0a 0a .const.LAYOUT_COMPACT.=.2;......
c53c0 0a 70 72 69 76 61 74 65 20 24 68 65 61 64 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a .private.$headers.=.array();....
c53e0 0a 0a 0a 70 72 69 76 61 74 65 20 24 72 6f 77 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 70 ...private.$rows.=.array();....p
c5400 72 69 76 61 74 65 20 24 70 61 64 64 69 6e 67 43 68 61 72 3b 0a 70 72 69 76 61 74 65 20 24 68 6f rivate.$paddingChar;.private.$ho
c5420 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 3b 0a 70 72 69 76 61 74 65 20 24 76 65 72 rizontalBorderChar;.private.$ver
c5440 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 3b 0a 70 72 69 76 61 74 65 20 24 63 72 6f 73 73 69 ticalBorderChar;.private.$crossi
c5460 6e 67 43 68 61 72 3b 0a 70 72 69 76 61 74 65 20 24 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 ngChar;.private.$cellHeaderForma
c5480 74 3b 0a 70 72 69 76 61 74 65 20 24 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 3b 0a 70 72 69 76 61 t;.private.$cellRowFormat;.priva
c54a0 74 65 20 24 63 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 3b 0a 70 72 69 76 61 74 te.$cellRowContentFormat;.privat
c54c0 65 20 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 3b 0a 70 72 69 76 61 74 65 20 24 70 61 64 54 79 70 e.$borderFormat;.private.$padTyp
c54e0 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6c 75 6d 6e 57 69 64 74 68 73 20 3d e;.......private.$columnWidths.=
c5500 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6e 75 6d 62 65 72 4f .array();.......private.$numberO
c5520 66 43 6f 6c 75 6d 6e 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b 0a 0a fColumns;.....private.$output;..
c5540 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 0a public.function.__construct().{.
c5560 24 74 68 69 73 2d 3e 73 65 74 4c 61 79 6f 75 74 28 73 65 6c 66 3a 3a 4c 41 59 4f 55 54 5f 44 45 $this->setLayout(self::LAYOUT_DE
c5580 46 41 55 4c 54 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 FAULT);.}.........public.functio
c55a0 6e 20 73 65 74 4c 61 79 6f 75 74 28 24 6c 61 79 6f 75 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 n.setLayout($layout).{.switch.($
c55c0 6c 61 79 6f 75 74 29 20 7b 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4c 41 59 4f 55 54 5f 42 4f 52 44 layout).{.case.self::LAYOUT_BORD
c55e0 45 52 4c 45 53 53 3a 0a 24 74 68 69 73 0a 2d 3e 73 65 74 50 61 64 64 69 6e 67 43 68 61 72 28 27 ERLESS:.$this.->setPaddingChar('
c5600 20 27 29 0a 2d 3e 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 27 3d .').->setHorizontalBorderChar('=
c5620 27 29 0a 2d 3e 73 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 28 27 20 27 29 0a ').->setVerticalBorderChar('.').
c5640 2d 3e 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 74 43 65 6c 6c ->setCrossingChar('.').->setCell
c5660 48 65 61 64 65 72 46 6f 72 6d 61 74 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 29 0a HeaderFormat('<info>%s</info>').
c5680 2d 3e 73 65 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 28 27 25 73 27 29 0a 2d 3e 73 65 74 43 65 ->setCellRowFormat('%s').->setCe
c56a0 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 28 27 20 25 73 20 27 29 0a 2d 3e 73 65 74 llRowContentFormat('.%s.').->set
c56c0 42 6f 72 64 65 72 46 6f 72 6d 61 74 28 27 25 73 27 29 0a 2d 3e 73 65 74 50 61 64 54 79 70 65 28 BorderFormat('%s').->setPadType(
c56e0 53 54 52 5f 50 41 44 5f 52 49 47 48 54 29 0a 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 73 65 STR_PAD_RIGHT).;.break;..case.se
c5700 6c 66 3a 3a 4c 41 59 4f 55 54 5f 43 4f 4d 50 41 43 54 3a 0a 24 74 68 69 73 0a 2d 3e 73 65 74 50 lf::LAYOUT_COMPACT:.$this.->setP
c5720 61 64 64 69 6e 67 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 74 48 6f 72 69 7a 6f 6e 74 61 6c 42 addingChar('.').->setHorizontalB
c5740 6f 72 64 65 72 43 68 61 72 28 27 27 29 0a 2d 3e 73 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 orderChar('').->setVerticalBorde
c5760 72 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 72 28 27 27 29 rChar('.').->setCrossingChar('')
c5780 0a 2d 3e 73 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 27 3c 69 6e 66 6f 3e 25 73 .->setCellHeaderFormat('<info>%s
c57a0 3c 2f 69 6e 66 6f 3e 27 29 0a 2d 3e 73 65 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 28 27 25 73 </info>').->setCellRowFormat('%s
c57c0 27 29 0a 2d 3e 73 65 74 43 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 28 27 25 73 ').->setCellRowContentFormat('%s
c57e0 27 29 0a 2d 3e 73 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 74 28 27 25 73 27 29 0a 2d 3e 73 65 74 ').->setBorderFormat('%s').->set
c5800 50 61 64 54 79 70 65 28 53 54 52 5f 50 41 44 5f 52 49 47 48 54 29 0a 3b 0a 62 72 65 61 6b 3b 0a PadType(STR_PAD_RIGHT).;.break;.
c5820 0a 63 61 73 65 20 73 65 6c 66 3a 3a 4c 41 59 4f 55 54 5f 44 45 46 41 55 4c 54 3a 0a 24 74 68 69 .case.self::LAYOUT_DEFAULT:.$thi
c5840 73 0a 2d 3e 73 65 74 50 61 64 64 69 6e 67 43 68 61 72 28 27 20 27 29 0a 2d 3e 73 65 74 48 6f 72 s.->setPaddingChar('.').->setHor
c5860 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 27 2d 27 29 0a 2d 3e 73 65 74 56 65 72 74 izontalBorderChar('-').->setVert
c5880 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 28 27 7c 27 29 0a 2d 3e 73 65 74 43 72 6f 73 73 69 6e icalBorderChar('|').->setCrossin
c58a0 67 43 68 61 72 28 27 2b 27 29 0a 2d 3e 73 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 gChar('+').->setCellHeaderFormat
c58c0 28 27 3c 69 6e 66 6f 3e 25 73 3c 2f 69 6e 66 6f 3e 27 29 0a 2d 3e 73 65 74 43 65 6c 6c 52 6f 77 ('<info>%s</info>').->setCellRow
c58e0 46 6f 72 6d 61 74 28 27 25 73 27 29 0a 2d 3e 73 65 74 43 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 Format('%s').->setCellRowContent
c5900 46 6f 72 6d 61 74 28 27 20 25 73 20 27 29 0a 2d 3e 73 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 74 Format('.%s.').->setBorderFormat
c5920 28 27 25 73 27 29 0a 2d 3e 73 65 74 50 61 64 54 79 70 65 28 53 54 52 5f 50 41 44 5f 52 49 47 48 ('%s').->setPadType(STR_PAD_RIGH
c5940 54 29 0a 3b 0a 62 72 65 61 6b 3b 0a 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 T).;.break;..default:.throw.new.
c5960 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
c5980 28 27 49 6e 76 61 6c 69 64 20 74 61 62 6c 65 20 6c 61 79 6f 75 74 20 22 25 73 22 2e 27 2c 20 24 ('Invalid.table.layout."%s".',.$
c59a0 6c 61 79 6f 75 74 29 29 3b 0a 62 72 65 61 6b 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 layout));.break;.};..return.$thi
c59c0 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 48 65 61 64 65 72 73 s;.}..public.function.setHeaders
c59e0 28 61 72 72 61 79 20 24 68 65 61 64 65 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 61 64 65 72 (array.$headers).{.$this->header
c5a00 73 20 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 68 65 61 64 65 72 73 29 3b 0a 0a 72 65 74 s.=.array_values($headers);..ret
c5a20 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 65 urn.$this;.}..public.function.se
c5a40 74 52 6f 77 73 28 61 72 72 61 79 20 24 72 6f 77 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 tRows(array.$rows).{.$this->rows
c5a60 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 61 64 64 52 6f .=.array();..return.$this->addRo
c5a80 77 73 28 24 72 6f 77 73 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 ws($rows);.}..public.function.ad
c5aa0 64 52 6f 77 73 28 61 72 72 61 79 20 24 72 6f 77 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 72 dRows(array.$rows).{.foreach.($r
c5ac0 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 52 6f 77 28 24 72 6f ows.as.$row).{.$this->addRow($ro
c5ae0 77 29 3b 0a 7d 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 w);.}..return.$this;.}..public.f
c5b00 75 6e 63 74 69 6f 6e 20 61 64 64 52 6f 77 28 61 72 72 61 79 20 24 72 6f 77 29 0a 7b 0a 24 74 68 unction.addRow(array.$row).{.$th
c5b20 69 73 2d 3e 72 6f 77 73 5b 5d 20 3d 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 24 72 6f 77 29 3b is->rows[].=.array_values($row);
c5b40 0a 0a 24 6b 65 79 73 20 3d 20 61 72 72 61 79 5f 6b 65 79 73 28 24 74 68 69 73 2d 3e 72 6f 77 73 ..$keys.=.array_keys($this->rows
c5b60 29 3b 0a 24 72 6f 77 4b 65 79 20 3d 20 61 72 72 61 79 5f 70 6f 70 28 24 6b 65 79 73 29 3b 0a 0a );.$rowKey.=.array_pop($keys);..
c5b80 66 6f 72 65 61 63 68 20 28 24 72 6f 77 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 63 65 6c 6c 56 61 foreach.($row.as.$key.=>.$cellVa
c5ba0 6c 75 65 29 20 7b 0a 69 66 20 28 21 73 74 72 73 74 72 28 24 63 65 6c 6c 56 61 6c 75 65 2c 20 22 lue).{.if.(!strstr($cellValue,."
c5bc0 5c 6e 22 29 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6c 69 6e 65 73 20 3d 20 65 78 \n")).{.continue;.}..$lines.=.ex
c5be0 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 63 65 6c 6c 56 61 6c 75 65 29 3b 0a 24 74 68 69 73 2d 3e plode("\n",.$cellValue);.$this->
c5c00 72 6f 77 73 5b 24 72 6f 77 4b 65 79 5d 5b 24 6b 65 79 5d 20 3d 20 24 6c 69 6e 65 73 5b 30 5d 3b rows[$rowKey][$key].=.$lines[0];
c5c20 0a 75 6e 73 65 74 28 24 6c 69 6e 65 73 5b 30 5d 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6c 69 .unset($lines[0]);..foreach.($li
c5c40 6e 65 73 20 61 73 20 24 6c 69 6e 65 4b 65 79 20 3d 3e 20 24 6c 69 6e 65 29 20 7b 0a 24 6e 65 78 nes.as.$lineKey.=>.$line).{.$nex
c5c60 74 52 6f 77 4b 65 79 20 3d 20 24 72 6f 77 4b 65 79 20 2b 20 24 6c 69 6e 65 4b 65 79 20 2b 20 31 tRowKey.=.$rowKey.+.$lineKey.+.1
c5c80 3b 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 72 6f 77 73 5b 24 6e 65 78 74 52 6f ;..if.(isset($this->rows[$nextRo
c5ca0 77 4b 65 79 5d 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 5b 24 6e 65 78 74 52 6f 77 4b 65 wKey])).{.$this->rows[$nextRowKe
c5cc0 79 5d 5b 24 6b 65 79 5d 20 3d 20 24 6c 69 6e 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 y][$key].=.$line;.}.else.{.$this
c5ce0 2d 3e 72 6f 77 73 5b 24 6e 65 78 74 52 6f 77 4b 65 79 5d 20 3d 20 61 72 72 61 79 28 24 6b 65 79 ->rows[$nextRowKey].=.array($key
c5d00 20 3d 3e 20 24 6c 69 6e 65 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b .=>.$line);.}.}.}..return.$this;
c5d20 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 52 6f 77 28 24 63 6f 6c 75 .}..public.function.setRow($colu
c5d40 6d 6e 2c 20 61 72 72 61 79 20 24 72 6f 77 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 6f 77 73 5b 24 63 mn,.array.$row).{.$this->rows[$c
c5d60 6f 6c 75 6d 6e 5d 20 3d 20 24 72 6f 77 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a olumn].=.$row;..return.$this;.}.
c5d80 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 50 61 64 64 69 ........public.function.setPaddi
c5da0 6e 67 43 68 61 72 28 24 70 61 64 64 69 6e 67 43 68 61 72 29 0a 7b 0a 69 66 20 28 21 24 70 61 64 ngChar($paddingChar).{.if.(!$pad
c5dc0 64 69 6e 67 43 68 61 72 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 65 dingChar).{.throw.new.\LogicExce
c5de0 70 74 69 6f 6e 28 27 54 68 65 20 70 61 64 64 69 6e 67 20 63 68 61 72 20 6d 75 73 74 20 6e 6f 74 ption('The.padding.char.must.not
c5e00 20 62 65 20 65 6d 70 74 79 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 64 64 69 6e 67 43 68 .be.empty');.}..$this->paddingCh
c5e20 61 72 20 3d 20 24 70 61 64 64 69 6e 67 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 ar.=.$paddingChar;..return.$this
c5e40 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 48 ;.}.........public.function.setH
c5e60 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 28 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 orizontalBorderChar($horizontalB
c5e80 6f 72 64 65 72 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f orderChar).{.$this->horizontalBo
c5ea0 72 64 65 72 43 68 61 72 20 3d 20 24 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 rderChar.=.$horizontalBorderChar
c5ec0 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 ;..return.$this;.}.........publi
c5ee0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 56 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 c.function.setVerticalBorderChar
c5f00 28 24 76 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 ($verticalBorderChar).{.$this->v
c5f20 65 72 74 69 63 61 6c 42 6f 72 64 65 72 43 68 61 72 20 3d 20 24 76 65 72 74 69 63 61 6c 42 6f 72 erticalBorderChar.=.$verticalBor
c5f40 64 65 72 43 68 61 72 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 derChar;..return.$this;.}.......
c5f60 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 72 6f 73 73 69 6e 67 43 68 61 ..public.function.setCrossingCha
c5f80 72 28 24 63 72 6f 73 73 69 6e 67 43 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 72 6f 73 73 69 r($crossingChar).{.$this->crossi
c5fa0 6e 67 43 68 61 72 20 3d 20 24 63 72 6f 73 73 69 6e 67 43 68 61 72 3b 0a 0a 72 65 74 75 72 6e 20 ngChar.=.$crossingChar;..return.
c5fc0 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 74 69 6f 6e $this;.}.........public.function
c5fe0 20 73 65 74 43 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 28 24 63 65 6c 6c 48 65 61 64 65 72 .setCellHeaderFormat($cellHeader
c6000 46 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 Format).{.$this->cellHeaderForma
c6020 74 20 3d 20 24 63 65 6c 6c 48 65 61 64 65 72 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 72 6e 20 24 t.=.$cellHeaderFormat;..return.$
c6040 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 74 69 6f 6e 20 this;.}.........public.function.
c6060 73 65 74 43 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 28 24 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 29 setCellRowFormat($cellRowFormat)
c6080 0a 7b 0a 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 20 3d 20 24 63 65 6c 6c 52 .{.$this->cellRowFormat.=.$cellR
c60a0 6f 77 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a owFormat;..return.$this;.}......
c60c0 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 65 6c 6c 52 6f 77 43 6f 6e ...public.function.setCellRowCon
c60e0 74 65 6e 74 46 6f 72 6d 61 74 28 24 63 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 tentFormat($cellRowContentFormat
c6100 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 20 ).{.$this->cellRowContentFormat.
c6120 3d 20 24 63 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d 61 74 3b 0a 0a 72 65 74 75 72 6e =.$cellRowContentFormat;..return
c6140 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 74 69 6f .$this;.}.........public.functio
c6160 6e 20 73 65 74 42 6f 72 64 65 72 46 6f 72 6d 61 74 28 24 62 6f 72 64 65 72 46 6f 72 6d 61 74 29 n.setBorderFormat($borderFormat)
c6180 0a 7b 0a 24 74 68 69 73 2d 3e 62 6f 72 64 65 72 46 6f 72 6d 61 74 20 3d 20 24 62 6f 72 64 65 72 .{.$this->borderFormat.=.$border
c61a0 46 6f 72 6d 61 74 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 Format;..return.$this;.}........
c61c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 64 54 79 70 65 28 24 70 61 64 .public.function.setPadType($pad
c61e0 54 79 70 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 64 54 79 70 65 20 3d 20 24 70 61 64 54 79 70 Type).{.$this->padType.=.$padTyp
c6200 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a e;..return.$this;.}.............
c6220 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 4f 75 74 70 75 74 ...public.function.render(Output
c6240 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 6f 75 74 70 Interface.$output).{.$this->outp
c6260 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 53 ut.=.$output;..$this->renderRowS
c6280 65 70 61 72 61 74 6f 72 28 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 28 24 74 68 eparator();.$this->renderRow($th
c62a0 69 73 2d 3e 68 65 61 64 65 72 73 2c 20 24 74 68 69 73 2d 3e 63 65 6c 6c 48 65 61 64 65 72 46 6f is->headers,.$this->cellHeaderFo
c62c0 72 6d 61 74 29 3b 0a 69 66 20 28 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 rmat);.if.(!empty($this->headers
c62e0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 53 65 70 61 72 61 74 6f 72 28 29 )).{.$this->renderRowSeparator()
c6300 3b 0a 7d 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 72 6f 77 73 20 61 73 20 24 72 6f 77 ;.}.foreach.($this->rows.as.$row
c6320 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 28 24 72 6f 77 2c 20 24 74 68 69 73 ).{.$this->renderRow($row,.$this
c6340 2d 3e 63 65 6c 6c 52 6f 77 46 6f 72 6d 61 74 29 3b 0a 7d 0a 69 66 20 28 21 65 6d 70 74 79 28 24 ->cellRowFormat);.}.if.(!empty($
c6360 74 68 69 73 2d 3e 72 6f 77 73 29 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 52 6f 77 53 this->rows)).{.$this->renderRowS
c6380 65 70 61 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 6c 65 61 6e 75 70 28 29 3b eparator();.}..$this->cleanup();
c63a0 0a 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 72 65 6e 64 65 72 .}.......private.function.render
c63c0 52 6f 77 53 65 70 61 72 61 74 6f 72 28 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 63 6f 75 6e RowSeparator().{.if.(0.===.$coun
c63e0 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 28 29 29 t.=.$this->getNumberOfColumns())
c6400 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 6f 72 69 7a 6f .{.return;.}..if.(!$this->horizo
c6420 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 20 26 26 20 21 24 74 68 69 73 2d 3e 63 72 6f 73 73 69 ntalBorderChar.&&.!$this->crossi
c6440 6e 67 43 68 61 72 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 6d 61 72 6b 75 70 20 3d 20 24 ngChar).{.return;.}..$markup.=.$
c6460 74 68 69 73 2d 3e 63 72 6f 73 73 69 6e 67 43 68 61 72 3b 0a 66 6f 72 20 28 24 63 6f 6c 75 6d 6e this->crossingChar;.for.($column
c6480 20 3d 20 30 3b 20 24 63 6f 6c 75 6d 6e 20 3c 20 24 63 6f 75 6e 74 3b 20 24 63 6f 6c 75 6d 6e 2b .=.0;.$column.<.$count;.$column+
c64a0 2b 29 20 7b 0a 24 6d 61 72 6b 75 70 20 2e 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 +).{.$markup..=.str_repeat($this
c64c0 2d 3e 68 6f 72 69 7a 6f 6e 74 61 6c 42 6f 72 64 65 72 43 68 61 72 2c 20 24 74 68 69 73 2d 3e 67 ->horizontalBorderChar,.$this->g
c64e0 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f 6c 75 6d 6e 29 29 2e 24 74 68 69 73 2d 3e 63 etColumnWidth($column)).$this->c
c6500 72 6f 73 73 69 6e 67 43 68 61 72 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 rossingChar;.}..$this->output->w
c6520 72 69 74 65 6c 6e 28 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 62 6f 72 64 65 72 46 6f 72 6d riteln(sprintf($this->borderForm
c6540 61 74 2c 20 24 6d 61 72 6b 75 70 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e at,.$markup));.}.....private.fun
c6560 63 74 69 6f 6e 20 72 65 6e 64 65 72 43 6f 6c 75 6d 6e 53 65 70 61 72 61 74 6f 72 28 29 0a 7b 0a ction.renderColumnSeparator().{.
c6580 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 24 74 68 $this->output->write(sprintf($th
c65a0 69 73 2d 3e 62 6f 72 64 65 72 46 6f 72 6d 61 74 2c 20 24 74 68 69 73 2d 3e 76 65 72 74 69 63 61 is->borderFormat,.$this->vertica
c65c0 6c 42 6f 72 64 65 72 43 68 61 72 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 lBorderChar));.}..........privat
c65e0 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 52 6f 77 28 61 72 72 61 79 20 24 72 6f 77 2c e.function.renderRow(array.$row,
c6600 20 24 63 65 6c 6c 46 6f 72 6d 61 74 29 0a 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 72 6f 77 29 29 .$cellFormat).{.if.(empty($row))
c6620 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 43 6f 6c 75 6d .{.return;.}..$this->renderColum
c6640 6e 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 66 6f 72 20 28 24 63 6f 6c 75 6d 6e 20 3d 20 30 2c 20 nSeparator();.for.($column.=.0,.
c6660 24 63 6f 75 6e 74 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 4e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d $count.=.$this->getNumberOfColum
c6680 6e 73 28 29 3b 20 24 63 6f 6c 75 6d 6e 20 3c 20 24 63 6f 75 6e 74 3b 20 24 63 6f 6c 75 6d 6e 2b ns();.$column.<.$count;.$column+
c66a0 2b 29 20 7b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 43 65 6c 6c 28 24 72 6f 77 2c 20 24 63 6f +).{.$this->renderCell($row,.$co
c66c0 6c 75 6d 6e 2c 20 24 63 65 6c 6c 46 6f 72 6d 61 74 29 3b 0a 24 74 68 69 73 2d 3e 72 65 6e 64 65 lumn,.$cellFormat);.$this->rende
c66e0 72 43 6f 6c 75 6d 6e 53 65 70 61 72 61 74 6f 72 28 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6f 75 74 rColumnSeparator();.}.$this->out
c6700 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 put->writeln('');.}.........priv
c6720 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 43 65 6c 6c 28 61 72 72 61 79 20 24 72 ate.function.renderCell(array.$r
c6740 6f 77 2c 20 24 63 6f 6c 75 6d 6e 2c 20 24 63 65 6c 6c 46 6f 72 6d 61 74 29 0a 7b 0a 24 63 65 6c ow,.$column,.$cellFormat).{.$cel
c6760 6c 20 3d 20 69 73 73 65 74 28 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 29 20 3f 20 24 72 6f 77 5b l.=.isset($row[$column]).?.$row[
c6780 24 63 6f 6c 75 6d 6e 5d 20 3a 20 27 27 3b 0a 24 77 69 64 74 68 20 3d 20 24 74 68 69 73 2d 3e 67 $column].:.'';.$width.=.$this->g
c67a0 65 74 43 6f 6c 75 6d 6e 57 69 64 74 68 28 24 63 6f 6c 75 6d 6e 29 3b 0a 0a 0a 20 69 66 20 28 66 etColumnWidth($column);....if.(f
c67c0 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 73 74 72 6c 65 6e 27 29 20 26 26 20 66 unction_exists('mb_strlen').&&.f
c67e0 61 6c 73 65 20 21 3d 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 alse.!==.$encoding.=.mb_detect_e
c6800 6e 63 6f 64 69 6e 67 28 24 63 65 6c 6c 29 29 20 7b 0a 24 77 69 64 74 68 20 2b 3d 20 73 74 72 6c ncoding($cell)).{.$width.+=.strl
c6820 65 6e 28 24 63 65 6c 6c 29 20 2d 20 6d 62 5f 73 74 72 6c 65 6e 28 24 63 65 6c 6c 2c 20 24 65 6e en($cell).-.mb_strlen($cell,.$en
c6840 63 6f 64 69 6e 67 29 3b 0a 7d 0a 0a 24 77 69 64 74 68 20 2b 3d 20 24 74 68 69 73 2d 3e 73 74 72 coding);.}..$width.+=.$this->str
c6860 6c 65 6e 28 24 63 65 6c 6c 29 20 2d 20 24 74 68 69 73 2d 3e 63 6f 6d 70 75 74 65 4c 65 6e 67 74 len($cell).-.$this->computeLengt
c6880 68 57 69 74 68 6f 75 74 44 65 63 6f 72 61 74 69 6f 6e 28 24 63 65 6c 6c 29 3b 0a 0a 24 63 6f 6e hWithoutDecoration($cell);..$con
c68a0 74 65 6e 74 20 3d 20 73 70 72 69 6e 74 66 28 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 43 6f 6e tent.=.sprintf($this->cellRowCon
c68c0 74 65 6e 74 46 6f 72 6d 61 74 2c 20 24 63 65 6c 6c 29 3b 0a 0a 24 74 68 69 73 2d 3e 6f 75 74 70 tentFormat,.$cell);..$this->outp
c68e0 75 74 2d 3e 77 72 69 74 65 28 73 70 72 69 6e 74 66 28 24 63 65 6c 6c 46 6f 72 6d 61 74 2c 20 73 ut->write(sprintf($cellFormat,.s
c6900 74 72 5f 70 61 64 28 24 63 6f 6e 74 65 6e 74 2c 20 24 77 69 64 74 68 2c 20 24 74 68 69 73 2d 3e tr_pad($content,.$width,.$this->
c6920 70 61 64 64 69 6e 67 43 68 61 72 2c 20 24 74 68 69 73 2d 3e 70 61 64 54 79 70 65 29 29 29 3b 0a paddingChar,.$this->padType)));.
c6940 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 67 65 74 4e 75 6d 62 }.......private.function.getNumb
c6960 65 72 4f 66 43 6f 6c 75 6d 6e 73 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 erOfColumns().{.if.(null.!==.$th
c6980 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 is->numberOfColumns).{.return.$t
c69a0 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 3b 0a 7d 0a 0a 24 63 6f 6c 75 6d 6e his->numberOfColumns;.}..$column
c69c0 73 20 3d 20 61 72 72 61 79 28 30 29 3b 0a 24 63 6f 6c 75 6d 6e 73 5b 5d 20 3d 20 63 6f 75 6e 74 s.=.array(0);.$columns[].=.count
c69e0 28 24 74 68 69 73 2d 3e 68 65 61 64 65 72 73 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 ($this->headers);.foreach.($this
c6a00 2d 3e 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 24 63 6f 6c 75 6d 6e 73 5b 5d 20 3d 20 63 ->rows.as.$row).{.$columns[].=.c
c6a20 6f 75 6e 74 28 24 72 6f 77 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6e 75 6d ount($row);.}..return.$this->num
c6a40 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 20 3d 20 6d 61 78 28 24 63 6f 6c 75 6d 6e 73 29 3b 0a 7d 0a berOfColumns.=.max($columns);.}.
c6a60 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 43 6f 6c 75 ........private.function.getColu
c6a80 6d 6e 57 69 64 74 68 28 24 63 6f 6c 75 6d 6e 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 mnWidth($column).{.if.(isset($th
c6aa0 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 73 5b 24 63 6f 6c 75 6d 6e 5d 29 29 20 7b 0a 72 65 is->columnWidths[$column])).{.re
c6ac0 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 73 5b 24 63 6f 6c 75 6d 6e turn.$this->columnWidths[$column
c6ae0 5d 3b 0a 7d 0a 0a 24 6c 65 6e 67 74 68 73 20 3d 20 61 72 72 61 79 28 30 29 3b 0a 24 6c 65 6e 67 ];.}..$lengths.=.array(0);.$leng
c6b00 74 68 73 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 65 6c 6c 57 69 64 74 68 28 24 74 68 69 ths[].=.$this->getCellWidth($thi
c6b20 73 2d 3e 68 65 61 64 65 72 73 2c 20 24 63 6f 6c 75 6d 6e 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 s->headers,.$column);.foreach.($
c6b40 74 68 69 73 2d 3e 72 6f 77 73 20 61 73 20 24 72 6f 77 29 20 7b 0a 24 6c 65 6e 67 74 68 73 5b 5d this->rows.as.$row).{.$lengths[]
c6b60 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 43 65 6c 6c 57 69 64 74 68 28 24 72 6f 77 2c 20 24 63 6f .=.$this->getCellWidth($row,.$co
c6b80 6c 75 6d 6e 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 lumn);.}..return.$this->columnWi
c6ba0 64 74 68 73 5b 24 63 6f 6c 75 6d 6e 5d 20 3d 20 6d 61 78 28 24 6c 65 6e 67 74 68 73 29 20 2b 20 dths[$column].=.max($lengths).+.
c6bc0 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 63 65 6c 6c 52 6f 77 43 6f 6e 74 65 6e 74 46 6f 72 6d strlen($this->cellRowContentForm
c6be0 61 74 29 20 2d 20 32 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 at).-.2;.}..........private.func
c6c00 74 69 6f 6e 20 67 65 74 43 65 6c 6c 57 69 64 74 68 28 61 72 72 61 79 20 24 72 6f 77 2c 20 24 63 tion.getCellWidth(array.$row,.$c
c6c20 6f 6c 75 6d 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 69 73 73 65 74 28 24 72 6f 77 5b 24 63 6f 6c 75 olumn).{.return.isset($row[$colu
c6c40 6d 6e 5d 29 20 3f 20 24 74 68 69 73 2d 3e 63 6f 6d 70 75 74 65 4c 65 6e 67 74 68 57 69 74 68 6f mn]).?.$this->computeLengthWitho
c6c60 75 74 44 65 63 6f 72 61 74 69 6f 6e 28 24 72 6f 77 5b 24 63 6f 6c 75 6d 6e 5d 29 20 3a 20 30 3b utDecoration($row[$column]).:.0;
c6c80 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6c 65 61 6e 75 70 28 .}.....private.function.cleanup(
c6ca0 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6c 75 6d 6e 57 69 64 74 68 73 20 3d 20 61 72 72 61 79 28 ).{.$this->columnWidths.=.array(
c6cc0 29 3b 0a 24 74 68 69 73 2d 3e 6e 75 6d 62 65 72 4f 66 43 6f 6c 75 6d 6e 73 20 3d 20 6e 75 6c 6c );.$this->numberOfColumns.=.null
c6ce0 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 63 6f 6d 70 75 74 65 4c 65 6e ;.}..private.function.computeLen
c6d00 67 74 68 57 69 74 68 6f 75 74 44 65 63 6f 72 61 74 69 6f 6e 28 24 73 74 72 69 6e 67 29 0a 7b 0a gthWithoutDecoration($string).{.
c6d20 24 66 6f 72 6d 61 74 74 65 72 20 3d 20 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2d 3e 67 65 74 46 $formatter.=.$this->output->getF
c6d40 6f 72 6d 61 74 74 65 72 28 29 3b 0a 24 69 73 44 65 63 6f 72 61 74 65 64 20 3d 20 24 66 6f 72 6d ormatter();.$isDecorated.=.$form
c6d60 61 74 74 65 72 2d 3e 69 73 44 65 63 6f 72 61 74 65 64 28 29 3b 0a 24 66 6f 72 6d 61 74 74 65 72 atter->isDecorated();.$formatter
c6d80 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 66 61 6c 73 65 29 3b 0a 0a 24 73 74 72 69 6e 67 20 ->setDecorated(false);..$string.
c6da0 3d 20 24 66 6f 72 6d 61 74 74 65 72 2d 3e 66 6f 72 6d 61 74 28 24 73 74 72 69 6e 67 29 3b 0a 24 =.$formatter->format($string);.$
c6dc0 66 6f 72 6d 61 74 74 65 72 2d 3e 73 65 74 44 65 63 6f 72 61 74 65 64 28 24 69 73 44 65 63 6f 72 formatter->setDecorated($isDecor
c6de0 61 74 65 64 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 73 74 ated);..return.$this->strlen($st
c6e00 72 69 6e 67 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 ring);.}.....public.function.get
c6e20 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 74 61 62 6c 65 27 3b 0a 7d 0a 7d 0a 3c 3f 70 Name().{.return.'table';.}.}.<?p
c6e40 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
c6e60 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
c6e80 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 mfony\Component\Console\Descript
c6ea0 6f 72 5c 44 65 73 63 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 or\DescriptorInterface;.use.Symf
c6ec0 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 ony\Component\Console\Descriptor
c6ee0 5c 4a 73 6f 6e 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d \JsonDescriptor;.use.Symfony\Com
c6f00 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 4d 61 72 6b 64 6f ponent\Console\Descriptor\Markdo
c6f20 77 6e 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e wnDescriptor;.use.Symfony\Compon
c6f40 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 54 65 78 74 44 65 73 63 72 ent\Console\Descriptor\TextDescr
c6f60 69 70 74 6f 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 6e iptor;.use.Symfony\Component\Con
c6f80 73 6f 6c 65 5c 44 65 73 63 72 69 70 74 6f 72 5c 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 3b 0a 75 sole\Descriptor\XmlDescriptor;.u
c6fa0 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 74 se.Symfony\Component\Console\Out
c6fc0 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 61 73 73 put\OutputInterface;.......class
c6fe0 20 44 65 73 63 72 69 70 74 6f 72 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 .DescriptorHelper.extends.Helper
c7000 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 73 63 72 69 70 74 6f 72 73 20 3d 20 61 72 72 .{....private.$descriptors.=.arr
c7020 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 ay();.....public.function.__cons
c7040 74 72 75 63 74 28 29 0a 7b 0a 24 74 68 69 73 0a 2d 3e 72 65 67 69 73 74 65 72 28 27 74 78 74 27 truct().{.$this.->register('txt'
c7060 2c 20 6e 65 77 20 54 65 78 74 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 2d 3e 72 65 67 69 73 74 ,.new.TextDescriptor()).->regist
c7080 65 72 28 27 78 6d 6c 27 2c 20 6e 65 77 20 58 6d 6c 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 2d er('xml',.new.XmlDescriptor()).-
c70a0 3e 72 65 67 69 73 74 65 72 28 27 6a 73 6f 6e 27 2c 20 6e 65 77 20 4a 73 6f 6e 44 65 73 63 72 69 >register('json',.new.JsonDescri
c70c0 70 74 6f 72 28 29 29 0a 2d 3e 72 65 67 69 73 74 65 72 28 27 6d 64 27 2c 20 6e 65 77 20 4d 61 72 ptor()).->register('md',.new.Mar
c70e0 6b 64 6f 77 6e 44 65 73 63 72 69 70 74 6f 72 28 29 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a kdownDescriptor()).;.}..........
c7100 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 65 73 63 72 69 62 65 28 4f 75 .....public.function.describe(Ou
c7120 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6f 62 6a 65 63 74 2c 20 tputInterface.$output,.$object,.
c7140 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 24 6f 70 74 array.$options.=.array()).{.$opt
c7160 69 6f 6e 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 61 72 72 61 79 28 0a 27 72 61 77 5f 74 ions.=.array_merge(array(.'raw_t
c7180 65 78 74 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 27 66 6f 72 6d 61 74 27 20 3d 3e 20 27 74 78 74 27 ext'.=>.false,.'format'.=>.'txt'
c71a0 2c 0a 29 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 ,.),.$options);..if.(!isset($thi
c71c0 73 2d 3e 64 65 73 63 72 69 70 74 6f 72 73 5b 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 6d 61 74 27 s->descriptors[$options['format'
c71e0 5d 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 ]])).{.throw.new.\InvalidArgumen
c7200 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 73 75 70 70 6f 72 74 65 64 20 tException(sprintf('Unsupported.
c7220 66 6f 72 6d 61 74 20 22 25 73 22 2e 27 2c 20 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 6d 61 74 27 format."%s".',.$options['format'
c7240 5d 29 29 3b 0a 7d 0a 0a 24 64 65 73 63 72 69 70 74 6f 72 20 3d 20 24 74 68 69 73 2d 3e 64 65 73 ]));.}..$descriptor.=.$this->des
c7260 63 72 69 70 74 6f 72 73 5b 24 6f 70 74 69 6f 6e 73 5b 27 66 6f 72 6d 61 74 27 5d 5d 3b 0a 24 64 criptors[$options['format']];.$d
c7280 65 73 63 72 69 70 74 6f 72 2d 3e 64 65 73 63 72 69 62 65 28 24 6f 75 74 70 75 74 2c 20 24 6f 62 escriptor->describe($output,.$ob
c72a0 6a 65 63 74 2c 20 24 6f 70 74 69 6f 6e 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c ject,.$options);.}..........publ
c72c0 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 67 69 73 74 65 72 28 24 66 6f 72 6d 61 74 2c 20 44 65 ic.function.register($format,.De
c72e0 73 63 72 69 70 74 6f 72 49 6e 74 65 72 66 61 63 65 20 24 64 65 73 63 72 69 70 74 6f 72 29 0a 7b scriptorInterface.$descriptor).{
c7300 0a 24 74 68 69 73 2d 3e 64 65 73 63 72 69 70 74 6f 72 73 5b 24 66 6f 72 6d 61 74 5d 20 3d 20 24 .$this->descriptors[$format].=.$
c7320 64 65 73 63 72 69 70 74 6f 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a descriptor;..return.$this;.}....
c7340 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 7b 0a 72 65 74 .public.function.getName().{.ret
c7360 75 72 6e 20 27 64 65 73 63 72 69 70 74 6f 72 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a urn.'descriptor';.}.}.<?php.....
c7380 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
c73a0 74 5c 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 t\Console\Helper;..use.Symfony\C
c73c0 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
c73e0 74 46 6f 72 6d 61 74 74 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 6f 72 6d 61 74 74 65 tFormatter;.......class.Formatte
c7400 72 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a rHelper.extends.Helper.{........
c7420 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 53 65 63 74 69 6f 6e 28 ..public.function.formatSection(
c7440 24 73 65 63 74 69 6f 6e 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 73 74 79 6c 65 20 3d 20 27 69 6e $section,.$message,.$style.=.'in
c7460 66 6f 27 29 0a 7b 0a 72 65 74 75 72 6e 20 73 70 72 69 6e 74 66 28 27 3c 25 73 3e 5b 25 73 5d 3c fo').{.return.sprintf('<%s>[%s]<
c7480 2f 25 73 3e 20 25 73 27 2c 20 24 73 74 79 6c 65 2c 20 24 73 65 63 74 69 6f 6e 2c 20 24 73 74 79 /%s>.%s',.$style,.$section,.$sty
c74a0 6c 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 le,.$message);.}...........publi
c74c0 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 6d 65 73 73 61 67 65 73 c.function.formatBlock($messages
c74e0 2c 20 24 73 74 79 6c 65 2c 20 24 6c 61 72 67 65 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 6d 65 73 ,.$style,.$large.=.false).{.$mes
c7500 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 6d 65 73 73 61 67 65 73 3b 0a 0a 24 6c 65 6e sages.=.(array).$messages;..$len
c7520 20 3d 20 30 3b 0a 24 6c 69 6e 65 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 .=.0;.$lines.=.array();.foreach.
c7540 28 24 6d 65 73 73 61 67 65 73 20 61 73 20 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6d 65 73 73 61 ($messages.as.$message).{.$messa
c7560 67 65 20 3d 20 4f 75 74 70 75 74 46 6f 72 6d 61 74 74 65 72 3a 3a 65 73 63 61 70 65 28 24 6d 65 ge.=.OutputFormatter::escape($me
c7580 73 73 61 67 65 29 3b 0a 24 6c 69 6e 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 24 6c 61 72 67 ssage);.$lines[].=.sprintf($larg
c75a0 65 20 3f 20 27 20 20 25 73 20 20 27 20 3a 20 27 20 25 73 20 27 2c 20 24 6d 65 73 73 61 67 65 29 e.?.'..%s..'.:.'.%s.',.$message)
c75c0 3b 0a 24 6c 65 6e 20 3d 20 6d 61 78 28 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 ;.$len.=.max($this->strlen($mess
c75e0 61 67 65 29 20 2b 20 28 24 6c 61 72 67 65 20 3f 20 34 20 3a 20 32 29 2c 20 24 6c 65 6e 29 3b 0a age).+.($large.?.4.:.2),.$len);.
c7600 7d 0a 0a 24 6d 65 73 73 61 67 65 73 20 3d 20 24 6c 61 72 67 65 20 3f 20 61 72 72 61 79 28 73 74 }..$messages.=.$large.?.array(st
c7620 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 29 20 3a 20 61 72 72 61 79 28 29 3b 0a r_repeat('.',.$len)).:.array();.
c7640 66 6f 72 65 61 63 68 20 28 24 6c 69 6e 65 73 20 61 73 20 24 6c 69 6e 65 29 20 7b 0a 24 6d 65 73 foreach.($lines.as.$line).{.$mes
c7660 73 61 67 65 73 5b 5d 20 3d 20 24 6c 69 6e 65 2e 73 74 72 5f 72 65 70 65 61 74 28 27 20 27 2c 20 sages[].=.$line.str_repeat('.',.
c7680 24 6c 65 6e 20 2d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6c 69 6e 65 29 29 3b 0a 7d 0a $len.-.$this->strlen($line));.}.
c76a0 69 66 20 28 24 6c 61 72 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 74 72 5f if.($large).{.$messages[].=.str_
c76c0 72 65 70 65 61 74 28 27 20 27 2c 20 24 6c 65 6e 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 repeat('.',.$len);.}..foreach.($
c76e0 6d 65 73 73 61 67 65 73 20 61 73 20 26 24 6d 65 73 73 61 67 65 29 20 7b 0a 24 6d 65 73 73 61 67 messages.as.&$message).{.$messag
c7700 65 20 3d 20 73 70 72 69 6e 74 66 28 27 3c 25 73 3e 25 73 3c 2f 25 73 3e 27 2c 20 24 73 74 79 6c e.=.sprintf('<%s>%s</%s>',.$styl
c7720 65 2c 20 24 6d 65 73 73 61 67 65 2c 20 24 73 74 79 6c 65 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 e,.$message,.$style);.}..return.
c7740 69 6d 70 6c 6f 64 65 28 22 5c 6e 22 2c 20 24 6d 65 73 73 61 67 65 73 29 3b 0a 7d 0a 0a 0a 0a 0a implode("\n",.$messages);.}.....
c7760 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 7b 0a 72 65 74 75 public.function.getName().{.retu
c7780 72 6e 20 27 66 6f 72 6d 61 74 74 65 72 27 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a rn.'formatter';.}.}.<?php.......
c77a0 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 5c ....namespace.Symfony\Component\
c77c0 43 6f 6e 73 6f 6c 65 5c 48 65 6c 70 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d Console\Helper;..use.Symfony\Com
c77e0 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;.
c7800 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 48 65 6c 70 65 72 53 65 74 20 69 6d 70 6c 65 6d 65 6e 74 73 ......class.HelperSet.implements
c7820 20 5c 49 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 0a 7b 0a 70 72 69 76 61 74 65 20 24 68 .\IteratorAggregate.{.private.$h
c7840 65 6c 70 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 63 6f 6d 6d 61 elpers.=.array();.private.$comma
c7860 6e 64 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 nd;.......public.function.__cons
c7880 74 72 75 63 74 28 61 72 72 61 79 20 24 68 65 6c 70 65 72 73 20 3d 20 61 72 72 61 79 28 29 29 0a truct(array.$helpers.=.array()).
c78a0 7b 0a 66 6f 72 65 61 63 68 20 28 24 68 65 6c 70 65 72 73 20 61 73 20 24 61 6c 69 61 73 20 3d 3e {.foreach.($helpers.as.$alias.=>
c78c0 20 24 68 65 6c 70 65 72 29 20 7b 0a 24 74 68 69 73 2d 3e 73 65 74 28 24 68 65 6c 70 65 72 2c 20 .$helper).{.$this->set($helper,.
c78e0 69 73 5f 69 6e 74 28 24 61 6c 69 61 73 29 20 3f 20 6e 75 6c 6c 20 3a 20 24 61 6c 69 61 73 29 3b is_int($alias).?.null.:.$alias);
c7900 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 28 .}.}........public.function.set(
c7920 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 20 24 68 65 6c 70 65 72 2c 20 24 61 6c 69 61 73 20 HelperInterface.$helper,.$alias.
c7940 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 68 65 6c 70 65 72 =.null).{.$this->helpers[$helper
c7960 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a 69 66 20 28 6e 75 6c 6c ->getName()].=.$helper;.if.(null
c7980 20 21 3d 3d 20 24 61 6c 69 61 73 29 20 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 61 .!==.$alias).{.$this->helpers[$a
c79a0 6c 69 61 73 5d 20 3d 20 24 68 65 6c 70 65 72 3b 0a 7d 0a 0a 24 68 65 6c 70 65 72 2d 3e 73 65 74 lias].=.$helper;.}..$helper->set
c79c0 48 65 6c 70 65 72 53 65 74 28 24 74 68 69 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c HelperSet($this);.}.........publ
c79e0 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 6e 20 ic.function.has($name).{.return.
c7a00 69 73 73 65 74 28 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 29 3b 0a 7d 0a isset($this->helpers[$name]);.}.
c7a20 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 6e ..........public.function.get($n
c7a40 61 6d 65 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 28 24 6e 61 6d 65 29 29 20 7b ame).{.if.(!$this->has($name)).{
c7a60 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
c7a80 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 54 68 65 20 68 65 6c 70 65 72 20 22 25 73 22 20 69 73 tion(sprintf('The.helper."%s".is
c7aa0 20 6e 6f 74 20 64 65 66 69 6e 65 64 2e 27 2c 20 24 6e 61 6d 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 .not.defined.',.$name));.}..retu
c7ac0 72 6e 20 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a rn.$this->helpers[$name];.}.....
c7ae0 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 43 6f 6d ..public.function.setCommand(Com
c7b00 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 mand.$command.=.null).{.$this->c
c7b20 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 70 75 62 6c 69 ommand.=.$command;.}.......publi
c7b40 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 6f 6d 6d 61 6e 64 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getCommand().{.return
c7b60 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$this->command;.}..public.funct
c7b80 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 5c ion.getIterator().{.return.new.\
c7ba0 41 72 72 61 79 49 74 65 72 61 74 6f 72 28 24 74 68 69 73 2d 3e 68 65 6c 70 65 72 73 29 3b 0a 7d ArrayIterator($this->helpers);.}
c7bc0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d .}.<?php...........namespace.Sym
c7be0 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 3b 0a 0a fony\Component\Console\Helper;..
c7c00 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
c7c20 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 6e tput\OutputInterface;.use.Symfon
c7c40 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 5c 4f 75 y\Component\Console\Formatter\Ou
c7c60 74 70 75 74 46 6f 72 6d 61 74 74 65 72 53 74 79 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 tputFormatterStyle;.......class.
c7c80 44 69 61 6c 6f 67 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 49 6e 70 75 74 41 77 61 72 65 48 DialogHelper.extends.InputAwareH
c7ca0 65 6c 70 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 70 72 elper.{.private.$inputStream;.pr
c7cc0 69 76 61 74 65 20 73 74 61 74 69 63 20 24 73 68 65 6c 6c 3b 0a 70 72 69 76 61 74 65 20 73 74 61 ivate.static.$shell;.private.sta
c7ce0 74 69 63 20 24 73 74 74 79 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 tic.$stty;.................publi
c7d00 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 6c 65 63 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 c.function.select(OutputInterfac
c7d20 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 63 68 6f 69 63 65 73 2c 20 e.$output,.$question,.$choices,.
c7d40 24 64 65 66 61 75 6c 74 20 3d 20 6e 75 6c 6c 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c $default.=.null,.$attempts.=.fal
c7d60 73 65 2c 20 24 65 72 72 6f 72 4d 65 73 73 61 67 65 20 3d 20 27 56 61 6c 75 65 20 22 25 73 22 20 se,.$errorMessage.=.'Value."%s".
c7d80 69 73 20 69 6e 76 61 6c 69 64 27 2c 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 20 3d 20 66 61 6c 73 is.invalid',.$multiselect.=.fals
c7da0 65 29 0a 7b 0a 24 77 69 64 74 68 20 3d 20 6d 61 78 28 61 72 72 61 79 5f 6d 61 70 28 27 73 74 72 e).{.$width.=.max(array_map('str
c7dc0 6c 65 6e 27 2c 20 61 72 72 61 79 5f 6b 65 79 73 28 24 63 68 6f 69 63 65 73 29 29 29 3b 0a 0a 24 len',.array_keys($choices)));..$
c7de0 6d 65 73 73 61 67 65 73 20 3d 20 28 61 72 72 61 79 29 20 24 71 75 65 73 74 69 6f 6e 3b 0a 66 6f messages.=.(array).$question;.fo
c7e00 72 65 61 63 68 20 28 24 63 68 6f 69 63 65 73 20 61 73 20 24 6b 65 79 20 3d 3e 20 24 76 61 6c 75 reach.($choices.as.$key.=>.$valu
c7e20 65 29 20 7b 0a 24 6d 65 73 73 61 67 65 73 5b 5d 20 3d 20 73 70 72 69 6e 74 66 28 22 20 20 5b 3c e).{.$messages[].=.sprintf("..[<
c7e40 69 6e 66 6f 3e 25 2d 24 7b 77 69 64 74 68 7d 73 3c 2f 69 6e 66 6f 3e 5d 20 25 73 22 2c 20 24 6b info>%-${width}s</info>].%s",.$k
c7e60 65 79 2c 20 24 76 61 6c 75 65 29 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e ey,.$value);.}..$output->writeln
c7e80 28 24 6d 65 73 73 61 67 65 73 29 3b 0a 0a 24 72 65 73 75 6c 74 20 3d 20 24 74 68 69 73 2d 3e 61 ($messages);..$result.=.$this->a
c7ea0 73 6b 41 6e 64 56 61 6c 69 64 61 74 65 28 24 6f 75 74 70 75 74 2c 20 27 3e 20 27 2c 20 66 75 6e skAndValidate($output,.'>.',.fun
c7ec0 63 74 69 6f 6e 20 28 24 70 69 63 6b 65 64 29 20 75 73 65 20 28 24 63 68 6f 69 63 65 73 2c 20 24 ction.($picked).use.($choices,.$
c7ee0 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 0a 20 errorMessage,.$multiselect).{...
c7f00 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 $selectedChoices.=.str_replace("
c7f20 20 22 2c 20 22 22 2c 20 24 70 69 63 6b 65 64 29 3b 0a 0a 69 66 20 28 24 6d 75 6c 74 69 73 65 6c .",."",.$picked);..if.($multisel
c7f40 65 63 74 29 20 7b 0a 0a 20 69 66 20 28 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 5b 61 2d 7a ect).{...if.(!preg_match('/^[a-z
c7f60 41 2d 5a 30 2d 39 5f 2d 5d 2b 28 3f 3a 2c 5b 61 2d 7a 41 2d 5a 30 2d 39 5f 2d 5d 2b 29 2a 24 2f A-Z0-9_-]+(?:,[a-zA-Z0-9_-]+)*$/
c7f80 27 2c 20 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 2c 20 24 6d 61 74 63 68 65 73 29 29 20 ',.$selectedChoices,.$matches)).
c7fa0 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
c7fc0 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 24 65 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 70 69 ption(sprintf($errorMessage,.$pi
c7fe0 63 6b 65 64 29 29 3b 0a 7d 0a 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d 20 65 78 70 cked));.}.$selectedChoices.=.exp
c8000 6c 6f 64 65 28 22 2c 22 2c 20 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 29 3b 0a 7d 20 65 lode(",",.$selectedChoices);.}.e
c8020 6c 73 65 20 7b 0a 24 73 65 6c 65 63 74 65 64 43 68 6f 69 63 65 73 20 3d 20 61 72 72 61 79 28 24 lse.{.$selectedChoices.=.array($
c8040 70 69 63 6b 65 64 29 3b 0a 7d 0a 0a 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 20 picked);.}..$multiselectChoices.
c8060 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 73 65 6c 65 63 74 65 64 43 68 =.array();..foreach.($selectedCh
c8080 6f 69 63 65 73 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 69 66 20 28 65 6d 70 74 79 28 24 63 68 oices.as.$value).{.if.(empty($ch
c80a0 6f 69 63 65 73 5b 24 76 61 6c 75 65 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 oices[$value])).{.throw.new.\Inv
c80c0 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 24 65 alidArgumentException(sprintf($e
c80e0 72 72 6f 72 4d 65 73 73 61 67 65 2c 20 24 76 61 6c 75 65 29 29 3b 0a 7d 0a 61 72 72 61 79 5f 70 rrorMessage,.$value));.}.array_p
c8100 75 73 68 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 2c 20 24 76 61 6c 75 65 29 ush($multiselectChoices,.$value)
c8120 3b 0a 7d 0a 0a 69 66 20 28 24 6d 75 6c 74 69 73 65 6c 65 63 74 29 20 7b 0a 72 65 74 75 72 6e 20 ;.}..if.($multiselect).{.return.
c8140 24 6d 75 6c 74 69 73 65 6c 65 63 74 43 68 6f 69 63 65 73 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 $multiselectChoices;.}..return.$
c8160 70 69 63 6b 65 64 3b 0a 7d 2c 20 24 61 74 74 65 6d 70 74 73 2c 20 24 64 65 66 61 75 6c 74 29 3b picked;.},.$attempts,.$default);
c8180 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 0a 0a 0a 0a ..return.$result;.}.............
c81a0 0a 70 75 62 6c 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 .public.function.ask(OutputInter
c81c0 66 61 63 65 20 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 face.$output,.$question,.$defaul
c81e0 74 20 3d 20 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 3d 20 t.=.null,.array.$autocomplete.=.
c8200 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 26 26 20 21 24 74 68 null).{.if.($this->input.&&.!$th
c8220 69 73 2d 3e 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 72 65 is->input->isInteractive()).{.re
c8240 74 75 72 6e 20 24 64 65 66 61 75 6c 74 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 turn.$default;.}..$output->write
c8260 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 0a 24 69 6e 70 75 74 53 74 72 65 61 6d 20 3d 20 24 74 68 ($question);..$inputStream.=.$th
c8280 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 20 3f 3a 20 53 54 44 49 4e 3b 0a 0a 69 66 20 28 6e is->inputStream.?:.STDIN;..if.(n
c82a0 75 6c 6c 20 3d 3d 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 7c 7c 20 21 24 74 68 69 73 2d ull.===.$autocomplete.||.!$this-
c82c0 3e 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 6c 65 28 29 29 20 7b 0a 24 72 65 74 20 3d 20 66 67 >hasSttyAvailable()).{.$ret.=.fg
c82e0 65 74 73 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 34 30 39 36 29 3b 0a 69 66 20 28 66 61 6c ets($inputStream,.4096);.if.(fal
c8300 73 65 20 3d 3d 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 se.===.$ret).{.throw.new.\Runtim
c8320 65 45 78 63 65 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 eException('Aborted');.}.$ret.=.
c8340 74 72 69 6d 28 24 72 65 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 74 20 3d 20 27 27 3b 0a trim($ret);.}.else.{.$ret.=.'';.
c8360 0a 24 69 20 3d 20 30 3b 0a 24 6f 66 73 20 3d 20 2d 31 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 .$i.=.0;.$ofs.=.-1;.$matches.=.$
c8380 61 75 74 6f 63 6f 6d 70 6c 65 74 65 3b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 63 6f 75 6e autocomplete;.$numMatches.=.coun
c83a0 74 28 24 6d 61 74 63 68 65 73 29 3b 0a 0a 24 73 74 74 79 4d 6f 64 65 20 3d 20 73 68 65 6c 6c 5f t($matches);..$sttyMode.=.shell_
c83c0 65 78 65 63 28 27 73 74 74 79 20 2d 67 27 29 3b 0a 0a 0a 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 exec('stty.-g');....shell_exec('
c83e0 73 74 74 79 20 2d 69 63 61 6e 6f 6e 20 2d 65 63 68 6f 27 29 3b 0a 0a 0a 20 24 6f 75 74 70 75 74 stty.-icanon.-echo');....$output
c8400 2d 3e 67 65 74 46 6f 72 6d 61 74 74 65 72 28 29 2d 3e 73 65 74 53 74 79 6c 65 28 27 68 6c 27 2c ->getFormatter()->setStyle('hl',
c8420 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 28 27 62 6c 61 63 6b .new.OutputFormatterStyle('black
c8440 27 2c 20 27 77 68 69 74 65 27 29 29 3b 0a 0a 0a 20 77 68 69 6c 65 20 28 21 66 65 6f 66 28 24 69 ',.'white'));....while.(!feof($i
c8460 6e 70 75 74 53 74 72 65 61 6d 29 29 20 7b 0a 24 63 20 3d 20 66 72 65 61 64 28 24 69 6e 70 75 74 nputStream)).{.$c.=.fread($input
c8480 53 74 72 65 61 6d 2c 20 31 29 3b 0a 0a 0a 20 69 66 20 28 22 5c 31 37 37 22 20 3d 3d 3d 20 24 63 Stream,.1);....if.("\177".===.$c
c84a0 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6e 75 6d 4d 61 74 63 68 65 73 20 26 26 20 30 20 21 ).{.if.(0.===.$numMatches.&&.0.!
c84c0 3d 3d 20 24 69 29 20 7b 0a 24 69 2d 2d 3b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 ==.$i).{.$i--;...$output->write(
c84e0 22 5c 30 33 33 5b 31 44 22 29 3b 0a 7d 0a 0a 69 66 20 28 24 69 20 3d 3d 3d 20 30 29 20 7b 0a 24 "\033[1D");.}..if.($i.===.0).{.$
c8500 6f 66 73 20 3d 20 2d 31 3b 0a 24 6d 61 74 63 68 65 73 20 3d 20 24 61 75 74 6f 63 6f 6d 70 6c 65 ofs.=.-1;.$matches.=.$autocomple
c8520 74 65 3b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 63 6f 75 6e 74 28 24 6d 61 74 63 68 65 73 te;.$numMatches.=.count($matches
c8540 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 30 3b 0a 7d 0a 0a );.}.else.{.$numMatches.=.0;.}..
c8560 0a 20 24 72 65 74 20 3d 20 73 75 62 73 74 72 28 24 72 65 74 2c 20 30 2c 20 24 69 29 3b 0a 7d 20 ..$ret.=.substr($ret,.0,.$i);.}.
c8580 65 6c 73 65 69 66 20 28 22 5c 30 33 33 22 20 3d 3d 3d 20 24 63 29 20 7b 20 0a 20 24 63 20 2e 3d elseif.("\033".===.$c).{...$c..=
c85a0 20 66 72 65 61 64 28 24 69 6e 70 75 74 53 74 72 65 61 6d 2c 20 32 29 3b 0a 0a 0a 20 69 66 20 28 .fread($inputStream,.2);....if.(
c85c0 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 20 7c 7c 20 27 42 27 20 3d 3d 3d 20 24 63 5b 32 5d 29 20 'A'.===.$c[2].||.'B'.===.$c[2]).
c85e0 7b 0a 69 66 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 20 26 26 20 2d 31 20 3d 3d 3d 20 24 6f {.if.('A'.===.$c[2].&&.-1.===.$o
c8600 66 73 29 20 7b 0a 24 6f 66 73 20 3d 20 30 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 24 6e 75 fs).{.$ofs.=.0;.}..if.(0.===.$nu
c8620 6d 4d 61 74 63 68 65 73 29 20 7b 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 0a 0a 24 6f 66 73 20 2b 3d mMatches).{.continue;.}..$ofs.+=
c8640 20 28 27 41 27 20 3d 3d 3d 20 24 63 5b 32 5d 29 20 3f 20 2d 31 20 3a 20 31 3b 0a 24 6f 66 73 20 .('A'.===.$c[2]).?.-1.:.1;.$ofs.
c8660 3d 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 2b 20 24 6f 66 73 29 20 25 20 24 6e 75 6d 4d 61 74 =.($numMatches.+.$ofs).%.$numMat
c8680 63 68 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 6f 72 64 28 24 63 29 20 3c 20 33 32 29 20 ches;.}.}.elseif.(ord($c).<.32).
c86a0 7b 0a 69 66 20 28 22 5c 74 22 20 3d 3d 3d 20 24 63 20 7c 7c 20 22 5c 6e 22 20 3d 3d 3d 20 24 63 {.if.("\t".===.$c.||."\n".===.$c
c86c0 29 20 7b 0a 69 66 20 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 3e 20 30 20 26 26 20 2d 31 20 21 3d ).{.if.($numMatches.>.0.&&.-1.!=
c86e0 3d 20 24 6f 66 73 29 20 7b 0a 24 72 65 74 20 3d 20 24 6d 61 74 63 68 65 73 5b 24 6f 66 73 5d 3b =.$ofs).{.$ret.=.$matches[$ofs];
c8700 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 73 75 62 73 74 72 28 24 72 65 74 2c 20 24 ...$output->write(substr($ret,.$
c8720 69 29 29 3b 0a 24 69 20 3d 20 73 74 72 6c 65 6e 28 24 72 65 74 29 3b 0a 7d 0a 0a 69 66 20 28 22 i));.$i.=.strlen($ret);.}..if.("
c8740 5c 6e 22 20 3d 3d 3d 20 24 63 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 63 29 \n".===.$c).{.$output->write($c)
c8760 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 24 6e 75 6d 4d 61 74 63 68 65 73 20 3d 20 30 3b 0a 7d 0a 0a ;.break;.}..$numMatches.=.0;.}..
c8780 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 continue;.}.else.{.$output->writ
c87a0 65 28 24 63 29 3b 0a 24 72 65 74 20 2e 3d 20 24 63 3b 0a 24 69 2b 2b 3b 0a 0a 24 6e 75 6d 4d 61 e($c);.$ret..=.$c;.$i++;..$numMa
c87c0 74 63 68 65 73 20 3d 20 30 3b 0a 24 6f 66 73 20 3d 20 30 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 tches.=.0;.$ofs.=.0;..foreach.($
c87e0 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 61 73 20 24 76 61 6c 75 65 29 20 7b 0a 0a 20 69 66 20 28 autocomplete.as.$value).{...if.(
c8800 30 20 3d 3d 3d 20 73 74 72 70 6f 73 28 24 76 61 6c 75 65 2c 20 24 72 65 74 29 20 26 26 20 24 69 0.===.strpos($value,.$ret).&&.$i
c8820 20 21 3d 3d 20 73 74 72 6c 65 6e 28 24 76 61 6c 75 65 29 29 20 7b 0a 24 6d 61 74 63 68 65 73 5b .!==.strlen($value)).{.$matches[
c8840 24 6e 75 6d 4d 61 74 63 68 65 73 2b 2b 5d 20 3d 20 24 76 61 6c 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a $numMatches++].=.$value;.}.}.}..
c8860 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 5b 4b 22 29 3b 0a 0a 69 66 20 ..$output->write("\033[K");..if.
c8880 28 24 6e 75 6d 4d 61 74 63 68 65 73 20 3e 20 30 20 26 26 20 2d 31 20 21 3d 3d 20 24 6f 66 73 29 ($numMatches.>.0.&&.-1.!==.$ofs)
c88a0 20 7b 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 37 22 29 3b 0a 0a 20 .{...$output->write("\0337");...
c88c0 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 27 3c 68 6c 3e 27 2e 73 75 62 73 74 72 28 24 6d 61 $output->write('<hl>'.substr($ma
c88e0 74 63 68 65 73 5b 24 6f 66 73 5d 2c 20 24 69 29 2e 27 3c 2f 68 6c 3e 27 29 3b 0a 0a 20 24 6f 75 tches[$ofs],.$i).'</hl>');...$ou
c8900 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 30 33 33 38 22 29 3b 0a 7d 0a 7d 0a 0a 0a 20 73 68 65 tput->write("\0338");.}.}....she
c8920 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 27 73 74 74 79 20 25 73 27 2c 20 24 73 74 74 79 ll_exec(sprintf('stty.%s',.$stty
c8940 4d 6f 64 65 29 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 72 65 74 29 20 3e Mode));.}..return.strlen($ret).>
c8960 20 30 20 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 .0.?.$ret.:.$default;.}.........
c8980 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 73 6b 43 6f 6e 66 69 72 6d 61 74 ....public.function.askConfirmat
c89a0 69 6f 6e 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 ion(OutputInterface.$output,.$qu
c89c0 65 73 74 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 estion,.$default.=.true).{.$answ
c89e0 65 72 20 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 er.=.'z';.while.($answer.&&.!in_
c8a00 61 72 72 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 array(strtolower($answer[0]),.ar
c8a20 72 61 79 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 ray('y',.'n'))).{.$answer.=.$thi
c8a40 73 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d 0a 0a 69 s->ask($output,.$question);.}..i
c8a60 66 20 28 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 f.(false.===.$default).{.return.
c8a80 24 61 6e 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 $answer.&&.'y'.==.strtolower($an
c8aa0 73 77 65 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 swer[0]);.}..return.!$answer.||.
c8ac0 27 79 27 20 3d 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 24 61 6e 73 77 65 72 5b 30 5d 29 3b 0a 7d 'y'.==.strtolower($answer[0]);.}
c8ae0 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 73 6b .............public.function.ask
c8b00 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 HiddenResponse(OutputInterface.$
c8b20 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 66 61 6c 6c 62 61 63 6b 20 3d 20 74 output,.$question,.$fallback.=.t
c8b40 72 75 65 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 rue).{.if.(defined('PHP_WINDOWS_
c8b60 56 45 52 53 49 4f 4e 5f 42 55 49 4c 44 27 29 29 20 7b 0a 24 65 78 65 20 3d 20 5f 5f 44 49 52 5f VERSION_BUILD')).{.$exe.=.__DIR_
c8b80 5f 2e 27 2f 2e 2e 2f 52 65 73 6f 75 72 63 65 73 2f 62 69 6e 2f 68 69 64 64 65 6e 69 6e 70 75 74 _.'/../Resources/bin/hiddeninput
c8ba0 2e 65 78 65 27 3b 0a 0a 0a 20 69 66 20 28 27 70 68 61 72 3a 27 20 3d 3d 3d 20 73 75 62 73 74 72 .exe';....if.('phar:'.===.substr
c8bc0 28 5f 5f 46 49 4c 45 5f 5f 2c 20 30 2c 20 35 29 29 20 7b 0a 24 74 6d 70 45 78 65 20 3d 20 73 79 (__FILE__,.0,.5)).{.$tmpExe.=.sy
c8be0 73 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 s_get_temp_dir().'/hiddeninput.e
c8c00 78 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 xe';.copy($exe,.$tmpExe);.$exe.=
c8c20 20 24 74 6d 70 45 78 65 3b 0a 7d 0a 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 .$tmpExe;.}..$output->write($que
c8c40 73 74 69 6f 6e 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 78 65 stion);.$value.=.rtrim(shell_exe
c8c60 63 28 24 65 78 65 29 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a c($exe));.$output->writeln('');.
c8c80 0a 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 24 74 .if.(isset($tmpExe)).{.unlink($t
c8ca0 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 66 20 mpExe);.}..return.$value;.}..if.
c8cc0 28 24 74 68 69 73 2d 3e 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 6c 65 28 29 29 20 7b 0a 24 6f ($this->hasSttyAvailable()).{.$o
c8ce0 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b 0a 0a 24 73 74 74 79 4d utput->write($question);..$sttyM
c8d00 6f 64 65 20 3d 20 73 68 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 67 27 29 3b 0a 0a 73 68 ode.=.shell_exec('stty.-g');..sh
c8d20 65 6c 6c 5f 65 78 65 63 28 27 73 74 74 79 20 2d 65 63 68 6f 27 29 3b 0a 24 76 61 6c 75 65 20 3d ell_exec('stty.-echo');.$value.=
c8d40 20 66 67 65 74 73 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 20 3f 3a 20 53 54 44 .fgets($this->inputStream.?:.STD
c8d60 49 4e 2c 20 34 30 39 36 29 3b 0a 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 27 73 IN,.4096);.shell_exec(sprintf('s
c8d80 74 74 79 20 25 73 27 2c 20 24 73 74 74 79 4d 6f 64 65 29 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 tty.%s',.$sttyMode));..if.(false
c8da0 20 3d 3d 3d 20 24 76 61 6c 75 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d .===.$value).{.throw.new.\Runtim
c8dc0 65 45 78 63 65 70 74 69 6f 6e 28 27 41 62 6f 72 74 65 64 27 29 3b 0a 7d 0a 0a 24 76 61 6c 75 65 eException('Aborted');.}..$value
c8de0 20 3d 20 74 72 69 6d 28 24 76 61 6c 75 65 29 3b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c .=.trim($value);.$output->writel
c8e00 6e 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 n('');..return.$value;.}..if.(fa
c8e20 6c 73 65 20 21 3d 3d 20 24 73 68 65 6c 6c 20 3d 20 24 74 68 69 73 2d 3e 67 65 74 53 68 65 6c 6c lse.!==.$shell.=.$this->getShell
c8e40 28 29 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 24 71 75 65 73 74 69 6f 6e 29 3b ()).{.$output->write($question);
c8e60 0a 24 72 65 61 64 43 6d 64 20 3d 20 24 73 68 65 6c 6c 20 3d 3d 3d 20 27 63 73 68 27 20 3f 20 27 .$readCmd.=.$shell.===.'csh'.?.'
c8e80 73 65 74 20 6d 79 70 61 73 73 77 6f 72 64 20 3d 20 24 3c 27 20 3a 20 27 72 65 61 64 20 2d 72 20 set.mypassword.=.$<'.:.'read.-r.
c8ea0 6d 79 70 61 73 73 77 6f 72 64 27 3b 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 73 70 72 69 6e 74 66 28 mypassword';.$command.=.sprintf(
c8ec0 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 73 74 74 79 20 2d 65 63 68 6f 3b "/usr/bin/env.%s.-c.'stty.-echo;
c8ee0 20 25 73 3b 20 73 74 74 79 20 65 63 68 6f 3b 20 65 63 68 6f 20 5c 24 6d 79 70 61 73 73 77 6f 72 .%s;.stty.echo;.echo.\$mypasswor
c8f00 64 27 22 2c 20 24 73 68 65 6c 6c 2c 20 24 72 65 61 64 43 6d 64 29 3b 0a 24 76 61 6c 75 65 20 3d d'",.$shell,.$readCmd);.$value.=
c8f20 20 72 74 72 69 6d 28 73 68 65 6c 6c 5f 65 78 65 63 28 24 63 6f 6d 6d 61 6e 64 29 29 3b 0a 24 6f .rtrim(shell_exec($command));.$o
c8f40 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 0a 72 65 74 75 72 6e 20 24 76 61 6c utput->writeln('');..return.$val
c8f60 75 65 3b 0a 7d 0a 0a 69 66 20 28 24 66 61 6c 6c 62 61 63 6b 29 20 7b 0a 72 65 74 75 72 6e 20 24 ue;.}..if.($fallback).{.return.$
c8f80 74 68 69 73 2d 3e 61 73 6b 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 29 3b 0a 7d this->ask($output,.$question);.}
c8fa0 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 55 ..throw.new.\RuntimeException('U
c8fc0 6e 61 62 6c 65 20 74 6f 20 68 69 64 65 20 74 68 65 20 72 65 73 70 6f 6e 73 65 27 29 3b 0a 7d 0a nable.to.hide.the.response');.}.
c8fe0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ...................public.functi
c9000 6f 6e 20 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 on.askAndValidate(OutputInterfac
c9020 65 20 24 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 e.$output,.$question,.$validator
c9040 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 6c 74 20 3d 20 ,.$attempts.=.false,.$default.=.
c9060 6e 75 6c 6c 2c 20 61 72 72 61 79 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 20 3d 20 6e 75 6c 6c null,.array.$autocomplete.=.null
c9080 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 74 68 69 73 3b 0a 0a 24 69 6e 74 65 72 76 69 65 77 65 72 ).{.$that.=.$this;..$interviewer
c90a0 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 24 71 75 .=.function.().use.($output,.$qu
c90c0 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 61 75 74 6f 63 6f 6d 70 6c 65 74 65 2c estion,.$default,.$autocomplete,
c90e0 20 24 74 68 61 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 61 74 2d 3e 61 73 6b 28 24 6f 75 74 .$that).{.return.$that->ask($out
c9100 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 64 65 66 61 75 6c 74 2c 20 24 61 75 74 6f 63 put,.$question,.$default,.$autoc
c9120 6f 6d 70 6c 65 74 65 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 69 omplete);.};..return.$this->vali
c9140 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 65 72 2c 20 24 6f 75 74 70 dateAttempts($interviewer,.$outp
c9160 75 74 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 3b 0a 7d 0a 0a 0a ut,.$validator,.$attempts);.}...
c9180 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ..................public.functio
c91a0 6e 20 61 73 6b 48 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 41 6e 64 56 61 6c 69 64 61 74 65 28 4f n.askHiddenResponseAndValidate(O
c91c0 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f utputInterface.$output,.$questio
c91e0 6e 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 20 3d 20 66 61 6c 73 65 n,.$validator,.$attempts.=.false
c9200 2c 20 24 66 61 6c 6c 62 61 63 6b 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 61 74 20 3d 20 24 74 ,.$fallback.=.true).{.$that.=.$t
c9220 68 69 73 3b 0a 0a 24 69 6e 74 65 72 76 69 65 77 65 72 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 29 his;..$interviewer.=.function.()
c9240 20 75 73 65 20 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e 2c 20 24 66 61 6c 6c 62 .use.($output,.$question,.$fallb
c9260 61 63 6b 2c 20 24 74 68 61 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 61 74 2d 3e 61 73 6b 48 ack,.$that).{.return.$that->askH
c9280 69 64 64 65 6e 52 65 73 70 6f 6e 73 65 28 24 6f 75 74 70 75 74 2c 20 24 71 75 65 73 74 69 6f 6e iddenResponse($output,.$question
c92a0 2c 20 24 66 61 6c 6c 62 61 63 6b 29 3b 0a 7d 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e ,.$fallback);.};..return.$this->
c92c0 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 65 72 2c 20 24 validateAttempts($interviewer,.$
c92e0 6f 75 74 70 75 74 2c 20 24 76 61 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 3b 0a output,.$validator,.$attempts);.
c9300 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 }.........public.function.setInp
c9320 75 74 53 74 72 65 61 6d 28 24 73 74 72 65 61 6d 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 utStream($stream).{.$this->input
c9340 53 74 72 65 61 6d 20 3d 20 24 73 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 Stream.=.$stream;.}.......public
c9360 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 53 74 72 65 61 6d 28 29 0a 7b 0a 72 65 74 .function.getInputStream().{.ret
c9380 75 72 6e 20 24 74 68 69 73 2d 3e 69 6e 70 75 74 53 74 72 65 61 6d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 urn.$this->inputStream;.}.....pu
c93a0 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
c93c0 20 27 64 69 61 6c 6f 67 27 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 .'dialog';.}.......private.funct
c93e0 69 6f 6e 20 67 65 74 53 68 65 6c 6c 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 ion.getShell().{.if.(null.!==.se
c9400 6c 66 3a 3a 24 73 68 65 6c 6c 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 68 65 6c lf::$shell).{.return.self::$shel
c9420 6c 3b 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 20 3d 20 66 61 6c 73 65 3b 0a 0a 69 66 20 l;.}..self::$shell.=.false;..if.
c9440 28 66 69 6c 65 5f 65 78 69 73 74 73 28 27 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 27 29 29 20 7b 0a (file_exists('/usr/bin/env')).{.
c9460 0a 20 24 74 65 73 74 20 3d 20 22 2f 75 73 72 2f 62 69 6e 2f 65 6e 76 20 25 73 20 2d 63 20 27 65 ..$test.=."/usr/bin/env.%s.-c.'e
c9480 63 68 6f 20 4f 4b 27 20 32 3e 20 2f 64 65 76 2f 6e 75 6c 6c 22 3b 0a 66 6f 72 65 61 63 68 20 28 cho.OK'.2>./dev/null";.foreach.(
c94a0 61 72 72 61 79 28 27 62 61 73 68 27 2c 20 27 7a 73 68 27 2c 20 27 6b 73 68 27 2c 20 27 63 73 68 array('bash',.'zsh',.'ksh',.'csh
c94c0 27 29 20 61 73 20 24 73 68 29 20 7b 0a 69 66 20 28 27 4f 4b 27 20 3d 3d 3d 20 72 74 72 69 6d 28 ').as.$sh).{.if.('OK'.===.rtrim(
c94e0 73 68 65 6c 6c 5f 65 78 65 63 28 73 70 72 69 6e 74 66 28 24 74 65 73 74 2c 20 24 73 68 29 29 29 shell_exec(sprintf($test,.$sh)))
c9500 29 20 7b 0a 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 20 3d 20 24 73 68 3b 0a 62 72 65 61 6b 3b 0a 7d ).{.self::$shell.=.$sh;.break;.}
c9520 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 68 65 6c 6c 3b 0a 7d 0a 0a 70 72 .}.}..return.self::$shell;.}..pr
c9540 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 74 79 41 76 61 69 6c 61 62 6c 65 28 ivate.function.hasSttyAvailable(
c9560 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a 3a 24 73 74 74 79 29 20 7b 0a ).{.if.(null.!==.self::$stty).{.
c9580 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 3b 0a 7d 0a 0a 65 78 65 63 28 27 73 74 74 return.self::$stty;.}..exec('stt
c95a0 79 20 32 3e 26 31 27 2c 20 24 6f 75 74 70 75 74 2c 20 24 65 78 69 74 63 6f 64 65 29 3b 0a 0a 72 y.2>&1',.$output,.$exitcode);..r
c95c0 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 73 74 74 79 20 3d 20 24 65 78 69 74 63 6f 64 65 20 3d 3d eturn.self::$stty.=.$exitcode.==
c95e0 3d 20 30 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 =.0;.}..............private.func
c9600 74 69 6f 6e 20 76 61 6c 69 64 61 74 65 41 74 74 65 6d 70 74 73 28 24 69 6e 74 65 72 76 69 65 77 tion.validateAttempts($interview
c9620 65 72 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 76 61 er,.OutputInterface.$output,.$va
c9640 6c 69 64 61 74 6f 72 2c 20 24 61 74 74 65 6d 70 74 73 29 0a 7b 0a 24 65 72 72 6f 72 20 3d 20 6e lidator,.$attempts).{.$error.=.n
c9660 75 6c 6c 3b 0a 77 68 69 6c 65 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 61 74 74 65 6d 70 74 73 20 ull;.while.(false.===.$attempts.
c9680 7c 7c 20 24 61 74 74 65 6d 70 74 73 2d 2d 29 20 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 ||.$attempts--).{.if.(null.!==.$
c96a0 65 72 72 6f 72 29 20 7b 0a 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 6c 6e 28 24 74 68 69 73 2d error).{.$output->writeln($this-
c96c0 3e 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 2d 3e 67 65 74 28 27 66 6f 72 6d 61 74 74 65 72 27 >getHelperSet()->get('formatter'
c96e0 29 2d 3e 66 6f 72 6d 61 74 42 6c 6f 63 6b 28 24 65 72 72 6f 72 2d 3e 67 65 74 4d 65 73 73 61 67 )->formatBlock($error->getMessag
c9700 65 28 29 2c 20 27 65 72 72 6f 72 27 29 29 3b 0a 7d 0a 0a 74 72 79 20 7b 0a 72 65 74 75 72 6e 20 e(),.'error'));.}..try.{.return.
c9720 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 69 6e 74 65 call_user_func($validator,.$inte
c9740 72 76 69 65 77 65 72 28 29 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 45 78 63 65 70 74 69 6f 6e 20 rviewer());.}.catch.(\Exception.
c9760 24 65 72 72 6f 72 29 20 7b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 24 65 72 72 6f 72 3b 0a 7d 0a 7d $error).{.}.}..throw.$error;.}.}
c9780 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
c97a0 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 3b 0a 0a 0a 0a ny\Component\Console\Helper;....
c97c0 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 48 65 6c 70 65 72 20 69 6d 70 6c 65 6d 65 ...abstract.class.Helper.impleme
c97e0 6e 74 73 20 48 65 6c 70 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 nts.HelperInterface.{.protected.
c9800 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 $helperSet.=.null;.......public.
c9820 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 20 function.setHelperSet(HelperSet.
c9840 24 68 65 6c 70 65 72 53 65 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 68 65 6c 70 $helperSet.=.null).{.$this->help
c9860 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 0a 0a 70 75 62 6c erSet.=.$helperSet;.}.......publ
c9880 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 48 65 6c 70 65 72 53 65 74 28 29 0a 7b 0a 72 65 74 ic.function.getHelperSet().{.ret
c98a0 75 72 6e 20 24 74 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 urn.$this->helperSet;.}.........
c98c0 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e protected.function.strlen($strin
c98e0 67 29 0a 7b 0a 69 66 20 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 6d 62 5f 73 74 g).{.if.(!function_exists('mb_st
c9900 72 6c 65 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 rlen')).{.return.strlen($string)
c9920 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 65 6e 63 6f 64 69 6e 67 20 3d 20 6d ;.}..if.(false.===.$encoding.=.m
c9940 62 5f 64 65 74 65 63 74 5f 65 6e 63 6f 64 69 6e 67 28 24 73 74 72 69 6e 67 29 29 20 7b 0a 72 65 b_detect_encoding($string)).{.re
c9960 74 75 72 6e 20 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 turn.strlen($string);.}..return.
c9980 6d 62 5f 73 74 72 6c 65 6e 28 24 73 74 72 69 6e 67 2c 20 24 65 6e 63 6f 64 69 6e 67 29 3b 0a 7d mb_strlen($string,.$encoding);.}
c99a0 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d .}.<?php...........namespace.Sym
c99c0 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 3b 0a 0a fony\Component\Console\Helper;..
c99e0 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
c9a00 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 0a 63 6c 61 tput\OutputInterface;........cla
c9a20 73 73 20 50 72 6f 67 72 65 73 73 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c 70 65 72 ss.ProgressHelper.extends.Helper
c9a40 0a 7b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 51 55 49 45 54 20 3d 20 27 20 25 70 65 72 63 65 .{.const.FORMAT_QUIET.=.'.%perce
c9a60 6e 74 25 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 20 3d 20 27 20 25 nt%%';.const.FORMAT_NORMAL.=.'.%
c9a80 63 75 72 72 65 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 25 current%/%max%.[%bar%].%percent%
c9aa0 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 20 3d 20 27 20 25 63 75 %';.const.FORMAT_VERBOSE.=.'.%cu
c9ac0 72 72 65 6e 74 25 2f 25 6d 61 78 25 20 5b 25 62 61 72 25 5d 20 25 70 65 72 63 65 6e 74 25 25 20 rrent%/%max%.[%bar%].%percent%%.
c9ae0 45 6c 61 70 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 Elapsed:.%elapsed%';.const.FORMA
c9b00 54 5f 51 55 49 45 54 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 27 3b 0a 63 6f T_QUIET_NOMAX.=.'.%current%';.co
c9b20 6e 73 74 20 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 nst.FORMAT_NORMAL_NOMAX.=.'.%cur
c9b40 72 65 6e 74 25 20 5b 25 62 61 72 25 5d 27 3b 0a 63 6f 6e 73 74 20 46 4f 52 4d 41 54 5f 56 45 52 rent%.[%bar%]';.const.FORMAT_VER
c9b60 42 4f 53 45 5f 4e 4f 4d 41 58 20 3d 20 27 20 25 63 75 72 72 65 6e 74 25 20 5b 25 62 61 72 25 5d BOSE_NOMAX.=.'.%current%.[%bar%]
c9b80 20 45 6c 61 70 73 65 64 3a 20 25 65 6c 61 70 73 65 64 25 27 3b 0a 0a 0a 20 70 72 69 76 61 74 65 .Elapsed:.%elapsed%';....private
c9ba0 20 24 62 61 72 57 69 64 74 68 20 3d 20 32 38 3b 0a 70 72 69 76 61 74 65 20 24 62 61 72 43 68 61 .$barWidth.=.28;.private.$barCha
c9bc0 72 20 3d 20 27 3d 27 3b 0a 70 72 69 76 61 74 65 20 24 65 6d 70 74 79 42 61 72 43 68 61 72 20 3d r.=.'=';.private.$emptyBarChar.=
c9be0 20 27 2d 27 3b 0a 70 72 69 76 61 74 65 20 24 70 72 6f 67 72 65 73 73 43 68 61 72 20 3d 20 27 3e .'-';.private.$progressChar.=.'>
c9c00 27 3b 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 20 3d 20 6e 75 6c 6c 3b 0a 70 72 69 76 61 ';.private.$format.=.null;.priva
c9c20 74 65 20 24 72 65 64 72 61 77 46 72 65 71 20 3d 20 31 3b 0a 0a 70 72 69 76 61 74 65 20 24 6c 61 te.$redrawFreq.=.1;..private.$la
c9c40 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 3b 0a 70 72 69 76 61 74 65 20 24 62 61 72 43 68 stMessagesLength;.private.$barCh
c9c60 61 72 4f 72 69 67 69 6e 61 6c 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 6f 75 74 70 75 74 3b arOriginal;.....private.$output;
c9c80 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 63 75 72 72 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 70 .......private.$current;.......p
c9ca0 72 69 76 61 74 65 20 24 6d 61 78 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 rivate.$max;.......private.$star
c9cc0 74 54 69 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 64 65 66 61 75 6c 74 46 6f 72 tTime;.......private.$defaultFor
c9ce0 6d 61 74 56 61 72 73 20 3d 20 61 72 72 61 79 28 0a 27 63 75 72 72 65 6e 74 27 2c 0a 27 6d 61 78 matVars.=.array(.'current',.'max
c9d00 27 2c 0a 27 62 61 72 27 2c 0a 27 70 65 72 63 65 6e 74 27 2c 0a 27 65 6c 61 70 73 65 64 27 2c 0a ',.'bar',.'percent',.'elapsed',.
c9d20 29 3b 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 66 6f 72 6d 61 74 56 61 72 73 3b 0a 0a 0a );.......private.$formatVars;...
c9d40 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 77 69 64 74 68 73 20 3d 20 61 72 72 61 79 28 0a 27 63 75 ....private.$widths.=.array(.'cu
c9d60 72 72 65 6e 74 27 20 3d 3e 20 34 2c 0a 27 6d 61 78 27 20 3d 3e 20 34 2c 0a 27 70 65 72 63 65 6e rrent'.=>.4,.'max'.=>.4,.'percen
c9d80 74 27 20 3d 3e 20 33 2c 0a 27 65 6c 61 70 73 65 64 27 20 3d 3e 20 36 2c 0a 29 3b 0a 0a 0a 0a 0a t'.=>.3,.'elapsed'.=>.6,.);.....
c9da0 0a 0a 70 72 69 76 61 74 65 20 24 74 69 6d 65 46 6f 72 6d 61 74 73 20 3d 20 61 72 72 61 79 28 0a ..private.$timeFormats.=.array(.
c9dc0 61 72 72 61 79 28 30 2c 20 27 3f 3f 3f 27 29 2c 0a 61 72 72 61 79 28 32 2c 20 27 31 20 73 65 63 array(0,.'???'),.array(2,.'1.sec
c9de0 27 29 2c 0a 61 72 72 61 79 28 35 39 2c 20 27 73 65 63 73 27 2c 20 31 29 2c 0a 61 72 72 61 79 28 '),.array(59,.'secs',.1),.array(
c9e00 36 30 2c 20 27 31 20 6d 69 6e 27 29 2c 0a 61 72 72 61 79 28 33 36 30 30 2c 20 27 6d 69 6e 73 27 60,.'1.min'),.array(3600,.'mins'
c9e20 2c 20 36 30 29 2c 0a 61 72 72 61 79 28 35 34 30 30 2c 20 27 31 20 68 72 27 29 2c 0a 61 72 72 61 ,.60),.array(5400,.'1.hr'),.arra
c9e40 79 28 38 36 34 30 30 2c 20 27 68 72 73 27 2c 20 33 36 30 30 29 2c 0a 61 72 72 61 79 28 31 32 39 y(86400,.'hrs',.3600),.array(129
c9e60 36 30 30 2c 20 27 31 20 64 61 79 27 29 2c 0a 61 72 72 61 79 28 36 30 34 38 30 30 2c 20 27 64 61 600,.'1.day'),.array(604800,.'da
c9e80 79 73 27 2c 20 38 36 34 30 30 29 2c 0a 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ys',.86400),.);.......public.fun
c9ea0 63 74 69 6f 6e 20 73 65 74 42 61 72 57 69 64 74 68 28 24 73 69 7a 65 29 0a 7b 0a 24 74 68 69 73 ction.setBarWidth($size).{.$this
c9ec0 2d 3e 62 61 72 57 69 64 74 68 20 3d 20 28 69 6e 74 29 20 24 73 69 7a 65 3b 0a 7d 0a 0a 0a 0a 0a ->barWidth.=.(int).$size;.}.....
c9ee0 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 42 61 72 43 68 61 72 61 63 74 65 ..public.function.setBarCharacte
c9f00 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 63 68 61 r($char).{.$this->barChar.=.$cha
c9f20 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6d r;.}.......public.function.setEm
c9f40 70 74 79 42 61 72 43 68 61 72 61 63 74 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e ptyBarCharacter($char).{.$this->
c9f60 65 6d 70 74 79 42 61 72 43 68 61 72 20 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 emptyBarChar.=.$char;.}.......pu
c9f80 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 72 6f 67 72 65 73 73 43 68 61 72 61 63 74 blic.function.setProgressCharact
c9fa0 65 72 28 24 63 68 61 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 20 er($char).{.$this->progressChar.
c9fc0 3d 20 24 63 68 61 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e =.$char;.}.......public.function
c9fe0 20 73 65 74 46 6f 72 6d 61 74 28 24 66 6f 72 6d 61 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 .setFormat($format).{.$this->for
ca000 6d 61 74 20 3d 20 24 66 6f 72 6d 61 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 mat.=.$format;.}.......public.fu
ca020 6e 63 74 69 6f 6e 20 73 65 74 52 65 64 72 61 77 46 72 65 71 75 65 6e 63 79 28 24 66 72 65 71 29 nction.setRedrawFrequency($freq)
ca040 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 20 3d 20 28 69 6e 74 29 20 24 66 72 .{.$this->redrawFreq.=.(int).$fr
ca060 65 71 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 74 61 eq;.}........public.function.sta
ca080 72 74 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6d 61 78 rt(OutputInterface.$output,.$max
ca0a0 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 74 69 .=.null).{.$this->startTime.=.ti
ca0c0 6d 65 28 29 3b 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 30 3b 0a 24 74 68 69 73 2d me();.$this->current.=.0;.$this-
ca0e0 3e 6d 61 78 20 3d 20 28 69 6e 74 29 20 24 6d 61 78 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 >max.=.(int).$max;.$this->output
ca100 20 3d 20 24 6f 75 74 70 75 74 3b 0a 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c .=.$output;.$this->lastMessagesL
ca120 65 6e 67 74 68 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 4f 72 69 67 69 6e 61 ength.=.0;.$this->barCharOrigina
ca140 6c 20 3d 20 27 27 3b 0a 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 66 6f 72 l.=.'';..if.(null.===.$this->for
ca160 6d 61 74 29 20 7b 0a 73 77 69 74 63 68 20 28 24 6f 75 74 70 75 74 2d 3e 67 65 74 56 65 72 62 6f mat).{.switch.($output->getVerbo
ca180 73 69 74 79 28 29 29 20 7b 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a sity()).{.case.OutputInterface::
ca1a0 56 45 52 42 4f 53 49 54 59 5f 51 55 49 45 54 3a 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d VERBOSITY_QUIET:.$this->format.=
ca1c0 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 51 55 49 45 54 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 .self::FORMAT_QUIET_NOMAX;.if.($
ca1e0 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d this->max.>.0).{.$this->format.=
ca200 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 51 55 49 45 54 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 .self::FORMAT_QUIET;.}.break;.ca
ca220 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 56 45 se.OutputInterface::VERBOSITY_VE
ca240 52 42 4f 53 45 3a 0a 63 61 73 65 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 RBOSE:.case.OutputInterface::VER
ca260 42 4f 53 49 54 59 5f 56 45 52 59 5f 56 45 52 42 4f 53 45 3a 0a 63 61 73 65 20 4f 75 74 70 75 74 BOSITY_VERY_VERBOSE:.case.Output
ca280 49 6e 74 65 72 66 61 63 65 3a 3a 56 45 52 42 4f 53 49 54 59 5f 44 45 42 55 47 3a 0a 24 74 68 69 Interface::VERBOSITY_DEBUG:.$thi
ca2a0 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 56 45 52 42 4f 53 45 s->format.=.self::FORMAT_VERBOSE
ca2c0 5f 4e 4f 4d 41 58 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 _NOMAX;.if.($this->max.>.0).{.$t
ca2e0 68 69 73 2d 3e 66 6f 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 56 45 52 42 4f his->format.=.self::FORMAT_VERBO
ca300 53 45 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 24 74 68 69 73 2d 3e 66 6f 72 SE;.}.break;.default:.$this->for
ca320 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 5f 4e 4f 4d 41 58 3b mat.=.self::FORMAT_NORMAL_NOMAX;
ca340 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f .if.($this->max.>.0).{.$this->fo
ca360 72 6d 61 74 20 3d 20 73 65 6c 66 3a 3a 46 4f 52 4d 41 54 5f 4e 4f 52 4d 41 4c 3b 0a 7d 0a 62 72 rmat.=.self::FORMAT_NORMAL;.}.br
ca380 65 61 6b 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 69 6e 69 74 69 61 6c 69 7a 65 28 29 3b 0a 7d eak;.}.}..$this->initialize();.}
ca3a0 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 76 61 6e 63 ..........public.function.advanc
ca3c0 65 28 24 73 74 65 70 20 3d 20 31 2c 20 24 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 29 0a 7b 0a e($step.=.1,.$redraw.=.false).{.
ca3e0 24 74 68 69 73 2d 3e 73 65 74 43 75 72 72 65 6e 74 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 $this->setCurrent($this->current
ca400 20 2b 20 24 73 74 65 70 2c 20 24 72 65 64 72 61 77 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 .+.$step,.$redraw);.}..........p
ca420 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 75 72 72 65 6e 74 28 24 63 75 72 72 65 ublic.function.setCurrent($curre
ca440 6e 74 2c 20 24 72 65 64 72 61 77 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 nt,.$redraw.=.false).{.if.(null.
ca460 3d 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 ===.$this->startTime).{.throw.ne
ca480 77 20 5c 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 73 74 61 72 w.\LogicException('You.must.star
ca4a0 74 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e t.the.progress.bar.before.callin
ca4c0 67 20 73 65 74 43 75 72 72 65 6e 74 28 29 2e 27 29 3b 0a 7d 0a 0a 24 63 75 72 72 65 6e 74 20 3d g.setCurrent().');.}..$current.=
ca4e0 20 28 69 6e 74 29 20 24 63 75 72 72 65 6e 74 3b 0a 0a 69 66 20 28 24 63 75 72 72 65 6e 74 20 3c .(int).$current;..if.($current.<
ca500 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f .$this->current).{.throw.new.\Lo
ca520 67 69 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 63 61 6e 5c 27 74 20 72 65 67 72 65 73 73 gicException('You.can\'t.regress
ca540 20 74 68 65 20 70 72 6f 67 72 65 73 73 20 62 61 72 27 29 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d .the.progress.bar');.}..if.(0.==
ca560 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 29 20 7b 0a 24 72 65 64 72 61 77 20 3d 20 74 72 =.$this->current).{.$redraw.=.tr
ca580 75 65 3b 0a 7d 0a 0a 24 70 72 65 76 50 65 72 69 6f 64 20 3d 20 69 6e 74 76 61 6c 28 24 74 68 69 ue;.}..$prevPeriod.=.intval($thi
ca5a0 73 2d 3e 63 75 72 72 65 6e 74 20 2f 20 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 29 3b s->current./.$this->redrawFreq);
ca5c0 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 24 63 75 72 72 65 6e 74 3b 0a 0a 24 63 ..$this->current.=.$current;..$c
ca5e0 75 72 72 50 65 72 69 6f 64 20 3d 20 69 6e 74 76 61 6c 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e urrPeriod.=.intval($this->curren
ca600 74 20 2f 20 24 74 68 69 73 2d 3e 72 65 64 72 61 77 46 72 65 71 29 3b 0a 69 66 20 28 24 72 65 64 t./.$this->redrawFreq);.if.($red
ca620 72 61 77 20 7c 7c 20 24 70 72 65 76 50 65 72 69 6f 64 20 21 3d 3d 20 24 63 75 72 72 50 65 72 69 raw.||.$prevPeriod.!==.$currPeri
ca640 6f 64 20 7c 7c 20 24 74 68 69 73 2d 3e 6d 61 78 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 od.||.$this->max.===.$this->curr
ca660 65 6e 74 29 20 7b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 28 29 3b 0a 7d 0a 7d 0a 0a 0a 0a ent).{.$this->display();.}.}....
ca680 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 64 69 73 70 6c 61 79 28 24 66 69 .....public.function.display($fi
ca6a0 6e 69 73 68 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 nish.=.false).{.if.(null.===.$th
ca6c0 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 is->startTime).{.throw.new.\Logi
ca6e0 63 45 78 63 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 20 70 cException('You.must.start.the.p
ca700 72 6f 67 72 65 73 73 20 62 61 72 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 64 69 73 70 6c rogress.bar.before.calling.displ
ca720 61 79 28 29 2e 27 29 3b 0a 7d 0a 0a 24 6d 65 73 73 61 67 65 20 3d 20 24 74 68 69 73 2d 3e 66 6f ay().');.}..$message.=.$this->fo
ca740 72 6d 61 74 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 67 65 6e 65 72 61 74 65 28 24 rmat;.foreach.($this->generate($
ca760 66 69 6e 69 73 68 29 20 61 73 20 24 6e 61 6d 65 20 3d 3e 20 24 76 61 6c 75 65 29 20 7b 0a 24 6d finish).as.$name.=>.$value).{.$m
ca780 65 73 73 61 67 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 25 7b 24 6e 61 6d 65 7d 25 22 essage.=.str_replace("%{$name}%"
ca7a0 2c 20 24 76 61 6c 75 65 2c 20 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 6f 76 ,.$value,.$message);.}.$this->ov
ca7c0 65 72 77 72 69 74 65 28 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 2c 20 24 6d 65 73 73 61 67 65 29 erwrite($this->output,.$message)
ca7e0 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 63 6c 65 61 ;.}.........public.function.clea
ca800 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 76 65 72 77 72 69 74 65 28 24 74 68 69 73 2d 3e 6f 75 r().{.$this->overwrite($this->ou
ca820 74 70 75 74 2c 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 tput,.'');.}.....public.function
ca840 20 66 69 6e 69 73 68 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 .finish().{.if.(null.===.$this->
ca860 73 74 61 72 74 54 69 6d 65 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 4c 6f 67 69 63 45 78 63 startTime).{.throw.new.\LogicExc
ca880 65 70 74 69 6f 6e 28 27 59 6f 75 20 6d 75 73 74 20 73 74 61 72 74 20 74 68 65 20 70 72 6f 67 72 eption('You.must.start.the.progr
ca8a0 65 73 73 20 62 61 72 20 62 65 66 6f 72 65 20 63 61 6c 6c 69 6e 67 20 66 69 6e 69 73 68 28 29 2e ess.bar.before.calling.finish().
ca8c0 27 29 3b 0a 7d 0a 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 73 74 61 72 74 ');.}..if.(null.!==.$this->start
ca8e0 54 69 6d 65 29 20 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 6d 61 78 29 20 7b 0a 24 74 68 69 73 Time).{.if.(!$this->max).{.$this
ca900 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 4f 72 69 67 69 6e ->barChar.=.$this->barCharOrigin
ca920 61 6c 3b 0a 24 74 68 69 73 2d 3e 64 69 73 70 6c 61 79 28 74 72 75 65 29 3b 0a 7d 0a 24 74 68 69 al;.$this->display(true);.}.$thi
ca940 73 2d 3e 73 74 61 72 74 54 69 6d 65 20 3d 20 6e 75 6c 6c 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 s->startTime.=.null;.$this->outp
ca960 75 74 2d 3e 77 72 69 74 65 6c 6e 28 27 27 29 3b 0a 24 74 68 69 73 2d 3e 6f 75 74 70 75 74 20 3d ut->writeln('');.$this->output.=
ca980 20 6e 75 6c 6c 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 .null;.}.}.....private.function.
ca9a0 69 6e 69 74 69 61 6c 69 7a 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 initialize().{.$this->formatVars
ca9c0 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 64 65 66 61 .=.array();.foreach.($this->defa
ca9e0 75 6c 74 46 6f 72 6d 61 74 56 61 72 73 20 61 73 20 24 76 61 72 29 20 7b 0a 69 66 20 28 66 61 6c ultFormatVars.as.$var).{.if.(fal
caa00 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 2c 20 22 25 7b se.!==.strpos($this->format,."%{
caa20 24 76 61 72 7d 25 22 29 29 20 7b 0a 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 24 76 $var}%")).{.$this->formatVars[$v
caa40 61 72 5d 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 ar].=.true;.}.}..if.($this->max.
caa60 3e 20 30 29 20 7b 0a 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 6d 61 78 27 5d 20 3d 20 24 74 >.0).{.$this->widths['max'].=.$t
caa80 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 6d 61 78 29 3b 0a 24 74 68 69 73 2d 3e his->strlen($this->max);.$this->
caaa0 77 69 64 74 68 73 5b 27 63 75 72 72 65 6e 74 27 5d 20 3d 20 24 74 68 69 73 2d 3e 77 69 64 74 68 widths['current'].=.$this->width
caac0 73 5b 27 6d 61 78 27 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 62 61 72 43 68 61 s['max'];.}.else.{.$this->barCha
caae0 72 4f 72 69 67 69 6e 61 6c 20 3d 20 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 3b 0a 24 74 68 69 rOriginal.=.$this->barChar;.$thi
cab00 73 2d 3e 62 61 72 43 68 61 72 20 3d 20 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 s->barChar.=.$this->emptyBarChar
cab20 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 ;.}.}.........private.function.g
cab40 65 6e 65 72 61 74 65 28 24 66 69 6e 69 73 68 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 24 76 61 72 73 enerate($finish.=.false).{.$vars
cab60 20 3d 20 61 72 72 61 79 28 29 3b 0a 24 70 65 72 63 65 6e 74 20 3d 20 30 3b 0a 69 66 20 28 24 74 .=.array();.$percent.=.0;.if.($t
cab80 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 70 65 72 63 65 6e 74 20 3d 20 28 64 6f 75 62 his->max.>.0).{.$percent.=.(doub
caba0 6c 65 29 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 2f 20 24 74 68 69 73 2d 3e 6d 61 78 3b le).$this->current./.$this->max;
cabc0 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b .}..if.(isset($this->formatVars[
cabe0 27 62 61 72 27 5d 29 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 30 3b 0a 0a 69 'bar'])).{.$completeBars.=.0;..i
cac00 66 20 28 24 74 68 69 73 2d 3e 6d 61 78 20 3e 20 30 29 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 f.($this->max.>.0).{.$completeBa
cac20 72 73 20 3d 20 66 6c 6f 6f 72 28 24 70 65 72 63 65 6e 74 20 2a 20 24 74 68 69 73 2d 3e 62 61 72 rs.=.floor($percent.*.$this->bar
cac40 57 69 64 74 68 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 21 24 66 69 6e 69 73 68 29 20 7b Width);.}.else.{.if.(!$finish).{
cac60 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 66 6c 6f 6f 72 28 24 74 68 69 73 2d 3e 63 75 .$completeBars.=.floor($this->cu
cac80 72 72 65 6e 74 20 25 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 29 3b 0a 7d 20 65 6c 73 65 rrent.%.$this->barWidth);.}.else
caca0 20 7b 0a 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 3d 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 .{.$completeBars.=.$this->barWid
cacc0 74 68 3b 0a 7d 0a 7d 0a 0a 24 65 6d 70 74 79 42 61 72 73 20 3d 20 24 74 68 69 73 2d 3e 62 61 72 th;.}.}..$emptyBars.=.$this->bar
cace0 57 69 64 74 68 20 2d 20 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 2d 20 24 74 68 69 73 2d 3e 73 Width.-.$completeBars.-.$this->s
cad00 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 29 3b 0a 24 62 61 72 trlen($this->progressChar);.$bar
cad20 20 3d 20 73 74 72 5f 72 65 70 65 61 74 28 24 74 68 69 73 2d 3e 62 61 72 43 68 61 72 2c 20 24 63 .=.str_repeat($this->barChar,.$c
cad40 6f 6d 70 6c 65 74 65 42 61 72 73 29 3b 0a 69 66 20 28 24 63 6f 6d 70 6c 65 74 65 42 61 72 73 20 ompleteBars);.if.($completeBars.
cad60 3c 20 24 74 68 69 73 2d 3e 62 61 72 57 69 64 74 68 29 20 7b 0a 24 62 61 72 20 2e 3d 20 24 74 68 <.$this->barWidth).{.$bar..=.$th
cad80 69 73 2d 3e 70 72 6f 67 72 65 73 73 43 68 61 72 3b 0a 24 62 61 72 20 2e 3d 20 73 74 72 5f 72 65 is->progressChar;.$bar..=.str_re
cada0 70 65 61 74 28 24 74 68 69 73 2d 3e 65 6d 70 74 79 42 61 72 43 68 61 72 2c 20 24 65 6d 70 74 79 peat($this->emptyBarChar,.$empty
cadc0 42 61 72 73 29 3b 0a 7d 0a 0a 24 76 61 72 73 5b 27 62 61 72 27 5d 20 3d 20 24 62 61 72 3b 0a 7d Bars);.}..$vars['bar'].=.$bar;.}
cade0 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 65 ..if.(isset($this->formatVars['e
cae00 6c 61 70 73 65 64 27 5d 29 29 20 7b 0a 24 65 6c 61 70 73 65 64 20 3d 20 74 69 6d 65 28 29 20 2d lapsed'])).{.$elapsed.=.time().-
cae20 20 24 74 68 69 73 2d 3e 73 74 61 72 74 54 69 6d 65 3b 0a 24 76 61 72 73 5b 27 65 6c 61 70 73 65 .$this->startTime;.$vars['elapse
cae40 64 27 5d 20 3d 20 73 74 72 5f 70 61 64 28 24 74 68 69 73 2d 3e 68 75 6d 61 6e 65 54 69 6d 65 28 d'].=.str_pad($this->humaneTime(
cae60 24 65 6c 61 70 73 65 64 29 2c 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 65 6c 61 70 73 65 $elapsed),.$this->widths['elapse
cae80 64 27 5d 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c 45 46 54 29 3b 0a 7d 0a 0a 69 66 20 28 d'],.'.',.STR_PAD_LEFT);.}..if.(
caea0 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 63 75 72 72 65 6e 74 isset($this->formatVars['current
caec0 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 63 75 72 72 65 6e 74 27 5d 20 3d 20 73 74 72 5f 70 61 '])).{.$vars['current'].=.str_pa
caee0 64 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 2c 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b d($this->current,.$this->widths[
caf00 27 63 75 72 72 65 6e 74 27 5d 2c 20 27 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c 45 46 54 29 3b 0a 'current'],.'.',.STR_PAD_LEFT);.
caf20 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 61 72 73 5b 27 }..if.(isset($this->formatVars['
caf40 6d 61 78 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 6d 61 78 27 5d 20 3d 20 24 74 68 69 73 2d 3e max'])).{.$vars['max'].=.$this->
caf60 6d 61 78 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 66 6f 72 6d 61 74 56 max;.}..if.(isset($this->formatV
caf80 61 72 73 5b 27 70 65 72 63 65 6e 74 27 5d 29 29 20 7b 0a 24 76 61 72 73 5b 27 70 65 72 63 65 6e ars['percent'])).{.$vars['percen
cafa0 74 27 5d 20 3d 20 73 74 72 5f 70 61 64 28 66 6c 6f 6f 72 28 24 70 65 72 63 65 6e 74 20 2a 20 31 t'].=.str_pad(floor($percent.*.1
cafc0 30 30 29 2c 20 24 74 68 69 73 2d 3e 77 69 64 74 68 73 5b 27 70 65 72 63 65 6e 74 27 5d 2c 20 27 00),.$this->widths['percent'],.'
cafe0 20 27 2c 20 53 54 52 5f 50 41 44 5f 4c 45 46 54 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 76 61 .',.STR_PAD_LEFT);.}..return.$va
cb000 72 73 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 68 rs;.}.........private.function.h
cb020 75 6d 61 6e 65 54 69 6d 65 28 24 73 65 63 73 29 0a 7b 0a 24 74 65 78 74 20 3d 20 27 27 3b 0a 66 umaneTime($secs).{.$text.=.'';.f
cb040 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 69 6d 65 46 6f 72 6d 61 74 73 20 61 73 20 24 66 oreach.($this->timeFormats.as.$f
cb060 6f 72 6d 61 74 29 20 7b 0a 69 66 20 28 24 73 65 63 73 20 3c 20 24 66 6f 72 6d 61 74 5b 30 5d 29 ormat).{.if.($secs.<.$format[0])
cb080 20 7b 0a 69 66 20 28 63 6f 75 6e 74 28 24 66 6f 72 6d 61 74 29 20 3d 3d 20 32 29 20 7b 0a 24 74 .{.if.(count($format).==.2).{.$t
cb0a0 65 78 74 20 3d 20 24 66 6f 72 6d 61 74 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 20 65 6c 73 65 20 ext.=.$format[1];.break;.}.else.
cb0c0 7b 0a 24 74 65 78 74 20 3d 20 63 65 69 6c 28 24 73 65 63 73 20 2f 20 24 66 6f 72 6d 61 74 5b 32 {.$text.=.ceil($secs./.$format[2
cb0e0 5d 29 2e 27 20 27 2e 24 66 6f 72 6d 61 74 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 7d 0a 7d 0a ]).'.'.$format[1];.break;.}.}.}.
cb100 0a 72 65 74 75 72 6e 20 24 74 65 78 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 .return.$text;.}........private.
cb120 66 75 6e 63 74 69 6f 6e 20 6f 76 65 72 77 72 69 74 65 28 4f 75 74 70 75 74 49 6e 74 65 72 66 61 function.overwrite(OutputInterfa
cb140 63 65 20 24 6f 75 74 70 75 74 2c 20 24 6d 65 73 73 61 67 65 29 0a 7b 0a 24 6c 65 6e 67 74 68 20 ce.$output,.$message).{.$length.
cb160 3d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 0a 20 69 66 =.$this->strlen($message);....if
cb180 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 .(null.!==.$this->lastMessagesLe
cb1a0 6e 67 74 68 20 26 26 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 ngth.&&.$this->lastMessagesLengt
cb1c0 68 20 3e 20 24 6c 65 6e 67 74 68 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 73 74 72 5f 70 61 h.>.$length).{.$message.=.str_pa
cb1e0 64 28 24 6d 65 73 73 61 67 65 2c 20 24 74 68 69 73 2d 3e 6c 61 73 74 4d 65 73 73 61 67 65 73 4c d($message,.$this->lastMessagesL
cb200 65 6e 67 74 68 2c 20 22 5c 78 32 30 22 2c 20 53 54 52 5f 50 41 44 5f 52 49 47 48 54 29 3b 0a 7d ength,."\x20",.STR_PAD_RIGHT);.}
cb220 0a 0a 0a 20 24 6f 75 74 70 75 74 2d 3e 77 72 69 74 65 28 22 5c 78 30 44 22 29 3b 0a 24 6f 75 74 ....$output->write("\x0D");.$out
cb240 70 75 74 2d 3e 77 72 69 74 65 28 24 6d 65 73 73 61 67 65 29 3b 0a 0a 24 74 68 69 73 2d 3e 6c 61 put->write($message);..$this->la
cb260 73 74 4d 65 73 73 61 67 65 73 4c 65 6e 67 74 68 20 3d 20 24 74 68 69 73 2d 3e 73 74 72 6c 65 6e stMessagesLength.=.$this->strlen
cb280 28 24 6d 65 73 73 61 67 65 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f ($message);.}.....public.functio
cb2a0 6e 20 67 65 74 4e 61 6d 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 27 70 72 6f 67 72 65 73 73 27 3b n.getName().{.return.'progress';
cb2c0 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
cb2e0 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 3b ymfony\Component\Console\Helper;
cb300 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 5c ..use.Symfony\Component\Console\
cb320 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
cb340 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
cb360 77 61 72 65 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c wareInterface;.......abstract.cl
cb380 61 73 73 20 49 6e 70 75 74 41 77 61 72 65 48 65 6c 70 65 72 20 65 78 74 65 6e 64 73 20 48 65 6c ass.InputAwareHelper.extends.Hel
cb3a0 70 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 49 6e 70 75 74 41 77 61 72 65 49 6e 74 65 72 66 61 per.implements.InputAwareInterfa
cb3c0 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 69 6e 70 75 74 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 ce.{.protected.$input;.....publi
cb3e0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 49 6e 70 75 74 28 49 6e 70 75 74 49 6e 74 65 72 66 61 c.function.setInput(InputInterfa
cb400 63 65 20 24 69 6e 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 24 69 6e 70 ce.$input).{.$this->input.=.$inp
cb420 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ut;.}.}.<?php...........namespac
cb440 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 45 76 65 6e e.Symfony\Component\Console\Even
cb460 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 6f 6e 73 6f 6c t;..use.Symfony\Component\Consol
cb480 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
cb4a0 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
cb4c0 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
cb4e0 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
cb500 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 45 76 65 6e 74 44 69 73 70 61 74 63 68 .Symfony\Component\EventDispatch
cb520 65 72 5c 45 76 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 45 76 65 er\Event;.......class.ConsoleEve
cb540 6e 74 20 65 78 74 65 6e 64 73 20 45 76 65 6e 74 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 63 6f nt.extends.Event.{.protected.$co
cb560 6d 6d 61 6e 64 3b 0a 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 mmand;..private.$input;.private.
cb580 24 6f 75 74 70 75 74 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 $output;..public.function.__cons
cb5a0 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 49 6e 74 truct(Command.$command,.InputInt
cb5c0 65 72 66 61 63 65 20 24 69 6e 70 75 74 2c 20 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 erface.$input,.OutputInterface.$
cb5e0 6f 75 74 70 75 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d output).{.$this->command.=.$comm
cb600 61 6e 64 3b 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 68 69 and;.$this->input.=.$input;.$thi
cb620 73 2d 3e 6f 75 74 70 75 74 20 3d 20 24 6f 75 74 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 s->output.=.$output;.}.......pub
cb640 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 7b 0a 72 65 74 75 lic.function.getCommand().{.retu
cb660 72 6e 20 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 rn.$this->command;.}.......publi
cb680 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 6e 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 c.function.getInput().{.return.$
cb6a0 74 68 69 73 2d 3e 69 6e 70 75 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 this->input;.}.......public.func
cb6c0 74 69 6f 6e 20 67 65 74 4f 75 74 70 75 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d tion.getOutput().{.return.$this-
cb6e0 3e 6f 75 74 70 75 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d >output;.}.}.<?php...........nam
cb700 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
cb720 5c 45 76 65 6e 74 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 43 \Event;..use.Symfony\Component\C
cb740 6f 6e 73 6f 6c 65 5c 43 6f 6d 6d 61 6e 64 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d 66 onsole\Command\Command;.use.Symf
cb760 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
cb780 74 49 6e 74 65 72 66 61 63 65 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e tInterface;.use.Symfony\Componen
cb7a0 74 5c 43 6f 6e 73 6f 6c 65 5c 4f 75 74 70 75 74 5c 4f 75 74 70 75 74 49 6e 74 65 72 66 61 63 65 t\Console\Output\OutputInterface
cb7c0 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 54 65 72 6d 69 6e 61 74 65 45 76 ;.......class.ConsoleTerminateEv
cb7e0 65 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 0a 7b 0a 0a 0a 0a 0a 0a ent.extends.ConsoleEvent.{......
cb800 70 72 69 76 61 74 65 20 24 65 78 69 74 43 6f 64 65 3b 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 private.$exitCode;..public.funct
cb820 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 ion.__construct(Command.$command
cb840 2c 20 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 ,.InputInterface.$input,.OutputI
cb860 6e 74 65 72 66 61 63 65 20 24 6f 75 74 70 75 74 2c 20 24 65 78 69 74 43 6f 64 65 29 0a 7b 0a 70 nterface.$output,.$exitCode).{.p
cb880 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e arent::__construct($command,.$in
cb8a0 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 45 78 69 74 43 6f put,.$output);..$this->setExitCo
cb8c0 64 65 28 24 65 78 69 74 43 6f 64 65 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 de($exitCode);.}.......public.fu
cb8e0 6e 63 74 69 6f 6e 20 73 65 74 45 78 69 74 43 6f 64 65 28 24 65 78 69 74 43 6f 64 65 29 0a 7b 0a nction.setExitCode($exitCode).{.
cb900 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 20 3d 20 28 69 6e 74 29 20 24 65 78 69 74 43 6f 64 $this->exitCode.=.(int).$exitCod
cb920 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 e;.}.......public.function.getEx
cb940 69 74 43 6f 64 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 itCode().{.return.$this->exitCod
cb960 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 65 e;.}.}.<?php...........namespace
cb980 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 45 76 65 6e 74 .Symfony\Component\Console\Event
cb9a0 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
cb9c0 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 6f \Command\Command;.use.Symfony\Co
cb9e0 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 72 mponent\Console\Input\InputInter
cba00 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 73 face;.use.Symfony\Component\Cons
cba20 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;.....
cba40 0a 0a 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 45 78 63 65 70 74 69 6f 6e 45 76 65 6e 74 20 65 78 ..class.ConsoleExceptionEvent.ex
cba60 74 65 6e 64 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 0a 7b 0a 70 72 69 76 61 74 65 20 24 65 78 tends.ConsoleEvent.{.private.$ex
cba80 63 65 70 74 69 6f 6e 3b 0a 70 72 69 76 61 74 65 20 24 65 78 69 74 43 6f 64 65 3b 0a 0a 70 75 62 ception;.private.$exitCode;..pub
cbaa0 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 6f 6d 6d 61 6e 64 lic.function.__construct(Command
cbac0 20 24 63 6f 6d 6d 61 6e 64 2c 20 49 6e 70 75 74 49 6e 74 65 72 66 61 63 65 20 24 69 6e 70 75 74 .$command,.InputInterface.$input
cbae0 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 5c 45 78 63 65 ,.OutputInterface.$output,.\Exce
cbb00 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 2c 20 24 65 78 69 74 43 6f 64 65 29 0a 7b 0a 70 ption.$exception,.$exitCode).{.p
cbb20 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 69 6e arent::__construct($command,.$in
cbb40 70 75 74 2c 20 24 6f 75 74 70 75 74 29 3b 0a 0a 24 74 68 69 73 2d 3e 73 65 74 45 78 63 65 70 74 put,.$output);..$this->setExcept
cbb60 69 6f 6e 28 24 65 78 63 65 70 74 69 6f 6e 29 3b 0a 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 ion($exception);.$this->exitCode
cbb80 20 3d 20 28 69 6e 74 29 20 24 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c .=.(int).$exitCode;.}.......publ
cbba0 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 63 65 70 74 69 6f 6e 28 29 0a 7b 0a 72 65 74 ic.function.getException().{.ret
cbbc0 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a urn.$this->exception;.}.........
cbbe0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 63 65 70 74 69 6f 6e 28 5c 45 78 public.function.setException(\Ex
cbc00 63 65 70 74 69 6f 6e 20 24 65 78 63 65 70 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 63 ception.$exception).{.$this->exc
cbc20 65 70 74 69 6f 6e 20 3d 20 24 65 78 63 65 70 74 69 6f 6e 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 eption.=.$exception;.}.......pub
cbc40 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 45 78 69 74 43 6f 64 65 28 29 0a 7b 0a 72 65 74 lic.function.getExitCode().{.ret
cbc60 75 72 6e 20 24 74 68 69 73 2d 3e 65 78 69 74 43 6f 64 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a urn.$this->exitCode;.}.}.<?php..
cbc80 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
cbca0 6e 65 6e 74 5c 43 6f 6e 73 6f 6c 65 5c 45 76 65 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 nent\Console\Event;.......class.
cbcc0 43 6f 6e 73 6f 6c 65 43 6f 6d 6d 61 6e 64 45 76 65 6e 74 20 65 78 74 65 6e 64 73 20 43 6f 6e 73 ConsoleCommandEvent.extends.Cons
cbce0 6f 6c 65 45 76 65 6e 74 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d oleEvent.{.}.<?php...........nam
cbd00 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
cbd20 3b 0a 0a 0a 0a 0a 0a 0a 66 69 6e 61 6c 20 63 6c 61 73 73 20 43 6f 6e 73 6f 6c 65 45 76 65 6e 74 ;.......final.class.ConsoleEvent
cbd40 73 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 43 4f 4d 4d 41 4e 44 20 3d 20 27 63 s.{...........const.COMMAND.=.'c
cbd60 6f 6e 73 6f 6c 65 2e 63 6f 6d 6d 61 6e 64 27 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 onsole.command';...........const
cbd80 20 54 45 52 4d 49 4e 41 54 45 20 3d 20 27 63 6f 6e 73 6f 6c 65 2e 74 65 72 6d 69 6e 61 74 65 27 .TERMINATE.=.'console.terminate'
cbda0 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6f 6e 73 74 20 45 58 43 45 50 54 49 4f 4e 20 3d 20 27 ;............const.EXCEPTION.=.'
cbdc0 63 6f 6e 73 6f 6c 65 2e 65 78 63 65 70 74 69 6f 6e 27 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a console.exception';.}.<?php.....
cbde0 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
cbe00 74 5c 46 69 6e 64 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 t\Finder;..use.Symfony\Component
cbe20 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 \Finder\Adapter\AdapterInterface
cbe40 3b 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 65 72 5c 41 ;.use.Symfony\Component\Finder\A
cbe60 64 61 70 74 65 72 5c 47 6e 75 46 69 6e 64 41 64 61 70 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f dapter\GnuFindAdapter;.use.Symfo
cbe80 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 42 73 64 46 ny\Component\Finder\Adapter\BsdF
cbea0 69 6e 64 41 64 61 70 74 65 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e indAdapter;.use.Symfony\Componen
cbec0 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 50 68 70 41 64 61 70 74 65 72 3b 0a 75 73 65 t\Finder\Adapter\PhpAdapter;.use
cbee0 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 45 78 63 65 70 74 .Symfony\Component\Finder\Except
cbf00 69 6f 6e 5c 45 78 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a ion\ExceptionInterface;.........
cbf20 0a 0a 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 ........class.Finder.implements.
cbf40 5c 49 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 \IteratorAggregate,.\Countable.{
cbf60 0a 63 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 .const.IGNORE_VCS_FILES.=.1;.con
cbf80 73 74 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 st.IGNORE_DOT_FILES.=.2;..privat
cbfa0 65 20 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 e.$mode.=.0;.private.$names.=.ar
cbfc0 72 61 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 ray();.private.$notNames.=.array
cbfe0 28 29 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 ();.private.$exclude.=.array();.
cc000 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 29 3b 0a 70 72 69 76 private.$filters.=.array();.priv
cc020 61 74 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 ate.$depths.=.array();.private.$
cc040 73 69 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 sizes.=.array();.private.$follow
cc060 4c 69 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 Links.=.false;.private.$sort.=.f
cc080 61 6c 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 alse;.private.$ignore.=.0;.priva
cc0a0 74 65 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 te.$dirs.=.array();.private.$dat
cc0c0 65 73 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 es.=.array();.private.$iterators
cc0e0 20 3d 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 .=.array();.private.$contains.=.
cc100 61 72 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 array();.private.$notContains.=.
cc120 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 61 64 61 70 74 65 72 73 20 3d 20 61 72 72 array();.private.$adapters.=.arr
cc140 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 70 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a ay();.private.$paths.=.array();.
cc160 70 72 69 76 61 74 65 20 24 6e 6f 74 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 private.$notPaths.=.array();.pri
cc180 76 61 74 65 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 66 61 6c vate.$ignoreUnreadableDirs.=.fal
cc1a0 73 65 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 76 63 73 50 61 74 74 65 72 6e 73 se;..private.static.$vcsPatterns
cc1c0 20 3d 20 61 72 72 61 79 28 27 2e 73 76 6e 27 2c 20 27 5f 73 76 6e 27 2c 20 27 43 56 53 27 2c 20 .=.array('.svn',.'_svn',.'CVS',.
cc1e0 27 5f 64 61 72 63 73 27 2c 20 27 2e 61 72 63 68 2d 70 61 72 61 6d 73 27 2c 20 27 2e 6d 6f 6e 6f '_darcs',.'.arch-params',.'.mono
cc200 74 6f 6e 65 27 2c 20 27 2e 62 7a 72 27 2c 20 27 2e 67 69 74 27 2c 20 27 2e 68 67 27 29 3b 0a 0a tone',.'.bzr',.'.git',.'.hg');..
cc220 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 29 ...public.function.__construct()
cc240 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 .{.$this->ignore.=.static::IGNOR
cc260 45 5f 56 43 53 5f 46 49 4c 45 53 20 7c 20 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 44 4f 54 E_VCS_FILES.|.static::IGNORE_DOT
cc280 5f 46 49 4c 45 53 3b 0a 0a 24 74 68 69 73 0a 2d 3e 61 64 64 41 64 61 70 74 65 72 28 6e 65 77 20 _FILES;..$this.->addAdapter(new.
cc2a0 47 6e 75 46 69 6e 64 41 64 61 70 74 65 72 28 29 29 0a 2d 3e 61 64 64 41 64 61 70 74 65 72 28 6e GnuFindAdapter()).->addAdapter(n
cc2c0 65 77 20 42 73 64 46 69 6e 64 41 64 61 70 74 65 72 28 29 29 0a 2d 3e 61 64 64 41 64 61 70 74 65 ew.BsdFindAdapter()).->addAdapte
cc2e0 72 28 6e 65 77 20 50 68 70 41 64 61 70 74 65 72 28 29 2c 20 2d 35 30 29 0a 2d 3e 73 65 74 41 64 r(new.PhpAdapter(),.-50).->setAd
cc300 61 70 74 65 72 28 27 70 68 70 27 29 0a 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 apter('php').;.}.........public.
cc320 73 74 61 74 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 static.function.create().{.retur
cc340 6e 20 6e 65 77 20 73 74 61 74 69 63 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 n.new.static();.}..........publi
cc360 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 64 61 70 74 65 72 28 41 64 61 70 74 65 72 5c 41 64 c.function.addAdapter(Adapter\Ad
cc380 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 70 74 65 72 2c 20 24 70 72 69 6f 72 69 apterInterface.$adapter,.$priori
cc3a0 74 79 20 3d 20 30 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 5b 24 61 64 61 70 74 ty.=.0).{.$this->adapters[$adapt
cc3c0 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 5d 20 3d 20 61 72 72 61 79 28 0a 27 61 64 61 70 74 65 72 er->getName()].=.array(.'adapter
cc3e0 27 20 3d 3e 20 24 61 64 61 70 74 65 72 2c 0a 27 70 72 69 6f 72 69 74 79 27 20 3d 3e 20 24 70 72 '.=>.$adapter,.'priority'.=>.$pr
cc400 69 6f 72 69 74 79 2c 0a 27 73 65 6c 65 63 74 65 64 27 20 3d 3e 20 66 61 6c 73 65 2c 0a 29 3b 0a iority,.'selected'.=>.false,.);.
cc420 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 3b 0a 7d .return.$this->sortAdapters();.}
cc440 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 75 73 65 42 65 73 74 41 64 .......public.function.useBestAd
cc460 61 70 74 65 72 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 72 65 73 65 74 41 64 61 70 74 65 72 53 65 6c apter().{.$this->resetAdapterSel
cc480 65 63 74 69 6f 6e 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 72 74 41 64 61 ection();..return.$this->sortAda
cc4a0 70 74 65 72 73 28 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 pters();.}...........public.func
cc4c0 74 69 6f 6e 20 73 65 74 41 64 61 70 74 65 72 28 24 6e 61 6d 65 29 0a 7b 0a 69 66 20 28 21 69 73 tion.setAdapter($name).{.if.(!is
cc4e0 73 65 74 28 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 5b 24 6e 61 6d 65 5d 29 29 20 7b 0a 74 set($this->adapters[$name])).{.t
cc500 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
cc520 6f 6e 28 73 70 72 69 6e 74 66 28 27 41 64 61 70 74 65 72 20 22 25 73 22 20 64 6f 65 73 20 6e 6f on(sprintf('Adapter."%s".does.no
cc540 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 72 65 t.exist.',.$name));.}..$this->re
cc560 73 65 74 41 64 61 70 74 65 72 53 65 6c 65 63 74 69 6f 6e 28 29 3b 0a 24 74 68 69 73 2d 3e 61 64 setAdapterSelection();.$this->ad
cc580 61 70 74 65 72 73 5b 24 6e 61 6d 65 5d 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 3d 20 74 72 75 65 apters[$name]['selected'].=.true
cc5a0 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 3b ;..return.$this->sortAdapters();
cc5c0 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 6d 6f 76 65 41 .}.......public.function.removeA
cc5e0 64 61 70 74 65 72 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 20 3d 20 61 72 dapters().{.$this->adapters.=.ar
cc600 72 61 79 28 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 ray();..return.$this;.}.......pu
cc620 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 64 61 70 74 65 72 73 28 29 0a 7b 0a 72 65 blic.function.getAdapters().{.re
cc640 74 75 72 6e 20 61 72 72 61 79 5f 76 61 6c 75 65 73 28 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 turn.array_values(array_map(func
cc660 74 69 6f 6e 20 28 61 72 72 61 79 20 24 61 64 61 70 74 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 24 tion.(array.$adapter).{.return.$
cc680 61 64 61 70 74 65 72 5b 27 61 64 61 70 74 65 72 27 5d 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 61 64 adapter['adapter'];.},.$this->ad
cc6a0 61 70 74 65 72 73 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 apters));.}.........public.funct
cc6c0 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.
cc6e0 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
cc700 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
cc720 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
cc740 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
cc760 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
cc780 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;.}.............
cc7a0 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
cc7c0 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
cc7e0 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);
cc800 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;.}...............
cc820 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
cc840 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
cc860 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
cc880 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
cc8a0 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).{.
cc8c0 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
cc8e0 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
cc900 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
cc920 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
cc940 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
cc960 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).{.$
cc980 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
cc9a0 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 turn.$this;.}................pub
cc9c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6e 6f 74 43 6f 6e 74 61 69 6e 73 28 24 70 61 74 74 65 72 lic.function.notContains($patter
cc9e0 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 5b 5d 20 3d 20 24 70 61 74 n).{.$this->notContains[].=.$pat
cca00 74 65 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a tern;..return.$this;.}..........
cca20 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 74 68 28 24 70 61 ........public.function.path($pa
cca40 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 73 5b 5d 20 3d 20 24 70 61 74 74 65 ttern).{.$this->paths[].=.$patte
cca60 72 6e 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a rn;..return.$this;.}............
cca80 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 50 61 74 68 28 24 70 ......public.function.notPath($p
ccaa0 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 5b 5d 20 3d 20 24 70 attern).{.$this->notPaths[].=.$p
ccac0 61 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 attern;..return.$this;.}........
ccae0 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 69 7a 65 28 24 ..........public.function.size($
ccb00 73 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 size).{.$this->sizes[].=.new.Com
ccb20 70 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 parator\NumberComparator($size);
ccb40 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
ccb60 62 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 blic.function.exclude($dirs).{.$
ccb80 74 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 this->exclude.=.array_merge($thi
ccba0 73 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 s->exclude,.(array).$dirs);..ret
ccbc0 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 urn.$this;.}.............public.
ccbe0 66 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 function.ignoreDotFiles($ignoreD
ccc00 6f 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 otFiles).{.if.($ignoreDotFiles).
ccc20 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 {.$this->ignore.=.$this->ignore.
ccc40 7c 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 |.static::IGNORE_DOT_FILES;.}.el
ccc60 73 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 se.{.$this->ignore.=.$this->igno
ccc80 72 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 re.&.~static::IGNORE_DOT_FILES;.
ccca0 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 }..return.$this;.}.............p
cccc0 75 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 ublic.function.ignoreVCS($ignore
ccce0 56 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 VCS).{.if.($ignoreVCS).{.$this->
ccd00 69 67 6e 6f 72 65 20 3d 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 20 7c 20 73 74 61 74 69 63 3a ignore.=.$this->ignore.|.static:
ccd20 3a 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 :IGNORE_VCS_FILES;.}.else.{.$thi
ccd40 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 26 20 7e 73 74 61 s->ignore.=.$this->ignore.&.~sta
ccd60 74 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 tic::IGNORE_VCS_FILES;.}..return
ccd80 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 73 74 61 74 69 63 20 .$this;.}.........public.static.
ccda0 66 75 6e 63 74 69 6f 6e 20 61 64 64 56 43 53 50 61 74 74 65 72 6e 28 24 70 61 74 74 65 72 6e 29 function.addVCSPattern($pattern)
ccdc0 0a 7b 0a 66 6f 72 65 61 63 68 20 28 28 61 72 72 61 79 29 20 24 70 61 74 74 65 72 6e 20 61 73 20 .{.foreach.((array).$pattern.as.
ccde0 24 70 29 20 7b 0a 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 5b 5d 20 3d 20 24 70 3b $p).{.self::$vcsPatterns[].=.$p;
cce00 0a 7d 0a 0a 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 20 3d 20 61 72 72 61 79 5f 75 .}..self::$vcsPatterns.=.array_u
cce20 6e 69 71 75 65 28 73 65 6c 66 3a 3a 24 76 63 73 50 61 74 74 65 72 6e 73 29 3b 0a 7d 0a 0a 0a 0a nique(self::$vcsPatterns);.}....
cce40 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
cce60 74 28 5c 43 6c 6f 73 75 72 65 20 24 63 6c 6f 73 75 72 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f t(\Closure.$closure).{.$this->so
cce80 72 74 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a rt.=.$closure;..return.$this;.}.
ccea0 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 ............public.function.sort
ccec0 42 79 4e 61 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f ByName().{.$this->sort.=.Iterato
ccee0 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 r\SortableIterator::SORT_BY_NAME
ccf00 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ;..return.$this;.}.............p
ccf20 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 54 79 70 65 28 29 0a 7b 0a 24 74 ublic.function.sortByType().{.$t
ccf40 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 his->sort.=.Iterator\SortableIte
ccf60 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 rator::SORT_BY_TYPE;..return.$th
ccf80 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 is;.}...............public.funct
ccfa0 69 6f 6e 20 73 6f 72 74 42 79 41 63 63 65 73 73 65 64 54 69 6d 65 28 29 0a 7b 0a 24 74 68 69 73 ion.sortByAccessedTime().{.$this
ccfc0 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 ->sort.=.Iterator\SortableIterat
ccfe0 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 41 43 43 45 53 53 45 44 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 or::SORT_BY_ACCESSED_TIME;..retu
cd000 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c rn.$this;.}.................publ
cd020 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 43 68 61 6e 67 65 64 54 69 6d 65 28 29 0a ic.function.sortByChangedTime().
cd040 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c {.$this->sort.=.Iterator\Sortabl
cd060 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 43 48 41 4e 47 45 44 5f 54 49 4d 45 3b eIterator::SORT_BY_CHANGED_TIME;
cd080 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;.}...............
cd0a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 42 79 4d 6f 64 69 66 69 65 64 54 69 public.function.sortByModifiedTi
cd0c0 6d 65 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 49 74 65 72 61 74 6f 72 5c 53 6f me().{.$this->sort.=.Iterator\So
cd0e0 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 4d 4f 44 49 46 49 45 44 rtableIterator::SORT_BY_MODIFIED
cd100 5f 54 49 4d 45 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a _TIME;..return.$this;.}.........
cd120 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 69 6c 74 65 72 28 5c 43 .......public.function.filter(\C
cd140 6c 6f 73 75 72 65 20 24 63 6c 6f 73 75 72 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 losure.$closure).{.$this->filter
cd160 73 5b 5d 20 3d 20 24 63 6c 6f 73 75 72 65 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d s[].=.$closure;..return.$this;.}
cd180 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 66 6f 6c 6c 6f 77 4c .........public.function.followL
cd1a0 69 6e 6b 73 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 74 72 inks().{.$this->followLinks.=.tr
cd1c0 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 70 ue;..return.$this;.}...........p
cd1e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 ublic.function.ignoreUnreadableD
cd200 69 72 73 28 24 69 67 6e 6f 72 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e irs($ignore.=.true).{.$this->ign
cd220 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 69 oreUnreadableDirs.=.(Boolean).$i
cd240 67 6e 6f 72 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 gnore;..return.$this;.}.........
cd260 0a 0a 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 ....public.function.in($dirs).{.
cd280 24 72 65 73 6f 6c 76 65 64 44 69 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 66 6f 72 65 61 63 $resolvedDirs.=.array();..foreac
cd2a0 68 20 28 28 61 72 72 61 79 29 20 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 h.((array).$dirs.as.$dir).{.if.(
cd2c0 69 73 5f 64 69 72 28 24 64 69 72 29 29 20 7b 0a 24 72 65 73 6f 6c 76 65 64 44 69 72 73 5b 5d 20 is_dir($dir)).{.$resolvedDirs[].
cd2e0 3d 20 24 64 69 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 67 6c 6f 62 20 3d 20 67 6c 6f 62 28 24 =.$dir;.}.elseif.($glob.=.glob($
cd300 64 69 72 2c 20 47 4c 4f 42 5f 4f 4e 4c 59 44 49 52 29 29 20 7b 0a 24 72 65 73 6f 6c 76 65 64 44 dir,.GLOB_ONLYDIR)).{.$resolvedD
cd320 69 72 73 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 24 72 65 73 6f 6c 76 65 64 44 69 72 73 2c irs.=.array_merge($resolvedDirs,
cd340 20 24 67 6c 6f 62 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 76 .$glob);.}.else.{.throw.new.\Inv
cd360 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
cd380 68 65 20 22 25 73 22 20 64 69 72 65 63 74 6f 72 79 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 he."%s".directory.does.not.exist
cd3a0 2e 27 2c 20 24 64 69 72 29 29 3b 0a 7d 0a 7d 0a 0a 24 74 68 69 73 2d 3e 64 69 72 73 20 3d 20 61 .',.$dir));.}.}..$this->dirs.=.a
cd3c0 72 72 61 79 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 64 69 72 73 2c 20 24 72 65 73 6f 6c 76 65 rray_merge($this->dirs,.$resolve
cd3e0 64 44 69 72 73 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a dDirs);..return.$this;.}........
cd400 0a 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 29 ...public.function.getIterator()
cd420 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 64 69 72 73 29 20 .{.if.(0.===.count($this->dirs).
cd440 26 26 20 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 29 &&.0.===.count($this->iterators)
cd460 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 59 ).{.throw.new.\LogicException('Y
cd480 6f 75 20 6d 75 73 74 20 63 61 6c 6c 20 6f 6e 65 20 6f 66 20 69 6e 28 29 20 6f 72 20 61 70 70 65 ou.must.call.one.of.in().or.appe
cd4a0 6e 64 28 29 20 6d 65 74 68 6f 64 73 20 62 65 66 6f 72 65 20 69 74 65 72 61 74 69 6e 67 20 6f 76 nd().methods.before.iterating.ov
cd4c0 65 72 20 61 20 46 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 er.a.Finder.');.}..if.(1.===.cou
cd4e0 6e 74 28 24 74 68 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 nt($this->dirs).&&.0.===.count($
cd500 74 68 69 73 2d 3e 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 this->iterators)).{.return.$this
cd520 2d 3e 73 65 61 72 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 ->searchInDirectory($this->dirs[
cd540 30 5d 29 3b 0a 7d 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 0]);.}..$iterator.=.new.\AppendI
cd560 74 65 72 61 74 6f 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 terator();.foreach.($this->dirs.
cd580 61 73 20 24 64 69 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 as.$dir).{.$iterator->append($th
cd5a0 69 73 2d 3e 73 65 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 is->searchInDirectory($dir));.}.
cd5c0 0a 66 6f 72 65 61 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 .foreach.($this->iterators.as.$i
cd5e0 74 29 20 7b 0a 24 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 t).{.$iterator->append($it);.}..
cd600 72 65 74 75 72 6e 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a return.$iterator;.}.............
cd620 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 69 74 65 72 61 74 6f 72 public.function.append($iterator
cd640 29 0a 7b 0a 69 66 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 ).{.if.($iterator.instanceof.\It
cd660 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 29 20 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 eratorAggregate).{.$this->iterat
cd680 6f 72 73 5b 5d 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 ors[].=.$iterator->getIterator()
cd6a0 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 74 65 72 61 74 6f 72 20 69 6e 73 74 61 6e 63 65 6f 66 ;.}.elseif.($iterator.instanceof
cd6c0 20 5c 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d .\Iterator).{.$this->iterators[]
cd6e0 20 3d 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 74 65 72 61 74 6f .=.$iterator;.}.elseif.($iterato
cd700 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 54 72 61 76 65 72 73 61 62 6c 65 20 7c 7c 20 69 73 5f r.instanceof.\Traversable.||.is_
cd720 61 72 72 61 79 28 24 69 74 65 72 61 74 6f 72 29 29 20 7b 0a 24 69 74 20 3d 20 6e 65 77 20 5c 41 array($iterator)).{.$it.=.new.\A
cd740 72 72 61 79 49 74 65 72 61 74 6f 72 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 69 74 65 72 61 74 rrayIterator();.foreach.($iterat
cd760 6f 72 20 61 73 20 24 66 69 6c 65 29 20 7b 0a 24 69 74 2d 3e 61 70 70 65 6e 64 28 24 66 69 6c 65 or.as.$file).{.$it->append($file
cd780 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 20 3f 20 24 66 69 6c 65 .instanceof.\SplFileInfo.?.$file
cd7a0 20 3a 20 6e 65 77 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 28 24 66 69 6c 65 29 29 3b 0a 7d 0a 24 .:.new.\SplFileInfo($file));.}.$
cd7c0 74 68 69 73 2d 3e 69 74 65 72 61 74 6f 72 73 5b 5d 20 3d 20 24 69 74 3b 0a 7d 20 65 6c 73 65 20 this->iterators[].=.$it;.}.else.
cd7e0 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
cd800 70 74 69 6f 6e 28 27 46 69 6e 64 65 72 3a 3a 61 70 70 65 6e 64 28 29 20 6d 65 74 68 6f 64 20 77 ption('Finder::append().method.w
cd820 72 6f 6e 67 20 61 72 67 75 6d 65 6e 74 20 74 79 70 65 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e rong.argument.type.');.}..return
cd840 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .$this;.}.......public.function.
cd860 63 6f 75 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 74 65 72 61 74 6f 72 5f 63 6f 75 6e 74 28 count().{.return.iterator_count(
cd880 24 74 68 69 73 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 69 $this->getIterator());.}.....pri
cd8a0 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 73 6f 72 74 41 64 61 70 74 65 72 73 28 29 0a 7b 0a 75 vate.function.sortAdapters().{.u
cd8c0 61 73 6f 72 74 28 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 2c 20 66 75 6e 63 74 69 6f 6e 20 asort($this->adapters,.function.
cd8e0 28 61 72 72 61 79 20 24 61 2c 20 61 72 72 61 79 20 24 62 29 20 7b 0a 69 66 20 28 24 61 5b 27 73 (array.$a,.array.$b).{.if.($a['s
cd900 65 6c 65 63 74 65 64 27 5d 20 7c 7c 20 24 62 5b 27 73 65 6c 65 63 74 65 64 27 5d 29 20 7b 0a 72 elected'].||.$b['selected']).{.r
cd920 65 74 75 72 6e 20 24 61 5b 27 73 65 6c 65 63 74 65 64 27 5d 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d eturn.$a['selected'].?.-1.:.1;.}
cd940 0a 0a 72 65 74 75 72 6e 20 24 61 5b 27 70 72 69 6f 72 69 74 79 27 5d 20 3e 20 24 62 5b 27 70 72 ..return.$a['priority'].>.$b['pr
cd960 69 6f 72 69 74 79 27 5d 20 3f 20 2d 31 20 3a 20 31 3b 0a 7d 29 3b 0a 0a 72 65 74 75 72 6e 20 24 iority'].?.-1.:.1;.});..return.$
cd980 74 68 69 73 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 this;.}.........private.function
cd9a0 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 69 72 29 0a 7b 0a 69 66 20 28 73 .searchInDirectory($dir).{.if.(s
cd9c0 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 74 61 tatic::IGNORE_VCS_FILES.===.(sta
cd9e0 74 69 63 3a 3a 49 47 4e 4f 52 45 5f 56 43 53 5f 46 49 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 69 tic::IGNORE_VCS_FILES.&.$this->i
cda00 67 6e 6f 72 65 29 29 20 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 gnore)).{.$this->exclude.=.array
cda20 5f 6d 65 72 67 65 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 2c 20 73 65 6c 66 3a 3a 24 76 63 _merge($this->exclude,.self::$vc
cda40 73 50 61 74 74 65 72 6e 73 29 3b 0a 7d 0a 0a 69 66 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 sPatterns);.}..if.(static::IGNOR
cda60 45 5f 44 4f 54 5f 46 49 4c 45 53 20 3d 3d 3d 20 28 73 74 61 74 69 63 3a 3a 49 47 4e 4f 52 45 5f E_DOT_FILES.===.(static::IGNORE_
cda80 44 4f 54 5f 46 49 4c 45 53 20 26 20 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 29 29 20 7b 0a 24 74 DOT_FILES.&.$this->ignore)).{.$t
cdaa0 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 5b 5d 20 3d 20 27 23 28 5e 7c 2f 29 5c 2e 2e 2b 28 2f 7c his->notPaths[].=.'#(^|/)\..+(/|
cdac0 24 29 23 27 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 $)#';.}..foreach.($this->adapter
cdae0 73 20 61 73 20 24 61 64 61 70 74 65 72 29 20 7b 0a 69 66 20 28 24 61 64 61 70 74 65 72 5b 27 61 s.as.$adapter).{.if.($adapter['a
cdb00 64 61 70 74 65 72 27 5d 2d 3e 69 73 53 75 70 70 6f 72 74 65 64 28 29 29 20 7b 0a 74 72 79 20 7b dapter']->isSupported()).{.try.{
cdb20 0a 72 65 74 75 72 6e 20 24 74 68 69 73 0a 2d 3e 62 75 69 6c 64 41 64 61 70 74 65 72 28 24 61 64 .return.$this.->buildAdapter($ad
cdb40 61 70 74 65 72 5b 27 61 64 61 70 74 65 72 27 5d 29 0a 2d 3e 73 65 61 72 63 68 49 6e 44 69 72 65 apter['adapter']).->searchInDire
cdb60 63 74 6f 72 79 28 24 64 69 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 45 78 63 65 70 74 69 6f 6e 49 ctory($dir);.}.catch.(ExceptionI
cdb80 6e 74 65 72 66 61 63 65 20 24 65 29 20 7b 7d 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 5c nterface.$e).{}.}.}..throw.new.\
cdba0 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 27 4e 6f 20 73 75 70 70 6f 72 74 65 64 20 61 RuntimeException('No.supported.a
cdbc0 64 61 70 74 65 72 20 66 6f 75 6e 64 2e 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 dapter.found.');.}.......private
cdbe0 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 41 64 61 70 74 65 72 28 41 64 61 70 74 65 72 49 6e .function.buildAdapter(AdapterIn
cdc00 74 65 72 66 61 63 65 20 24 61 64 61 70 74 65 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 61 64 61 70 terface.$adapter).{.return.$adap
cdc20 74 65 72 0a 2d 3e 73 65 74 46 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 24 74 68 69 73 2d 3e 66 6f 6c 6c ter.->setFollowLinks($this->foll
cdc40 6f 77 4c 69 6e 6b 73 29 0a 2d 3e 73 65 74 44 65 70 74 68 73 28 24 74 68 69 73 2d 3e 64 65 70 74 owLinks).->setDepths($this->dept
cdc60 68 73 29 0a 2d 3e 73 65 74 4d 6f 64 65 28 24 74 68 69 73 2d 3e 6d 6f 64 65 29 0a 2d 3e 73 65 74 hs).->setMode($this->mode).->set
cdc80 45 78 63 6c 75 64 65 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 0a 2d 3e 73 65 74 4e 61 6d Exclude($this->exclude).->setNam
cdca0 65 73 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 29 0a 2d 3e 73 65 74 4e 6f 74 4e 61 6d 65 73 28 24 es($this->names).->setNotNames($
cdcc0 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 0a 2d 3e 73 65 74 43 6f 6e 74 61 69 6e 73 28 24 74 this->notNames).->setContains($t
cdce0 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 29 0a 2d 3e 73 65 74 4e 6f 74 43 6f 6e 74 61 69 6e 73 28 his->contains).->setNotContains(
cdd00 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 0a 2d 3e 73 65 74 53 69 7a 65 73 28 24 $this->notContains).->setSizes($
cdd20 74 68 69 73 2d 3e 73 69 7a 65 73 29 0a 2d 3e 73 65 74 44 61 74 65 73 28 24 74 68 69 73 2d 3e 64 this->sizes).->setDates($this->d
cdd40 61 74 65 73 29 0a 2d 3e 73 65 74 46 69 6c 74 65 72 73 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 ates).->setFilters($this->filter
cdd60 73 29 0a 2d 3e 73 65 74 53 6f 72 74 28 24 74 68 69 73 2d 3e 73 6f 72 74 29 0a 2d 3e 73 65 74 50 s).->setSort($this->sort).->setP
cdd80 61 74 68 28 24 74 68 69 73 2d 3e 70 61 74 68 73 29 0a 2d 3e 73 65 74 4e 6f 74 50 61 74 68 28 24 ath($this->paths).->setNotPath($
cdda0 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 29 0a 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 this->notPaths).->ignoreUnreadab
cddc0 6c 65 44 69 72 73 28 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 leDirs($this->ignoreUnreadableDi
cdde0 72 73 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 72 65 73 65 rs);.}.....private.function.rese
cde00 74 41 64 61 70 74 65 72 53 65 6c 65 63 74 69 6f 6e 28 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 tAdapterSelection().{.$this->ada
cde20 70 74 65 72 73 20 3d 20 61 72 72 61 79 5f 6d 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 61 72 72 61 pters.=.array_map(function.(arra
cde40 79 20 24 70 72 6f 70 65 72 74 69 65 73 29 20 7b 0a 24 70 72 6f 70 65 72 74 69 65 73 5b 27 73 65 y.$properties).{.$properties['se
cde60 6c 65 63 74 65 64 27 5d 20 3d 20 66 61 6c 73 65 3b 0a 0a 72 65 74 75 72 6e 20 24 70 72 6f 70 65 lected'].=.false;..return.$prope
cde80 72 74 69 65 73 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 73 29 3b 0a 7d 0a 7d 0a rties;.},.$this->adapters);.}.}.
cdea0 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e <?php...........namespace.Symfon
cdec0 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 3b 0a 0a 0a 0a 0a 63 6c y\Component\Finder\Shell;.....cl
cdee0 61 73 73 20 43 6f 6d 6d 61 6e 64 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 72 65 6e 74 ass.Command.{....private.$parent
cdf00 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 62 69 74 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a ;.....private.$bits.=.array();..
cdf20 0a 0a 0a 70 72 69 76 61 74 65 20 24 6c 61 62 65 6c 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a ...private.$labels.=.array();...
cdf40 0a 0a 70 72 69 76 61 74 65 20 24 65 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 0a 0a 0a 0a 0a 70 ..private.$errorHandler;.......p
cdf60 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 6f 6d 6d 61 ublic.function.__construct(Comma
cdf80 6e 64 20 24 70 61 72 65 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 72 65 nd.$parent.=.null).{.$this->pare
cdfa0 6e 74 20 3d 20 24 70 61 72 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e nt.=.$parent;.}.......public.fun
cdfc0 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
cdfe0 73 2d 3e 6a 6f 69 6e 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 s->join();.}.........public.stat
ce000 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 43 6f 6d 6d 61 6e 64 20 24 70 61 72 65 ic.function.create(Command.$pare
ce020 6e 74 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 24 70 61 nt.=.null).{.return.new.self($pa
ce040 72 65 6e 74 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 rent);.}.........public.static.f
ce060 75 6e 63 74 69 6f 6e 20 65 73 63 61 70 65 28 24 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 unction.escape($input).{.return.
ce080 65 73 63 61 70 65 73 68 65 6c 6c 63 6d 64 28 24 69 6e 70 75 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a escapeshellcmd($input);.}.......
ce0a0 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 71 75 6f 74 65 28 24 ..public.static.function.quote($
ce0c0 69 6e 70 75 74 29 0a 7b 0a 72 65 74 75 72 6e 20 65 73 63 61 70 65 73 68 65 6c 6c 61 72 67 28 24 input).{.return.escapeshellarg($
ce0e0 69 6e 70 75 74 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 input);.}.........public.functio
ce100 6e 20 61 64 64 28 24 62 69 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 24 62 n.add($bit).{.$this->bits[].=.$b
ce120 69 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 it;..return.$this;.}.........pub
ce140 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 70 28 24 62 69 74 29 0a 7b 0a 61 72 72 61 79 5f 75 lic.function.top($bit).{.array_u
ce160 6e 73 68 69 66 74 28 24 74 68 69 73 2d 3e 62 69 74 73 2c 20 24 62 69 74 29 3b 0a 0a 66 6f 72 65 nshift($this->bits,.$bit);..fore
ce180 61 63 68 20 28 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 20 61 73 20 24 6c 61 62 65 6c 20 3d 3e 20 ach.($this->labels.as.$label.=>.
ce1a0 24 69 6e 64 65 78 29 20 7b 0a 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 20 $index).{.$this->labels[$label].
ce1c0 2b 3d 20 31 3b 0a 7d 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 +=.1;.}..return.$this;.}........
ce1e0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 72 67 28 24 61 72 67 29 0a 7b 0a 24 74 68 .public.function.arg($arg).{.$th
ce200 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 73 65 6c 66 3a 3a 71 75 6f 74 65 28 24 61 72 67 29 3b 0a is->bits[].=.self::quote($arg);.
ce220 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 .return.$this;.}.........public.
ce240 66 75 6e 63 74 69 6f 6e 20 63 6d 64 28 24 65 73 63 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 69 74 73 function.cmd($esc).{.$this->bits
ce260 5b 5d 20 3d 20 73 65 6c 66 3a 3a 65 73 63 61 70 65 28 24 65 73 63 29 3b 0a 0a 72 65 74 75 72 6e [].=.self::escape($esc);..return
ce280 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 .$this;.}...........public.funct
ce2a0 69 6f 6e 20 69 6e 73 28 24 6c 61 62 65 6c 29 0a 7b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 ion.ins($label).{.if.(isset($thi
ce2c0 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 s->labels[$label])).{.throw.new.
ce2e0 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 4c 61 62 65 6c \RuntimeException(sprintf('Label
ce300 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 6c 61 62 65 6c 29 29 ."%s".already.exists.',.$label))
ce320 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 69 74 73 5b 5d 20 3d 20 73 65 6c 66 3a 3a 63 72 65 61 74 ;.}..$this->bits[].=.self::creat
ce340 65 28 24 74 68 69 73 29 3b 0a 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 20 e($this);.$this->labels[$label].
ce360 3d 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 69 74 73 29 2d 31 3b 0a 0a 72 65 74 75 72 6e 20 =.count($this->bits)-1;..return.
ce380 24 74 68 69 73 2d 3e 62 69 74 73 5b 24 74 68 69 73 2d 3e 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c $this->bits[$this->labels[$label
ce3a0 5d 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 ]];.}...........public.function.
ce3c0 67 65 74 28 24 6c 61 62 65 6c 29 0a 7b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 73 2d 3e get($label).{.if.(!isset($this->
ce3e0 6c 61 62 65 6c 73 5b 24 6c 61 62 65 6c 5d 29 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 labels[$label])).{.throw.new.\Ru
ce400 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 4c 61 62 65 6c 20 22 25 ntimeException(sprintf('Label."%
ce420 73 22 20 64 6f 65 73 20 6e 6f 74 20 65 78 69 73 74 2e 27 2c 20 24 6c 61 62 65 6c 29 29 3b 0a 7d s".does.not.exist.',.$label));.}
ce440 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 62 69 74 73 5b 24 74 68 69 73 2d 3e 6c 61 62 65 ..return.$this->bits[$this->labe
ce460 6c 73 5b 24 6c 61 62 65 6c 5d 5d 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ls[$label]];.}.........public.fu
ce480 6e 63 74 69 6f 6e 20 65 6e 64 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 3d 3d 3d 20 24 74 68 69 nction.end().{.if.(null.===.$thi
ce4a0 73 2d 3e 70 61 72 65 6e 74 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 s->parent).{.throw.new.\RuntimeE
ce4c0 78 63 65 70 74 69 6f 6e 28 27 43 61 6c 6c 69 6e 67 20 65 6e 64 20 6f 6e 20 72 6f 6f 74 20 63 6f xception('Calling.end.on.root.co
ce4e0 6d 6d 61 6e 64 20 64 6f 65 73 6e 5c 27 74 20 6d 61 6b 65 20 73 65 6e 73 65 2e 27 29 3b 0a 7d 0a mmand.doesn\'t.make.sense.');.}.
ce500 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 72 65 6e 74 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 .return.$this->parent;.}.......p
ce520 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 65 6e 67 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e ublic.function.length().{.return
ce540 20 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 62 69 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 .count($this->bits);.}.......pub
ce560 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 65 72 28 5c 43 6c lic.function.setErrorHandler(\Cl
ce580 6f 73 75 72 65 20 24 65 72 72 6f 72 48 61 6e 64 6c 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 72 osure.$errorHandler).{.$this->er
ce5a0 72 6f 72 48 61 6e 64 6c 65 72 20 3d 20 24 65 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 0a 72 65 74 rorHandler.=.$errorHandler;..ret
ce5c0 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e urn.$this;.}.....public.function
ce5e0 20 67 65 74 45 72 72 6f 72 48 61 6e 64 6c 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 .getErrorHandler().{.return.$thi
ce600 73 2d 3e 65 72 72 6f 72 48 61 6e 64 6c 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 s->errorHandler;.}.........publi
ce620 63 20 66 75 6e 63 74 69 6f 6e 20 65 78 65 63 75 74 65 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 c.function.execute().{.if.(null.
ce640 3d 3d 3d 20 24 74 68 69 73 2d 3e 65 72 72 6f 72 48 61 6e 64 6c 65 72 29 20 7b 0a 65 78 65 63 28 ===.$this->errorHandler).{.exec(
ce660 24 74 68 69 73 2d 3e 6a 6f 69 6e 28 29 2c 20 24 6f 75 74 70 75 74 29 3b 0a 7d 20 65 6c 73 65 20 $this->join(),.$output);.}.else.
ce680 7b 0a 24 70 72 6f 63 65 73 73 20 3d 20 70 72 6f 63 5f 6f 70 65 6e 28 24 74 68 69 73 2d 3e 6a 6f {.$process.=.proc_open($this->jo
ce6a0 69 6e 28 29 2c 20 61 72 72 61 79 28 30 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 in(),.array(0.=>.array('pipe',.'
ce6c0 72 27 29 2c 20 31 20 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 2c 20 32 20 r'),.1.=>.array('pipe',.'w'),.2.
ce6e0 3d 3e 20 61 72 72 61 79 28 27 70 69 70 65 27 2c 20 27 77 27 29 29 2c 20 24 70 69 70 65 73 29 3b =>.array('pipe',.'w')),.$pipes);
ce700 0a 24 6f 75 74 70 75 74 20 3d 20 70 72 65 67 5f 73 70 6c 69 74 28 27 7e 28 5c 72 5c 6e 7c 5c 72 .$output.=.preg_split('~(\r\n|\r
ce720 7c 5c 6e 29 7e 27 2c 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 24 70 69 70 |\n)~',.stream_get_contents($pip
ce740 65 73 5b 31 5d 29 2c 20 2d 31 2c 20 50 52 45 47 5f 53 50 4c 49 54 5f 4e 4f 5f 45 4d 50 54 59 29 es[1]),.-1,.PREG_SPLIT_NO_EMPTY)
ce760 3b 0a 0a 69 66 20 28 24 65 72 72 6f 72 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 63 6f 6e 74 65 ;..if.($error.=.stream_get_conte
ce780 6e 74 73 28 24 70 69 70 65 73 5b 32 5d 29 29 20 7b 0a 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 nts($pipes[2])).{.call_user_func
ce7a0 28 24 74 68 69 73 2d 3e 65 72 72 6f 72 48 61 6e 64 6c 65 72 2c 20 24 65 72 72 6f 72 29 3b 0a 7d ($this->errorHandler,.$error);.}
ce7c0 0a 0a 70 72 6f 63 5f 63 6c 6f 73 65 28 24 70 72 6f 63 65 73 73 29 3b 0a 7d 0a 0a 72 65 74 75 72 ..proc_close($process);.}..retur
ce7e0 6e 20 24 6f 75 74 70 75 74 20 3f 3a 20 61 72 72 61 79 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 n.$output.?:.array();.}.......pu
ce800 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 6a 6f 69 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 69 6d blic.function.join().{.return.im
ce820 70 6c 6f 64 65 28 27 20 27 2c 20 61 72 72 61 79 5f 66 69 6c 74 65 72 28 0a 61 72 72 61 79 5f 6d plode('.',.array_filter(.array_m
ce840 61 70 28 66 75 6e 63 74 69 6f 6e 20 28 24 62 69 74 29 20 7b 0a 72 65 74 75 72 6e 20 24 62 69 74 ap(function.($bit).{.return.$bit
ce860 20 69 6e 73 74 61 6e 63 65 6f 66 20 43 6f 6d 6d 61 6e 64 20 3f 20 24 62 69 74 2d 3e 6a 6f 69 6e .instanceof.Command.?.$bit->join
ce880 28 29 20 3a 20 28 24 62 69 74 20 3f 3a 20 6e 75 6c 6c 29 3b 0a 7d 2c 20 24 74 68 69 73 2d 3e 62 ().:.($bit.?:.null);.},.$this->b
ce8a0 69 74 73 29 2c 0a 66 75 6e 63 74 69 6f 6e 20 28 24 62 69 74 29 20 7b 20 72 65 74 75 72 6e 20 6e its),.function.($bit).{.return.n
ce8c0 75 6c 6c 20 21 3d 3d 20 24 62 69 74 3b 20 7d 0a 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 ull.!==.$bit;.}.));.}..........p
ce8e0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 64 64 41 74 49 6e 64 65 78 28 24 62 69 74 2c 20 ublic.function.addAtIndex($bit,.
ce900 24 69 6e 64 65 78 29 0a 7b 0a 61 72 72 61 79 5f 73 70 6c 69 63 65 28 24 74 68 69 73 2d 3e 62 69 $index).{.array_splice($this->bi
ce920 74 73 2c 20 24 69 6e 64 65 78 2c 20 30 2c 20 24 62 69 74 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 ts,.$index,.0,.$bit);..return.$t
ce940 68 69 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 his;.}.}.<?php...........namespa
ce960 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 53 68 65 6c ce.Symfony\Component\Finder\Shel
ce980 6c 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 68 65 6c 6c 0a 7b 0a 63 6f 6e 73 74 20 54 59 50 45 5f l;.....class.Shell.{.const.TYPE_
ce9a0 55 4e 49 58 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 44 41 52 57 49 4e 20 3d 20 32 3b UNIX.=.1;.const.TYPE_DARWIN.=.2;
ce9c0 0a 63 6f 6e 73 74 20 54 59 50 45 5f 43 59 47 57 49 4e 20 3d 20 33 3b 0a 63 6f 6e 73 74 20 54 59 .const.TYPE_CYGWIN.=.3;.const.TY
ce9e0 50 45 5f 57 49 4e 44 4f 57 53 20 3d 20 34 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 42 53 44 20 3d PE_WINDOWS.=.4;.const.TYPE_BSD.=
cea00 20 35 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 74 79 70 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 .5;.....private.$type;.......pub
cea20 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 69 66 20 28 6e 75 6c lic.function.getType().{.if.(nul
cea40 6c 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 74 79 70 65 29 20 7b 0a 24 74 68 69 73 2d 3e 74 79 70 65 l.===.$this->type).{.$this->type
cea60 20 3d 20 24 74 68 69 73 2d 3e 67 75 65 73 73 54 79 70 65 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e .=.$this->guessType();.}..return
cea80 20 24 74 68 69 73 2d 3e 74 79 70 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 .$this->type;.}.........public.f
ceaa0 75 6e 63 74 69 6f 6e 20 74 65 73 74 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 29 0a 7b 0a unction.testCommand($command).{.
ceac0 69 66 20 28 73 65 6c 66 3a 3a 54 59 50 45 5f 57 49 4e 44 4f 57 53 20 3d 3d 3d 20 24 74 68 69 73 if.(self::TYPE_WINDOWS.===.$this
ceae0 2d 3e 74 79 70 65 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 ->type).{...return.false;.}..if.
ceb00 28 21 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 74 73 28 27 65 78 65 63 27 29 29 20 7b 0a 72 65 74 (!function_exists('exec')).{.ret
ceb20 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 65 78 65 63 28 27 63 6f 6d 6d 61 6e 64 20 2d 76 urn.false;.}....exec('command.-v
ceb40 20 27 2e 24 63 6f 6d 6d 61 6e 64 2c 20 24 6f 75 74 70 75 74 2c 20 24 63 6f 64 65 29 3b 0a 0a 72 .'.$command,.$output,.$code);..r
ceb60 65 74 75 72 6e 20 30 20 3d 3d 3d 20 24 63 6f 64 65 20 26 26 20 63 6f 75 6e 74 28 24 6f 75 74 70 eturn.0.===.$code.&&.count($outp
ceb80 75 74 29 20 3e 20 30 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 ut).>.0;.}.......private.functio
ceba0 6e 20 67 75 65 73 73 54 79 70 65 28 29 0a 7b 0a 24 6f 73 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 n.guessType().{.$os.=.strtolower
cebc0 28 50 48 50 5f 4f 53 29 3b 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 (PHP_OS);..if.(false.!==.strpos(
cebe0 24 6f 73 2c 20 27 63 79 67 77 69 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 $os,.'cygwin')).{.return.self::T
cec00 59 50 45 5f 43 59 47 57 49 4e 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 YPE_CYGWIN;.}..if.(false.!==.str
cec20 70 6f 73 28 24 6f 73 2c 20 27 64 61 72 77 69 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c pos($os,.'darwin')).{.return.sel
cec40 66 3a 3a 54 59 50 45 5f 44 41 52 57 49 4e 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d f::TYPE_DARWIN;.}..if.(false.!==
cec60 20 73 74 72 70 6f 73 28 24 6f 73 2c 20 27 62 73 64 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 .strpos($os,.'bsd')).{.return.se
cec80 6c 66 3a 3a 54 59 50 45 5f 42 53 44 3b 0a 7d 0a 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 72 70 6f lf::TYPE_BSD;.}..if.(0.===.strpo
ceca0 73 28 24 6f 73 2c 20 27 77 69 6e 27 29 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 s($os,.'win')).{.return.self::TY
cecc0 50 45 5f 57 49 4e 44 4f 57 53 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 PE_WINDOWS;.}..return.self::TYPE
cece0 5f 55 4e 49 58 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 _UNIX;.}.}.<?php...........names
ced00 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 45 78 pace.Symfony\Component\Finder\Ex
ced20 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 67 65 78 20 69 6d 70 6c 65 6d pression;.....class.Regex.implem
ced40 65 6e 74 73 20 56 61 6c 75 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 53 54 41 52 ents.ValueInterface.{.const.STAR
ced60 54 5f 46 4c 41 47 20 3d 20 27 5e 27 3b 0a 63 6f 6e 73 74 20 45 4e 44 5f 46 4c 41 47 20 3d 20 27 T_FLAG.=.'^';.const.END_FLAG.=.'
ced80 24 27 3b 0a 63 6f 6e 73 74 20 42 4f 55 4e 44 41 52 59 20 3d 20 27 7e 27 3b 0a 63 6f 6e 73 74 20 $';.const.BOUNDARY.=.'~';.const.
ceda0 4a 4f 4b 45 52 20 3d 20 27 2e 2a 27 3b 0a 63 6f 6e 73 74 20 45 53 43 41 50 49 4e 47 20 3d 20 27 JOKER.=.'.*';.const.ESCAPING.=.'
cedc0 5c 5c 27 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 74 74 65 72 6e 3b 0a 0a 0a 0a 0a 70 \\';.....private.$pattern;.....p
cede0 72 69 76 61 74 65 20 24 6f 70 74 69 6f 6e 73 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 rivate.$options;.....private.$st
cee00 61 72 74 46 6c 61 67 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 65 6e 64 46 6c 61 67 3b 0a 0a artFlag;.....private.$endFlag;..
cee20 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 74 61 72 74 4a 6f 6b 65 72 3b 0a 0a 0a 0a 0a 70 72 69 76 ...private.$startJoker;.....priv
cee40 61 74 65 20 24 65 6e 64 4a 6f 6b 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 73 74 ate.$endJoker;.........public.st
cee60 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 24 65 78 70 72 29 0a 7b 0a 69 66 atic.function.create($expr).{.if
cee80 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5e 28 2e 7b 33 2c 7d 3f 29 28 5b 69 6d 73 78 75 41 .(preg_match('/^(.{3,}?)([imsxuA
ceea0 44 55 5d 2a 29 24 2f 27 2c 20 24 65 78 70 72 2c 20 24 6d 29 29 20 7b 0a 24 73 74 61 72 74 20 3d DU]*)$/',.$expr,.$m)).{.$start.=
ceec0 20 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 30 2c 20 31 29 3b 0a 24 65 6e 64 20 3d 20 73 75 62 .substr($m[1],.0,.1);.$end.=.sub
ceee0 73 74 72 28 24 6d 5b 31 5d 2c 20 2d 31 29 3b 0a 0a 69 66 20 28 28 24 73 74 61 72 74 20 3d 3d 3d str($m[1],.-1);..if.(($start.===
cef00 20 24 65 6e 64 20 26 26 20 21 70 72 65 67 5f 6d 61 74 63 68 28 27 2f 5b 2a 3f 5b 3a 61 6c 6e 75 .$end.&&.!preg_match('/[*?[:alnu
cef20 6d 3a 5d 20 5c 5c 5c 5c 5d 2f 27 2c 20 24 73 74 61 72 74 29 29 20 7c 7c 20 28 24 73 74 61 72 74 m:].\\\\]/',.$start)).||.($start
cef40 20 3d 3d 3d 20 27 7b 27 20 26 26 20 24 65 6e 64 20 3d 3d 3d 20 27 7d 27 29 29 20 7b 0a 72 65 74 .===.'{'.&&.$end.===.'}')).{.ret
cef60 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 73 75 62 73 74 72 28 24 6d 5b 31 5d 2c 20 31 2c 20 2d 31 urn.new.self(substr($m[1],.1,.-1
cef80 29 2c 20 24 6d 5b 32 5d 2c 20 24 65 6e 64 29 3b 0a 7d 0a 7d 0a 0a 74 68 72 6f 77 20 6e 65 77 20 ),.$m[2],.$end);.}.}..throw.new.
cefa0 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 47 69 76 65 6e \InvalidArgumentException('Given
cefc0 20 65 78 70 72 65 73 73 69 6f 6e 20 69 73 20 6e 6f 74 20 61 20 72 65 67 65 78 2e 27 29 3b 0a 7d .expression.is.not.a.regex.');.}
cefe0 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
cf000 63 74 28 24 70 61 74 74 65 72 6e 2c 20 24 6f 70 74 69 6f 6e 73 20 3d 20 27 27 2c 20 24 64 65 6c ct($pattern,.$options.=.'',.$del
cf020 69 6d 69 74 65 72 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 24 64 imiter.=.null).{.if.(null.!==.$d
cf040 65 6c 69 6d 69 74 65 72 29 20 7b 0a 0a 20 24 70 61 74 74 65 72 6e 20 3d 20 73 74 72 5f 72 65 70 elimiter).{...$pattern.=.str_rep
cf060 6c 61 63 65 28 27 5c 5c 27 2e 24 64 65 6c 69 6d 69 74 65 72 2c 20 24 64 65 6c 69 6d 69 74 65 72 lace('\\'.$delimiter,.$delimiter
cf080 2c 20 24 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 50 61 74 74 ,.$pattern);.}..$this->parsePatt
cf0a0 65 72 6e 28 24 70 61 74 74 65 72 6e 29 3b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 ern($pattern);.$this->options.=.
cf0c0 24 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 $options;.}.....public.function.
cf0e0 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6e __toString().{.return.$this->ren
cf100 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e der();.}.....public.function.ren
cf120 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 42 4f 55 4e 44 41 52 59 0a 2e 24 der().{.return.self::BOUNDARY..$
cf140 74 68 69 73 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 0a 2e 73 65 6c 66 3a 3a 42 4f 55 this->renderPattern()..self::BOU
cf160 4e 44 41 52 59 0a 2e 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 NDARY..$this->options;.}.....pub
cf180 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 0a 7b 0a 72 lic.function.renderPattern().{.r
cf1a0 65 74 75 72 6e 20 28 24 74 68 69 73 2d 3e 73 74 61 72 74 46 6c 61 67 20 3f 20 73 65 6c 66 3a 3a eturn.($this->startFlag.?.self::
cf1c0 53 54 41 52 54 5f 46 4c 41 47 20 3a 20 27 27 29 0a 2e 28 24 74 68 69 73 2d 3e 73 74 61 72 74 4a START_FLAG.:.'')..($this->startJ
cf1e0 6f 6b 65 72 20 3f 20 73 65 6c 66 3a 3a 4a 4f 4b 45 52 20 3a 20 27 27 29 0a 2e 73 74 72 5f 72 65 oker.?.self::JOKER.:.'')..str_re
cf200 70 6c 61 63 65 28 73 65 6c 66 3a 3a 42 4f 55 4e 44 41 52 59 2c 20 27 5c 5c 27 2e 73 65 6c 66 3a place(self::BOUNDARY,.'\\'.self:
cf220 3a 42 4f 55 4e 44 41 52 59 2c 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 29 0a 2e 28 24 74 68 :BOUNDARY,.$this->pattern)..($th
cf240 69 73 2d 3e 65 6e 64 4a 6f 6b 65 72 20 3f 20 73 65 6c 66 3a 3a 4a 4f 4b 45 52 20 3a 20 27 27 29 is->endJoker.?.self::JOKER.:.'')
cf260 0a 2e 28 24 74 68 69 73 2d 3e 65 6e 64 46 6c 61 67 20 3f 20 73 65 6c 66 3a 3a 45 4e 44 5f 46 4c ..($this->endFlag.?.self::END_FL
cf280 41 47 20 3a 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 AG.:.'');.}.....public.function.
cf2a0 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 21 24 74 68 69 isCaseSensitive().{.return.!$thi
cf2c0 73 2d 3e 68 61 73 4f 70 74 69 6f 6e 28 27 69 27 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 s->hasOption('i');.}.....public.
cf2e0 66 75 6e 63 74 69 6f 6e 20 67 65 74 54 79 70 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 function.getType().{.return.Expr
cf300 65 73 73 69 6f 6e 3a 3a 54 59 50 45 5f 52 45 47 45 58 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ession::TYPE_REGEX;.}.....public
cf320 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 .function.prepend($expr).{.$this
cf340 2d 3e 70 61 74 74 65 72 6e 20 3d 20 24 65 78 70 72 2e 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e ->pattern.=.$expr.$this->pattern
cf360 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ;..return.$this;.}.....public.fu
cf380 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 nction.append($expr).{.$this->pa
cf3a0 74 74 65 72 6e 20 2e 3d 20 24 65 78 70 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d ttern..=.$expr;..return.$this;.}
cf3c0 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 4f 70 74 69 6f 6e .......public.function.hasOption
cf3e0 28 24 6f 70 74 69 6f 6e 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 72 ($option).{.return.false.!==.str
cf400 70 6f 73 28 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 2c 20 24 6f 70 74 69 6f 6e 29 3b 0a 7d 0a pos($this->options,.$option);.}.
cf420 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(
cf440 24 6f 70 74 69 6f 6e 29 0a 7b 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 68 61 73 4f 70 74 69 6f 6e $option).{.if.(!$this->hasOption
cf460 28 24 6f 70 74 69 6f 6e 29 29 20 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 2e 3d 20 24 6f ($option)).{.$this->options.=.$o
cf480 70 74 69 6f 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a ption;.}..return.$this;.}.......
cf4a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6d 6f 76 65 4f 70 74 69 6f 6e 28 24 6f 70 public.function.removeOption($op
cf4c0 74 69 6f 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 20 3d 20 73 74 72 5f 72 65 70 tion).{.$this->options.=.str_rep
cf4e0 6c 61 63 65 28 24 6f 70 74 69 6f 6e 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 6f 70 74 69 6f 6e 73 lace($option,.'',.$this->options
cf500 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 );..return.$this;.}.......public
cf520 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 74 61 72 74 46 6c 61 67 28 24 73 74 61 72 74 46 6c 61 .function.setStartFlag($startFla
cf540 67 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 46 6c 61 67 20 3d 20 24 73 74 61 72 74 46 6c g).{.$this->startFlag.=.$startFl
cf560 61 67 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ag;..return.$this;.}.....public.
cf580 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 61 72 74 46 6c 61 67 28 29 0a 7b 0a 72 65 74 75 72 6e function.hasStartFlag().{.return
cf5a0 20 24 74 68 69 73 2d 3e 73 74 61 72 74 46 6c 61 67 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .$this->startFlag;.}.......publi
cf5c0 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 64 46 6c 61 67 28 24 65 6e 64 46 6c 61 67 29 0a c.function.setEndFlag($endFlag).
cf5e0 7b 0a 24 74 68 69 73 2d 3e 65 6e 64 46 6c 61 67 20 3d 20 28 62 6f 6f 6c 29 20 24 65 6e 64 46 6c {.$this->endFlag.=.(bool).$endFl
cf600 61 67 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 ag;..return.$this;.}.....public.
cf620 66 75 6e 63 74 69 6f 6e 20 68 61 73 45 6e 64 46 6c 61 67 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 function.hasEndFlag().{.return.$
cf640 74 68 69 73 2d 3e 65 6e 64 46 6c 61 67 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 this->endFlag;.}.......public.fu
cf660 6e 63 74 69 6f 6e 20 73 65 74 53 74 61 72 74 4a 6f 6b 65 72 28 24 73 74 61 72 74 4a 6f 6b 65 72 nction.setStartJoker($startJoker
cf680 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 72 74 4a 6f 6b 65 72 20 3d 20 24 73 74 61 72 74 4a 6f ).{.$this->startJoker.=.$startJo
cf6a0 6b 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ker;..return.$this;.}.....public
cf6c0 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 53 74 61 72 74 4a 6f 6b 65 72 28 29 0a 7b 0a 72 65 74 75 .function.hasStartJoker().{.retu
cf6e0 72 6e 20 24 74 68 69 73 2d 3e 73 74 61 72 74 4a 6f 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 rn.$this->startJoker;.}.......pu
cf700 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 6e 64 4a 6f 6b 65 72 28 24 65 6e 64 4a 6f blic.function.setEndJoker($endJo
cf720 6b 65 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 65 6e 64 4a 6f 6b 65 72 20 3d 20 28 62 6f 6f 6c 29 20 ker).{.$this->endJoker.=.(bool).
cf740 24 65 6e 64 4a 6f 6b 65 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a $endJoker;..return.$this;.}.....
cf760 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 68 61 73 45 6e 64 4a 6f 6b 65 72 28 29 0a 7b 0a public.function.hasEndJoker().{.
cf780 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 65 6e 64 4a 6f 6b 65 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a return.$this->endJoker;.}.......
cf7a0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 70 6c 61 63 65 4a 6f 6b 65 72 73 28 24 72 public.function.replaceJokers($r
cf7c0 65 70 6c 61 63 65 6d 65 6e 74 29 0a 7b 0a 24 72 65 70 6c 61 63 65 20 3d 20 66 75 6e 63 74 69 6f eplacement).{.$replace.=.functio
cf7e0 6e 20 28 24 73 75 62 6a 65 63 74 29 20 75 73 65 20 28 24 72 65 70 6c 61 63 65 6d 65 6e 74 29 20 n.($subject).use.($replacement).
cf800 7b 0a 24 73 75 62 6a 65 63 74 20 3d 20 24 73 75 62 6a 65 63 74 5b 30 5d 3b 0a 24 72 65 70 6c 61 {.$subject.=.$subject[0];.$repla
cf820 63 65 20 3d 20 30 20 3d 3d 3d 20 73 75 62 73 74 72 5f 63 6f 75 6e 74 28 24 73 75 62 6a 65 63 74 ce.=.0.===.substr_count($subject
cf840 2c 20 27 5c 5c 27 29 20 25 20 32 3b 0a 0a 72 65 74 75 72 6e 20 24 72 65 70 6c 61 63 65 20 3f 20 ,.'\\').%.2;..return.$replace.?.
cf860 73 74 72 5f 72 65 70 6c 61 63 65 28 27 2e 27 2c 20 24 72 65 70 6c 61 63 65 6d 65 6e 74 2c 20 24 str_replace('.',.$replacement,.$
cf880 73 75 62 6a 65 63 74 29 20 3a 20 24 73 75 62 6a 65 63 74 3b 0a 7d 3b 0a 0a 24 74 68 69 73 2d 3e subject).:.$subject;.};..$this->
cf8a0 70 61 74 74 65 72 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 pattern.=.preg_replace_callback(
cf8c0 27 7e 5b 5c 5c 5c 5c 5d 2a 5c 5c 2e 7e 27 2c 20 24 72 65 70 6c 61 63 65 2c 20 24 74 68 69 73 2d '~[\\\\]*\\.~',.$replace,.$this-
cf8e0 3e 70 61 74 74 65 72 6e 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a >pattern);..return.$this;.}.....
cf900 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 50 61 74 74 65 72 6e 28 24 70 private.function.parsePattern($p
cf920 61 74 74 65 72 6e 29 0a 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 74 61 72 74 46 6c 61 67 20 3d attern).{.if.($this->startFlag.=
cf940 20 73 65 6c 66 3a 3a 53 54 41 52 54 5f 46 4c 41 47 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 61 .self::START_FLAG.===.substr($pa
cf960 74 74 65 72 6e 2c 20 30 2c 20 31 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 ttern,.0,.1)).{.$pattern.=.subst
cf980 72 28 24 70 61 74 74 65 72 6e 2c 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 74 r($pattern,.1);.}..if.($this->st
cf9a0 61 72 74 4a 6f 6b 65 72 20 3d 20 73 65 6c 66 3a 3a 4a 4f 4b 45 52 20 3d 3d 3d 20 73 75 62 73 74 artJoker.=.self::JOKER.===.subst
cf9c0 72 28 24 70 61 74 74 65 72 6e 2c 20 30 2c 20 32 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 r($pattern,.0,.2)).{.$pattern.=.
cf9e0 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 32 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 substr($pattern,.2);.}..if.($thi
cfa00 73 2d 3e 65 6e 64 46 6c 61 67 20 3d 20 28 73 65 6c 66 3a 3a 45 4e 44 5f 46 4c 41 47 20 3d 3d 3d s->endFlag.=.(self::END_FLAG.===
cfa20 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 2d 31 29 20 26 26 20 73 65 6c 66 3a 3a 45 .substr($pattern,.-1).&&.self::E
cfa40 53 43 41 50 49 4e 47 20 21 3d 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 2d 32 2c SCAPING.!==.substr($pattern,.-2,
cfa60 20 2d 31 29 29 29 20 7b 0a 24 70 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 .-1))).{.$pattern.=.substr($patt
cfa80 65 72 6e 2c 20 30 2c 20 2d 31 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 6e 64 4a 6f ern,.0,.-1);.}..if.($this->endJo
cfaa0 6b 65 72 20 3d 20 28 73 65 6c 66 3a 3a 4a 4f 4b 45 52 20 3d 3d 3d 20 73 75 62 73 74 72 28 24 70 ker.=.(self::JOKER.===.substr($p
cfac0 61 74 74 65 72 6e 2c 20 2d 32 29 20 26 26 20 73 65 6c 66 3a 3a 45 53 43 41 50 49 4e 47 20 21 3d attern,.-2).&&.self::ESCAPING.!=
cfae0 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 2d 33 2c 20 2d 32 29 29 29 20 7b 0a 24 =.substr($pattern,.-3,.-2))).{.$
cfb00 70 61 74 74 65 72 6e 20 3d 20 73 75 62 73 74 72 28 24 70 61 74 74 65 72 6e 2c 20 30 2c 20 2d 32 pattern.=.substr($pattern,.0,.-2
cfb20 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d 20 24 70 61 74 74 65 72 6e 3b );.}..$this->pattern.=.$pattern;
cfb40 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
cfb60 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 ymfony\Component\Finder\Expressi
cfb80 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 20 69 6d 70 6c 65 6d 65 6e 74 73 20 56 61 on;.....class.Glob.implements.Va
cfba0 6c 75 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 70 61 74 74 65 lueInterface.{....private.$patte
cfbc0 72 6e 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 rn;.....public.function.__constr
cfbe0 75 63 74 28 24 70 61 74 74 65 72 6e 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d uct($pattern).{.$this->pattern.=
cfc00 20 24 70 61 74 74 65 72 6e 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e .$pattern;.}.....public.function
cfc20 20 72 65 6e 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 .render().{.return.$this->patter
cfc40 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 72 65 6e 64 65 72 50 n;.}.....public.function.renderP
cfc60 61 74 74 65 72 6e 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e attern().{.return.$this->pattern
cfc80 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 79 70 65 28 ;.}.....public.function.getType(
cfca0 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 54 59 50 45 5f 47 4c 4f 42 ).{.return.Expression::TYPE_GLOB
cfcc0 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 43 61 73 65 53 65 ;.}.....public.function.isCaseSe
cfce0 6e 73 69 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 0a 0a 0a 70 nsitive().{.return.true;.}.....p
cfd00 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a ublic.function.prepend($expr).{.
cfd20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 20 3d 20 24 65 78 70 72 2e 24 74 68 69 73 2d 3e 70 61 $this->pattern.=.$expr.$this->pa
cfd40 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 70 75 62 6c ttern;..return.$this;.}.....publ
cfd60 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 ic.function.append($expr).{.$thi
cfd80 73 2d 3e 70 61 74 74 65 72 6e 20 2e 3d 20 24 65 78 70 72 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 s->pattern..=.$expr;..return.$th
cfda0 69 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 69 73 45 78 is;.}.......public.function.isEx
cfdc0 70 61 6e 64 61 62 6c 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 20 21 3d 3d 20 73 74 pandable().{.return.false.!==.st
cfde0 72 70 6f 73 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 2c 20 27 7b 27 29 0a 26 26 20 66 61 6c rpos($this->pattern,.'{').&&.fal
cfe00 73 65 20 21 3d 3d 20 73 74 72 70 6f 73 28 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 2c 20 27 7d se.!==.strpos($this->pattern,.'}
cfe20 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 ');.}........public.function.toR
cfe40 65 67 65 78 28 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 egex($strictLeadingDot.=.true,.$
cfe60 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
cfe80 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
cfea0 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.=.'';
cfec0 0a 24 73 69 7a 65 47 6c 6f 62 20 3d 20 73 74 72 6c 65 6e 28 24 74 68 69 73 2d 3e 70 61 74 74 65 .$sizeGlob.=.strlen($this->patte
cfee0 72 6e 29 3b 0a 66 6f 72 20 28 24 69 20 3d 20 30 3b 20 24 69 20 3c 20 24 73 69 7a 65 47 6c 6f 62 rn);.for.($i.=.0;.$i.<.$sizeGlob
cff00 3b 20 24 69 2b 2b 29 20 7b 0a 24 63 61 72 20 3d 20 24 74 68 69 73 2d 3e 70 61 74 74 65 72 6e 5b ;.$i++).{.$car.=.$this->pattern[
cff20 24 69 5d 3b 0a 69 66 20 28 24 66 69 72 73 74 42 79 74 65 29 20 7b 0a 69 66 20 28 24 73 74 72 69 $i];.if.($firstByte).{.if.($stri
cff40 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 26 26 20 27 2e 27 20 21 3d 3d 20 24 63 61 72 29 20 7b 0a ctLeadingDot.&&.'.'.!==.$car).{.
cff60 24 72 65 67 65 78 20 2e 3d 20 27 28 3f 3d 5b 5e 5c 2e 5d 29 27 3b 0a 7d 0a 0a 24 66 69 72 73 74 $regex..=.'(?=[^\.])';.}..$first
cff80 42 79 74 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 27 2f 27 20 3d 3d 3d 20 24 63 61 Byte.=.false;.}..if.('/'.===.$ca
cffa0 72 29 20 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 69 66 20 28 27 r).{.$firstByte.=.true;.}..if.('
cffc0 2e 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 28 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 .'.===.$car.||.'('.===.$car.||.'
cffe0 29 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 7c 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 )'.===.$car.||.'|'.===.$car.||.'
d0000 2b 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 5e 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 +'.===.$car.||.'^'.===.$car.||.'
d0020 24 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 22 5c 5c 24 63 61 72 $'.===.$car).{.$regex..=."\\$car
d0040 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2a 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 ";.}.elseif.('*'.===.$car).{.$re
d0060 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 2a 27 20 3a 20 28 24 73 74 72 gex..=.$escaping.?.'\\*'.:.($str
d0080 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f 20 27 5b 5e 2f 5d 2a 27 20 3a 20 27 2e 2a ictWildcardSlash.?.'[^/]*'.:.'.*
d00a0 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 3f 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 ');.}.elseif.('?'.===.$car).{.$r
d00c0 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 3f 27 20 3a 20 28 24 73 74 egex..=.$escaping.?.'\\?'.:.($st
d00e0 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f 20 27 5b 5e 2f 5d 27 20 3a 20 27 2e 27 rictWildcardSlash.?.'[^/]'.:.'.'
d0100 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 );.}.elseif.('{'.===.$car).{.$re
d0120 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 7b 27 20 3a 20 27 28 27 3b 0a gex..=.$escaping.?.'\\{'.:.'(';.
d0140 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 2b 2b 24 69 6e 43 75 72 6c 69 65 73 3b 0a if.(!$escaping).{.++$inCurlies;.
d0160 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 7d 27 20 3d 3d 3d 20 24 63 61 72 20 26 26 20 24 69 6e 43 }.}.elseif.('}'.===.$car.&&.$inC
d0180 75 72 6c 69 65 73 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 urlies).{.$regex..=.$escaping.?.
d01a0 27 7d 27 20 3a 20 27 29 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 2d 2d 24 '}'.:.')';.if.(!$escaping).{.--$
d01c0 69 6e 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 2c 27 20 3d 3d 3d 20 24 inCurlies;.}.}.elseif.(','.===.$
d01e0 63 61 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 car.&&.$inCurlies).{.$regex..=.$
d0200 65 73 63 61 70 69 6e 67 20 3f 20 27 2c 27 20 3a 20 27 7c 27 3b 0a 7d 20 65 6c 73 65 69 66 20 28 escaping.?.','.:.'|';.}.elseif.(
d0220 27 5c 5c 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 69 66 20 28 24 65 73 63 61 70 69 6e 67 29 20 '\\'.===.$car).{.if.($escaping).
d0240 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 5c 5c 5c 5c 27 3b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 {.$regex..=.'\\\\';.$escaping.=.
d0260 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 74 72 75 65 false;.}.else.{.$escaping.=.true
d0280 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 72 65 67 65 78 20 2e ;.}..continue;.}.else.{.$regex..
d02a0 3d 20 24 63 61 72 3b 0a 7d 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a =.$car;.}.$escaping.=.false;.}..
d02c0 72 65 74 75 72 6e 20 6e 65 77 20 52 65 67 65 78 28 27 5e 27 2e 24 72 65 67 65 78 2e 27 24 27 29 return.new.Regex('^'.$regex.'$')
d02e0 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.
d0300 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 45 78 70 72 65 73 73 Symfony\Component\Finder\Express
d0320 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 78 70 72 65 73 73 69 6f 6e 20 69 6d 70 6c 65 6d ion;.....class.Expression.implem
d0340 65 6e 74 73 20 56 61 6c 75 65 49 6e 74 65 72 66 61 63 65 0a 7b 0a 63 6f 6e 73 74 20 54 59 50 45 ents.ValueInterface.{.const.TYPE
d0360 5f 52 45 47 45 58 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 54 59 50 45 5f 47 4c 4f 42 20 3d 20 32 3b _REGEX.=.1;.const.TYPE_GLOB.=.2;
d0380 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 76 61 6c 75 65 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 .....private.$value;.......publi
d03a0 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 72 65 61 74 65 28 24 65 78 70 72 29 0a c.static.function.create($expr).
d03c0 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 73 65 6c 66 28 24 65 78 70 72 29 3b 0a 7d 0a 0a 0a 0a 0a {.return.new.self($expr);.}.....
d03e0 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 65 78 70 public.function.__construct($exp
d0400 72 29 0a 7b 0a 74 72 79 20 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 20 3d 20 52 65 67 65 78 3a r).{.try.{.$this->value.=.Regex:
d0420 3a 63 72 65 61 74 65 28 24 65 78 70 72 29 3b 0a 7d 20 63 61 74 63 68 20 28 5c 49 6e 76 61 6c 69 :create($expr);.}.catch.(\Invali
d0440 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 20 24 65 29 20 7b 0a 24 74 68 69 73 2d 3e dArgumentException.$e).{.$this->
d0460 76 61 6c 75 65 20 3d 20 6e 65 77 20 47 6c 6f 62 28 24 65 78 70 72 29 3b 0a 7d 0a 7d 0a 0a 0a 0a value.=.new.Glob($expr);.}.}....
d0480 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 74 6f 53 74 72 69 6e 67 28 29 0a 7b 0a .public.function.__toString().{.
d04a0 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 return.$this->render();.}.....pu
d04c0 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e 20 blic.function.render().{.return.
d04e0 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 72 65 6e 64 65 72 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 $this->value->render();.}.....pu
d0500 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 0a 7b 0a blic.function.renderPattern().{.
d0520 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 return.$this->value->renderPatte
d0540 72 6e 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 43 61 rn();.}.....public.function.isCa
d0560 73 65 53 65 6e 73 69 74 69 76 65 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 seSensitive().{.return.$this->va
d0580 6c 75 65 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 lue->isCaseSensitive();.}.....pu
d05a0 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 65 74 75 72 6e blic.function.getType().{.return
d05c0 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a .$this->value->getType();.}.....
d05e0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 0a 7b public.function.prepend($expr).{
d0600 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 3b 0a 0a .$this->value->prepend($expr);..
d0620 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 return.$this;.}.....public.funct
d0640 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 70 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 76 61 6c 75 65 ion.append($expr).{.$this->value
d0660 2d 3e 61 70 70 65 6e 64 28 24 65 78 70 72 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a ->append($expr);..return.$this;.
d0680 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 67 65 78 28 29 0a }.....public.function.isRegex().
d06a0 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 52 45 47 45 58 20 3d 3d 3d 20 24 74 {.return.self::TYPE_REGEX.===.$t
d06c0 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 his->value->getType();.}.....pub
d06e0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 47 6c 6f 62 28 29 0a 7b 0a 72 65 74 75 72 6e 20 73 lic.function.isGlob().{.return.s
d0700 65 6c 66 3a 3a 54 59 50 45 5f 47 4c 4f 42 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d elf::TYPE_GLOB.===.$this->value-
d0720 3e 67 65 74 54 79 70 65 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 >getType();.}.......public.funct
d0740 69 6f 6e 20 67 65 74 47 6c 6f 62 28 29 0a 7b 0a 69 66 20 28 73 65 6c 66 3a 3a 54 59 50 45 5f 47 ion.getGlob().{.if.(self::TYPE_G
d0760 4c 4f 42 20 21 3d 3d 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 29 LOB.!==.$this->value->getType())
d0780 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 52 65 .{.throw.new.\LogicException('Re
d07a0 67 65 78 20 63 61 6e 5c 27 74 20 62 65 20 74 72 61 6e 73 66 6f 72 6d 65 64 20 74 6f 20 67 6c 6f gex.can\'t.be.transformed.to.glo
d07c0 62 2e 27 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 3b 0a 7d 0a b.');.}..return.$this->value;.}.
d07e0 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 67 65 78 28 29 0a 7b ....public.function.getRegex().{
d0800 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 54 59 50 45 5f 52 45 47 45 58 20 3d 3d 3d 20 24 74 68 .return.self::TYPE_REGEX.===.$th
d0820 69 73 2d 3e 76 61 6c 75 65 2d 3e 67 65 74 54 79 70 65 28 29 20 3f 20 24 74 68 69 73 2d 3e 76 61 is->value->getType().?.$this->va
d0840 6c 75 65 20 3a 20 24 74 68 69 73 2d 3e 76 61 6c 75 65 2d 3e 74 6f 52 65 67 65 78 28 29 3b 0a 7d lue.:.$this->value->toRegex();.}
d0860 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d .}.<?php...........namespace.Sym
d0880 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e fony\Component\Finder\Expression
d08a0 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 56 61 6c 75 65 49 6e 74 65 72 66 61 63 65 0a 7b ;.....interface.ValueInterface.{
d08c0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 28 29 3b 0a ......public.function.render();.
d08e0 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 72 65 6e 64 65 72 50 61 74 74 ......public.function.renderPatt
d0900 65 72 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 69 73 43 ern();.......public.function.isC
d0920 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e aseSensitive();.......public.fun
d0940 63 74 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 ction.getType();.......public.fu
d0960 6e 63 74 69 6f 6e 20 70 72 65 70 65 6e 64 28 24 65 78 70 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 nction.prepend($expr);.......pub
d0980 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 70 70 65 6e 64 28 24 65 78 70 72 29 3b 0a 7d 0a 3c 3f lic.function.append($expr);.}.<?
d09a0 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\
d09c0 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 3b 0a 0a 0a 0a 0a 69 6e Component\Finder\Adapter;.....in
d09e0 74 65 72 66 61 63 65 20 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 0a 0a terface.AdapterInterface.{......
d0a00 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 24 public.function.setFollowLinks($
d0a20 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 followLinks);.......public.funct
d0a40 69 6f 6e 20 73 65 74 4d 6f 64 65 28 24 6d 6f 64 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ion.setMode($mode);.......public
d0a60 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 45 78 63 6c 75 64 65 28 61 72 72 61 79 20 24 65 78 63 6c .function.setExclude(array.$excl
d0a80 75 64 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 ude);.......public.function.setD
d0aa0 65 70 74 68 73 28 61 72 72 61 79 20 24 64 65 70 74 68 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c epths(array.$depths);.......publ
d0ac0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 61 6d 65 73 28 61 72 72 61 79 20 24 6e 61 6d 65 ic.function.setNames(array.$name
d0ae0 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 s);.......public.function.setNot
d0b00 4e 61 6d 65 73 28 61 72 72 61 79 20 24 6e 6f 74 4e 61 6d 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 Names(array.$notNames);.......pu
d0b20 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 43 6f 6e 74 61 69 6e 73 28 61 72 72 61 79 20 blic.function.setContains(array.
d0b40 24 63 6f 6e 74 61 69 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f $contains);.......public.functio
d0b60 6e 20 73 65 74 4e 6f 74 43 6f 6e 74 61 69 6e 73 28 61 72 72 61 79 20 24 6e 6f 74 43 6f 6e 74 61 n.setNotContains(array.$notConta
d0b80 69 6e 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 ins);.......public.function.setS
d0ba0 69 7a 65 73 28 61 72 72 61 79 20 24 73 69 7a 65 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 izes(array.$sizes);.......public
d0bc0 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 61 74 65 73 28 61 72 72 61 79 20 24 64 61 74 65 73 29 .function.setDates(array.$dates)
d0be0 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 69 6c 74 65 ;.......public.function.setFilte
d0c00 72 73 28 61 72 72 61 79 20 24 66 69 6c 74 65 72 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 rs(array.$filters);.......public
d0c20 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 72 74 28 24 73 6f 72 74 29 3b 0a 0a 0a 0a 0a 0a 0a .function.setSort($sort);.......
d0c40 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 74 68 28 61 72 72 61 79 20 24 70 public.function.setPath(array.$p
d0c60 61 74 68 73 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 aths);.......public.function.set
d0c80 4e 6f 74 50 61 74 68 28 61 72 72 61 79 20 24 6e 6f 74 50 61 74 68 73 29 3b 0a 0a 0a 0a 0a 0a 0a NotPath(array.$notPaths);.......
d0ca0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 public.function.ignoreUnreadable
d0cc0 44 69 72 73 28 24 69 67 6e 6f 72 65 20 3d 20 74 72 75 65 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c Dirs($ignore.=.true);.......publ
d0ce0 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f 72 79 28 24 64 ic.function.searchInDirectory($d
d0d00 69 72 29 3b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 73 53 75 70 ir);.......public.function.isSup
d0d20 70 6f 72 74 65 64 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 ported();.......public.function.
d0d40 67 65 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 getName();.}.<?php...........nam
d0d60 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c espace.Symfony\Component\Finder\
d0d80 41 64 61 70 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c Adapter;..use.Symfony\Component\
d0da0 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 53 68 65 6c 6c 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c Finder\Shell\Shell;.use.Symfony\
d0dc0 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a Component\Finder\Shell\Command;.
d0de0 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 65 72 5c 49 74 65 use.Symfony\Component\Finder\Ite
d0e00 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 rator\SortableIterator;.use.Symf
d0e20 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 5c ony\Component\Finder\Expression\
d0e40 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 42 73 64 46 69 6e 64 41 Expression;.......class.BsdFindA
d0e60 64 61 70 74 65 72 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 46 69 6e 64 41 64 61 70 74 dapter.extends.AbstractFindAdapt
d0e80 65 72 0a 7b 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 er.{....public.function.getName(
d0ea0 29 0a 7b 0a 72 65 74 75 72 6e 20 27 62 73 64 5f 66 69 6e 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f ).{.return.'bsd_find';.}.....pro
d0ec0 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 0a 7b 0a 72 65 tected.function.canBeUsed().{.re
d0ee0 74 75 72 6e 20 69 6e 5f 61 72 72 61 79 28 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 67 65 74 54 turn.in_array($this->shell->getT
d0f00 79 70 65 28 29 2c 20 61 72 72 61 79 28 53 68 65 6c 6c 3a 3a 54 59 50 45 5f 42 53 44 2c 20 53 68 ype(),.array(Shell::TYPE_BSD,.Sh
d0f20 65 6c 6c 3a 3a 54 59 50 45 5f 44 41 52 57 49 4e 29 29 20 26 26 20 70 61 72 65 6e 74 3a 3a 63 61 ell::TYPE_DARWIN)).&&.parent::ca
d0f40 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 nBeUsed();.}.....protected.funct
d0f60 69 6f 6e 20 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 ion.buildFormatSorting(Command.$
d0f80 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 73 6f 72 74 29 command,.$sort).{.switch.($sort)
d0fa0 20 7b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 .{.case.SortableIterator::SORT_B
d0fc0 59 5f 4e 41 4d 45 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 69 6e 73 28 27 73 6f 72 74 27 29 2d 3e 61 Y_NAME:.$command->ins('sort')->a
d0fe0 64 64 28 27 7c 20 73 6f 72 74 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 63 61 73 65 20 53 6f 72 74 dd('|.sort');..return;.case.Sort
d1000 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 5f 42 59 5f 54 59 50 45 3a 0a 24 66 6f 72 ableIterator::SORT_BY_TYPE:.$for
d1020 6d 61 74 20 3d 20 27 25 48 54 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c mat.=.'%HT';.break;.case.Sortabl
d1040 65 49 74 65 72 61 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 eIterator::SORT_BY_ACCESSED_TIME
d1060 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 61 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 6f :.$format.=.'%a';.break;.case.So
d1080 72 74 61 62 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 rtableIterator::SORT_BY_CHANGED_
d10a0 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 63 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 TIME:.$format.=.'%c';.break;.cas
d10c0 65 20 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 4d 4f 44 49 e.SortableIterator::SORT_BY_MODI
d10e0 46 49 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 6d 27 3b 0a 62 72 65 61 6b FIED_TIME:.$format.=.'%m';.break
d1100 3b 0a 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 ;.default:.throw.new.\InvalidArg
d1120 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 73 70 72 69 6e 74 66 28 27 55 6e 6b 6e 6f 77 6e 20 umentException(sprintf('Unknown.
d1140 73 6f 72 74 20 6f 70 74 69 6f 6e 73 3a 20 25 73 2e 27 2c 20 24 73 6f 72 74 29 29 3b 0a 7d 0a 0a sort.options:.%s.',.$sort));.}..
d1160 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 27 2d 70 72 69 6e 74 30 20 7c 20 78 61 72 67 73 20 $command.->add('-print0.|.xargs.
d1180 2d 30 20 73 74 61 74 20 2d 66 27 29 0a 2d 3e 61 72 67 28 24 66 6f 72 6d 61 74 2e 27 25 74 25 4e -0.stat.-f').->arg($format.'%t%N
d11a0 27 29 0a 2d 3e 61 64 64 28 27 7c 20 73 6f 72 74 20 7c 20 63 75 74 20 2d 66 20 32 27 29 3b 0a 7d ').->add('|.sort.|.cut.-f.2');.}
d11c0 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 46 69 6e .....protected.function.buildFin
d11e0 64 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 dCommand(Command.$command,.$dir)
d1200 0a 7b 0a 70 61 72 65 6e 74 3a 3a 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d .{.parent::buildFindCommand($com
d1220 6d 61 6e 64 2c 20 24 64 69 72 29 2d 3e 61 64 64 41 74 49 6e 64 65 78 28 27 2d 45 27 2c 20 31 29 mand,.$dir)->addAtIndex('-E',.1)
d1240 3b 0a 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ;..return.$command;.}.....protec
d1260 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 ted.function.buildContentFilteri
d1280 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 63 6f 6e 74 ng(Command.$command,.array.$cont
d12a0 61 69 6e 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 ains,.$not.=.false).{.foreach.($
d12c0 63 6f 6e 74 61 69 6e 73 20 61 73 20 24 63 6f 6e 74 61 69 6e 29 20 7b 0a 24 65 78 70 72 20 3d 20 contains.as.$contain).{.$expr.=.
d12e0 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 63 6f 6e 74 61 69 6e 29 3b 0a 0a 0a Expression::create($contain);...
d1300 20 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 27 7c 20 67 72 65 70 20 2d 76 20 5c 27 5e 24 5c .$command.->add('|.grep.-v.\'^$\
d1320 27 27 29 0a 2d 3e 61 64 64 28 27 7c 20 78 61 72 67 73 20 2d 49 7b 7d 20 67 72 65 70 20 2d 49 27 '').->add('|.xargs.-I{}.grep.-I'
d1340 29 0a 2d 3e 61 64 64 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 ).->add($expr->isCaseSensitive()
d1360 20 3f 20 6e 75 6c 6c 20 3a 20 27 2d 69 27 29 0a 2d 3e 61 64 64 28 24 6e 6f 74 20 3f 20 27 2d 4c .?.null.:.'-i').->add($not.?.'-L
d1380 27 20 3a 20 27 2d 6c 27 29 0a 2d 3e 61 64 64 28 27 2d 45 65 27 29 2d 3e 61 72 67 28 24 65 78 70 '.:.'-l').->add('-Ee')->arg($exp
d13a0 72 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 29 0a 2d 3e 61 64 64 28 27 7b 7d 27 29 0a r->renderPattern()).->add('{}').
d13c0 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 ;.}.}.}.<?php...........namespac
d13e0 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 41 64 61 70 74 e.Symfony\Component\Finder\Adapt
d1400 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 46 69 6e 64 65 er;..use.Symfony\Component\Finde
d1420 72 5c 53 68 65 6c 6c 5c 53 68 65 6c 6c 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f r\Shell\Shell;.use.Symfony\Compo
d1440 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 nent\Finder\Shell\Command;.use.S
d1460 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
d1480 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 \SortableIterator;.use.Symfony\C
d14a0 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 omponent\Finder\Expression\Expre
d14c0 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 47 6e 75 46 69 6e 64 41 64 61 70 74 65 ssion;.......class.GnuFindAdapte
d14e0 72 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 46 69 6e 64 41 64 61 70 74 65 72 0a 7b 0a r.extends.AbstractFindAdapter.{.
d1500 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 7b 0a 72 ...public.function.getName().{.r
d1520 65 74 75 72 6e 20 27 67 6e 75 5f 66 69 6e 64 27 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 eturn.'gnu_find';.}.....protecte
d1540 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e 67 28 43 6f d.function.buildFormatSorting(Co
d1560 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 0a 7b 0a 73 77 69 74 63 68 20 mmand.$command,.$sort).{.switch.
d1580 28 24 73 6f 72 74 29 20 7b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a ($sort).{.case.SortableIterator:
d15a0 3a 53 4f 52 54 5f 42 59 5f 4e 41 4d 45 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 69 6e 73 28 27 73 6f :SORT_BY_NAME:.$command->ins('so
d15c0 72 74 27 29 2d 3e 61 64 64 28 27 7c 20 73 6f 72 74 27 29 3b 0a 0a 72 65 74 75 72 6e 3b 0a 63 61 rt')->add('|.sort');..return;.ca
d15e0 73 65 20 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 54 59 50 se.SortableIterator::SORT_BY_TYP
d1600 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 79 27 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 53 E:.$format.=.'%y';.break;.case.S
d1620 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 41 43 43 45 53 53 45 ortableIterator::SORT_BY_ACCESSE
d1640 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 41 40 27 3b 0a 62 72 65 61 6b 3b 0a D_TIME:.$format.=.'%A@';.break;.
d1660 63 61 73 65 20 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 43 case.SortableIterator::SORT_BY_C
d1680 48 41 4e 47 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 43 40 27 3b 0a 62 72 HANGED_TIME:.$format.=.'%C@';.br
d16a0 65 61 6b 3b 0a 63 61 73 65 20 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3a 3a 53 4f 52 54 eak;.case.SortableIterator::SORT
d16c0 5f 42 59 5f 4d 4f 44 49 46 49 45 44 5f 54 49 4d 45 3a 0a 24 66 6f 72 6d 61 74 20 3d 20 27 25 54 _BY_MODIFIED_TIME:.$format.=.'%T
d16e0 40 27 3b 0a 62 72 65 61 6b 3b 0a 64 65 66 61 75 6c 74 3a 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 @';.break;.default:.throw.new.\I
d1700 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(
d1720 27 55 6e 6b 6e 6f 77 6e 20 73 6f 72 74 20 6f 70 74 69 6f 6e 73 3a 20 25 73 2e 27 2c 20 24 73 6f 'Unknown.sort.options:.%s.',.$so
d1740 72 74 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 67 65 74 28 27 66 69 6e 64 27 29 0a rt));.}..$command.->get('find').
d1760 2d 3e 61 64 64 28 27 2d 70 72 69 6e 74 66 27 29 0a 2d 3e 61 72 67 28 24 66 6f 72 6d 61 74 2e 27 ->add('-printf').->arg($format.'
d1780 20 25 68 2f 25 66 5c 5c 6e 27 29 0a 2d 3e 61 64 64 28 27 7c 20 73 6f 72 74 20 7c 20 63 75 74 27 .%h/%f\\n').->add('|.sort.|.cut'
d17a0 29 0a 2d 3e 61 72 67 28 27 2d 64 20 27 29 0a 2d 3e 61 72 67 28 27 2d 66 32 2d 27 29 0a 3b 0a 7d ).->arg('-d.').->arg('-f2-').;.}
d17c0 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 61 6e 42 65 55 73 65 .....protected.function.canBeUse
d17e0 64 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 67 65 74 54 79 d().{.return.$this->shell->getTy
d1800 70 65 28 29 20 3d 3d 3d 20 53 68 65 6c 6c 3a 3a 54 59 50 45 5f 55 4e 49 58 20 26 26 20 70 61 72 pe().===.Shell::TYPE_UNIX.&&.par
d1820 65 6e 74 3a 3a 63 61 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 ent::canBeUsed();.}.....protecte
d1840 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d d.function.buildFindCommand(Comm
d1860 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 29 0a 7b 0a 72 65 74 75 72 6e 20 70 61 72 and.$command,.$dir).{.return.par
d1880 65 6e 74 3a 3a 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 ent::buildFindCommand($command,.
d18a0 24 64 69 72 29 2d 3e 61 64 64 28 27 2d 72 65 67 65 78 74 79 70 65 20 70 6f 73 69 78 2d 65 78 74 $dir)->add('-regextype.posix-ext
d18c0 65 6e 64 65 64 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 ended');.}.....protected.functio
d18e0 6e 20 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 n.buildContentFiltering(Command.
d1900 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 2c 20 24 6e 6f 74 20 $command,.array.$contains,.$not.
d1920 3d 20 66 61 6c 73 65 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 63 6f 6e 74 61 69 6e 73 20 61 73 =.false).{.foreach.($contains.as
d1940 20 24 63 6f 6e 74 61 69 6e 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a .$contain).{.$expr.=.Expression:
d1960 3a 63 72 65 61 74 65 28 24 63 6f 6e 74 61 69 6e 29 3b 0a 0a 0a 20 24 63 6f 6d 6d 61 6e 64 0a 2d :create($contain);....$command.-
d1980 3e 61 64 64 28 27 7c 20 78 61 72 67 73 20 2d 49 7b 7d 20 2d 72 20 67 72 65 70 20 2d 49 27 29 0a >add('|.xargs.-I{}.-r.grep.-I').
d19a0 2d 3e 61 64 64 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f ->add($expr->isCaseSensitive().?
d19c0 20 6e 75 6c 6c 20 3a 20 27 2d 69 27 29 0a 2d 3e 61 64 64 28 24 6e 6f 74 20 3f 20 27 2d 4c 27 20 .null.:.'-i').->add($not.?.'-L'.
d19e0 3a 20 27 2d 6c 27 29 0a 2d 3e 61 64 64 28 27 2d 45 65 27 29 2d 3e 61 72 67 28 24 65 78 70 72 2d :.'-l').->add('-Ee')->arg($expr-
d1a00 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 29 0a 2d 3e 61 64 64 28 27 7b 7d 27 29 0a 3b 0a >renderPattern()).->add('{}').;.
d1a20 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 }.}.}.<?php...........namespace.
d1a40 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 41 64 61 70 74 65 72 Symfony\Component\Finder\Adapter
d1a60 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 41 62 73 74 72 61 63 74 41 ;.......abstract.class.AbstractA
d1a80 64 61 70 74 65 72 20 69 6d 70 6c 65 6d 65 6e 74 73 20 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 dapter.implements.AdapterInterfa
d1aa0 63 65 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d 20 66 61 ce.{.protected.$followLinks.=.fa
d1ac0 6c 73 65 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 6f 64 65 20 3d 20 30 3b 0a 70 72 6f 74 65 63 lse;.protected.$mode.=.0;.protec
d1ae0 74 65 64 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6d 61 ted.$minDepth.=.0;.protected.$ma
d1b00 78 44 65 70 74 68 20 3d 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 70 72 6f 74 65 63 74 65 64 20 xDepth.=.PHP_INT_MAX;.protected.
d1b20 24 65 78 63 6c 75 64 65 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e $exclude.=.array();.protected.$n
d1b40 61 6d 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 6e 6f 74 4e 61 ames.=.array();.protected.$notNa
d1b60 6d 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 6f 6e 74 61 69 mes.=.array();.protected.$contai
d1b80 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 6e 6f 74 43 6f 6e 74 ns.=.array();.protected.$notCont
d1ba0 61 69 6e 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 69 7a 65 73 ains.=.array();.protected.$sizes
d1bc0 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 61 74 65 73 20 3d 20 61 .=.array();.protected.$dates.=.a
d1be0 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 66 69 6c 74 65 72 73 20 3d 20 61 72 72 rray();.protected.$filters.=.arr
d1c00 61 79 28 29 3b 0a 70 72 6f 74 65 63 74 65 64 20 24 73 6f 72 74 20 3d 20 66 61 6c 73 65 3b 0a 70 ay();.protected.$sort.=.false;.p
d1c20 72 6f 74 65 63 74 65 64 20 24 70 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 rotected.$paths.=.array();.prote
d1c40 63 74 65 64 20 24 6e 6f 74 50 61 74 68 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 6f 74 65 63 cted.$notPaths.=.array();.protec
d1c60 74 65 64 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 66 61 6c 73 ted.$ignoreUnreadableDirs.=.fals
d1c80 65 3b 0a 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 61 72 65 53 75 70 70 6f 72 74 65 64 e;..private.static.$areSupported
d1ca0 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 .=.array();.....public.function.
d1cc0 69 73 53 75 70 70 6f 72 74 65 64 28 29 0a 7b 0a 24 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 67 isSupported().{.$name.=.$this->g
d1ce0 65 74 4e 61 6d 65 28 29 3b 0a 0a 69 66 20 28 21 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 etName();..if.(!array_key_exists
d1d00 28 24 6e 61 6d 65 2c 20 73 65 6c 66 3a 3a 24 61 72 65 53 75 70 70 6f 72 74 65 64 29 29 20 7b 0a ($name,.self::$areSupported)).{.
d1d20 73 65 6c 66 3a 3a 24 61 72 65 53 75 70 70 6f 72 74 65 64 5b 24 6e 61 6d 65 5d 20 3d 20 24 74 68 self::$areSupported[$name].=.$th
d1d40 69 73 2d 3e 63 61 6e 42 65 55 73 65 64 28 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a is->canBeUsed();.}..return.self:
d1d60 3a 24 61 72 65 53 75 70 70 6f 72 74 65 64 5b 24 6e 61 6d 65 5d 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 :$areSupported[$name];.}.....pub
d1d80 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 6f 6c 6c 6f 77 4c 69 6e 6b 73 28 24 66 6f 6c lic.function.setFollowLinks($fol
d1da0 6c 6f 77 4c 69 6e 6b 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 20 3d lowLinks).{.$this->followLinks.=
d1dc0 20 24 66 6f 6c 6c 6f 77 4c 69 6e 6b 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a .$followLinks;..return.$this;.}.
d1de0 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4d 6f 64 65 28 24 6d 6f 64 ....public.function.setMode($mod
d1e00 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 0a 72 65 74 75 72 e).{.$this->mode.=.$mode;..retur
d1e20 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 n.$this;.}.....public.function.s
d1e40 65 74 44 65 70 74 68 73 28 61 72 72 61 79 20 24 64 65 70 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d etDepths(array.$depths).{.$this-
d1e60 3e 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d >minDepth.=.0;.$this->maxDepth.=
d1e80 20 50 48 50 5f 49 4e 54 5f 4d 41 58 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 64 65 70 74 68 73 20 .PHP_INT_MAX;..foreach.($depths.
d1ea0 61 73 20 24 63 6f 6d 70 61 72 61 74 6f 72 29 20 7b 0a 73 77 69 74 63 68 20 28 24 63 6f 6d 70 61 as.$comparator).{.switch.($compa
d1ec0 72 61 74 6f 72 2d 3e 67 65 74 4f 70 65 72 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 3e 27 rator->getOperator()).{.case.'>'
d1ee0 3a 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d :.$this->minDepth.=.$comparator-
d1f00 3e 67 65 74 54 61 72 67 65 74 28 29 20 2b 20 31 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e >getTarget().+.1;.break;.case.'>
d1f20 3d 27 3a 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f =':.$this->minDepth.=.$comparato
d1f40 72 2d 3e 67 65 74 54 61 72 67 65 74 28 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c 27 3a r->getTarget();.break;.case.'<':
d1f60 0a 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 2d 3e .$this->maxDepth.=.$comparator->
d1f80 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 3d getTarget().-.1;.break;.case.'<=
d1fa0 27 3a 0a 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3d 20 24 63 6f 6d 70 61 72 61 74 6f 72 ':.$this->maxDepth.=.$comparator
d1fc0 2d 3e 67 65 74 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 ->getTarget();.break;.default:.$
d1fe0 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 this->minDepth.=.$this->maxDepth
d2000 20 3d 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 3b 0a 7d 0a 7d .=.$comparator->getTarget();.}.}
d2020 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e ..return.$this;.}.....public.fun
d2040 63 74 69 6f 6e 20 73 65 74 45 78 63 6c 75 64 65 28 61 72 72 61 79 20 24 65 78 63 6c 75 64 65 29 ction.setExclude(array.$exclude)
d2060 0a 7b 0a 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 20 3d 20 24 65 78 63 6c 75 64 65 3b 0a 0a 72 .{.$this->exclude.=.$exclude;..r
d2080 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 eturn.$this;.}.....public.functi
d20a0 6f 6e 20 73 65 74 4e 61 6d 65 73 28 61 72 72 61 79 20 24 6e 61 6d 65 73 29 0a 7b 0a 24 74 68 69 on.setNames(array.$names).{.$thi
d20c0 73 2d 3e 6e 61 6d 65 73 20 3d 20 24 6e 61 6d 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 s->names.=.$names;..return.$this
d20e0 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 4e 6f 74 4e 61 ;.}.....public.function.setNotNa
d2100 6d 65 73 28 61 72 72 61 79 20 24 6e 6f 74 4e 61 6d 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f mes(array.$notNames).{.$this->no
d2120 74 4e 61 6d 65 73 20 3d 20 24 6e 6f 74 4e 61 6d 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 tNames.=.$notNames;..return.$thi
d2140 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 43 6f 6e 74 s;.}.....public.function.setCont
d2160 61 69 6e 73 28 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 63 ains(array.$contains).{.$this->c
d2180 6f 6e 74 61 69 6e 73 20 3d 20 24 63 6f 6e 74 61 69 6e 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 ontains.=.$contains;..return.$th
d21a0 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 is;.}.....public.function.setNot
d21c0 43 6f 6e 74 61 69 6e 73 28 61 72 72 61 79 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 0a 7b 0a 24 Contains(array.$notContains).{.$
d21e0 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 20 3d 20 24 6e 6f 74 43 6f 6e 74 61 69 6e 73 this->notContains.=.$notContains
d2200 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ;..return.$this;.}.....public.fu
d2220 6e 63 74 69 6f 6e 20 73 65 74 53 69 7a 65 73 28 61 72 72 61 79 20 24 73 69 7a 65 73 29 0a 7b 0a nction.setSizes(array.$sizes).{.
d2240 24 74 68 69 73 2d 3e 73 69 7a 65 73 20 3d 20 24 73 69 7a 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 $this->sizes.=.$sizes;..return.$
d2260 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 44 this;.}.....public.function.setD
d2280 61 74 65 73 28 61 72 72 61 79 20 24 64 61 74 65 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 64 61 74 65 ates(array.$dates).{.$this->date
d22a0 73 20 3d 20 24 64 61 74 65 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a s.=.$dates;..return.$this;.}....
d22c0 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 46 69 6c 74 65 72 73 28 61 72 72 61 .public.function.setFilters(arra
d22e0 79 20 24 66 69 6c 74 65 72 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 3d 20 24 y.$filters).{.$this->filters.=.$
d2300 66 69 6c 74 65 72 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 filters;..return.$this;.}.....pu
d2320 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 53 6f 72 74 28 24 73 6f 72 74 29 0a 7b 0a 24 blic.function.setSort($sort).{.$
d2340 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 24 73 6f 72 74 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 this->sort.=.$sort;..return.$thi
d2360 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 61 74 68 s;.}.....public.function.setPath
d2380 28 61 72 72 61 79 20 24 70 61 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 70 61 74 68 73 20 3d 20 (array.$paths).{.$this->paths.=.
d23a0 24 70 61 74 68 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 $paths;..return.$this;.}.....pub
d23c0 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 4e 6f 74 50 61 74 68 28 61 72 72 61 79 20 24 6e lic.function.setNotPath(array.$n
d23e0 6f 74 50 61 74 68 73 29 0a 7b 0a 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 20 3d 20 24 6e 6f otPaths).{.$this->notPaths.=.$no
d2400 74 50 61 74 68 73 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 tPaths;..return.$this;.}.....pub
d2420 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 lic.function.ignoreUnreadableDir
d2440 73 28 24 69 67 6e 6f 72 65 20 3d 20 74 72 75 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 s($ignore.=.true).{.$this->ignor
d2460 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 28 42 6f 6f 6c 65 61 6e 29 20 24 69 67 6e eUnreadableDirs.=.(Boolean).$ign
d2480 6f 72 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 ore;..return.$this;.}...........
d24a0 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 63 61 ..abstract.protected.function.ca
d24c0 6e 42 65 55 73 65 64 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 nBeUsed();.}.<?php...........nam
d24e0 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c espace.Symfony\Component\Finder\
d2500 41 64 61 70 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c Adapter;..use.Symfony\Component\
d2520 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 5c 41 63 63 65 73 73 44 65 6e 69 65 64 45 78 63 Finder\Exception\AccessDeniedExc
d2540 65 70 74 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 eption;.use.Symfony\Component\Fi
d2560 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f nder\Iterator;.use.Symfony\Compo
d2580 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 53 68 65 6c 6c 3b 0a 75 73 65 20 53 79 6d nent\Finder\Shell\Shell;.use.Sym
d25a0 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e fony\Component\Finder\Expression
d25c0 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 \Expression;.use.Symfony\Compone
d25e0 6e 74 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a 75 73 65 20 53 79 6d nt\Finder\Shell\Command;.use.Sym
d2600 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 5c 53 fony\Component\Finder\Iterator\S
d2620 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d ortableIterator;.use.Symfony\Com
d2640 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 ponent\Finder\Comparator\NumberC
d2660 6f 6d 70 61 72 61 74 6f 72 3b 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 omparator;.use.Symfony\Component
d2680 5c 46 69 6e 64 65 72 5c 43 6f 6d 70 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f \Finder\Comparator\DateComparato
d26a0 72 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 41 62 73 74 72 61 63 74 r;.......abstract.class.Abstract
d26c0 46 69 6e 64 41 64 61 70 74 65 72 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 41 64 61 70 FindAdapter.extends.AbstractAdap
d26e0 74 65 72 0a 7b 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 24 73 68 65 6c 6c 3b 0a 0a 0a 0a 0a 70 ter.{....protected.$shell;.....p
d2700 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 29 0a 7b 0a 24 ublic.function.__construct().{.$
d2720 74 68 69 73 2d 3e 73 68 65 6c 6c 20 3d 20 6e 65 77 20 53 68 65 6c 6c 28 29 3b 0a 7d 0a 0a 0a 0a this->shell.=.new.Shell();.}....
d2740 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 72 65 63 74 6f .public.function.searchInDirecto
d2760 72 79 28 24 64 69 72 29 0a 7b 0a 0a 20 24 64 69 72 20 3d 20 72 65 61 6c 70 61 74 68 28 24 64 69 ry($dir).{...$dir.=.realpath($di
d2780 72 29 3b 0a 0a 0a 20 69 66 20 28 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 r);....if.(Iterator\FileTypeFilt
d27a0 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 3d 3d erIterator::ONLY_DIRECTORIES.===
d27c0 20 24 74 68 69 73 2d 3e 6d 6f 64 65 20 26 26 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 .$this->mode.&&.($this->contains
d27e0 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 29 20 7b 0a 72 65 74 75 72 .||.$this->notContains)).{.retur
d2800 6e 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 n.new.Iterator\FilePathsIterator
d2820 28 61 72 72 61 79 28 29 2c 20 24 64 69 72 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 20 3d 20 43 (array(),.$dir);.}..$command.=.C
d2840 6f 6d 6d 61 6e 64 3a 3a 63 72 65 61 74 65 28 29 3b 0a 24 66 69 6e 64 20 3d 20 24 74 68 69 73 2d ommand::create();.$find.=.$this-
d2860 3e 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 >buildFindCommand($command,.$dir
d2880 29 3b 0a 0a 69 66 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 );..if.($this->followLinks).{.$f
d28a0 69 6e 64 2d 3e 61 64 64 28 27 2d 66 6f 6c 6c 6f 77 27 29 3b 0a 7d 0a 0a 24 66 69 6e 64 2d 3e 61 ind->add('-follow');.}..$find->a
d28c0 64 64 28 27 2d 6d 69 6e 64 65 70 74 68 27 29 2d 3e 61 64 64 28 24 74 68 69 73 2d 3e 6d 69 6e 44 dd('-mindepth')->add($this->minD
d28e0 65 70 74 68 20 2b 20 31 29 3b 0a 0a 69 66 20 28 50 48 50 5f 49 4e 54 5f 4d 41 58 20 21 3d 3d 20 epth.+.1);..if.(PHP_INT_MAX.!==.
d2900 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d $this->maxDepth).{.$find->add('-
d2920 6d 61 78 64 65 70 74 68 27 29 2d 3e 61 64 64 28 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 maxdepth')->add($this->maxDepth.
d2940 2b 20 31 29 3b 0a 7d 0a 0a 69 66 20 28 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 +.1);.}..if.(Iterator\FileTypeFi
d2960 6c 74 65 72 49 74 65 72 61 74 6f 72 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d lterIterator::ONLY_DIRECTORIES.=
d2980 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 74 ==.$this->mode).{.$find->add('-t
d29a0 79 70 65 20 64 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 ype.d');.}.elseif.(Iterator\File
d29c0 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 53 20 3d TypeFilterIterator::ONLY_FILES.=
d29e0 3d 3d 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 7b 0a 24 66 69 6e 64 2d 3e 61 64 64 28 27 2d 74 ==.$this->mode).{.$find->add('-t
d2a00 79 70 65 20 66 27 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 4e 61 6d 65 73 46 69 6c ype.f');.}..$this->buildNamesFil
d2a20 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 29 3b 0a 24 74 68 tering($find,.$this->names);.$th
d2a40 69 73 2d 3e 62 75 69 6c 64 4e 61 6d 65 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 is->buildNamesFiltering($find,.$
d2a60 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 2c 20 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 62 75 this->notNames,.true);.$this->bu
d2a80 69 6c 64 50 61 74 68 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 64 69 72 2c 20 24 ildPathsFiltering($find,.$dir,.$
d2aa0 74 68 69 73 2d 3e 70 61 74 68 73 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 61 74 68 73 46 this->paths);.$this->buildPathsF
d2ac0 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 64 69 72 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 iltering($find,.$dir,.$this->not
d2ae0 50 61 74 68 73 2c 20 74 72 75 65 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 69 7a 65 73 46 Paths,.true);.$this->buildSizesF
d2b00 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c 20 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 3b 0a 24 iltering($find,.$this->sizes);.$
d2b20 74 68 69 73 2d 3e 62 75 69 6c 64 44 61 74 65 73 46 69 6c 74 65 72 69 6e 67 28 24 66 69 6e 64 2c this->buildDatesFiltering($find,
d2b40 20 24 74 68 69 73 2d 3e 64 61 74 65 73 29 3b 0a 0a 24 75 73 65 47 72 65 70 20 3d 20 24 74 68 69 .$this->dates);..$useGrep.=.$thi
d2b60 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 67 72 65 70 27 29 20 26 26 s->shell->testCommand('grep').&&
d2b80 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 78 61 72 67 .$this->shell->testCommand('xarg
d2ba0 73 27 29 3b 0a 24 75 73 65 53 6f 72 74 20 3d 20 69 73 5f 69 6e 74 28 24 74 68 69 73 2d 3e 73 6f s');.$useSort.=.is_int($this->so
d2bc0 72 74 29 20 26 26 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 rt).&&.$this->shell->testCommand
d2be0 28 27 73 6f 72 74 27 29 20 26 26 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f ('sort').&&.$this->shell->testCo
d2c00 6d 6d 61 6e 64 28 27 63 75 74 27 29 3b 0a 0a 69 66 20 28 24 75 73 65 47 72 65 70 20 26 26 20 28 mmand('cut');..if.($useGrep.&&.(
d2c20 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
d2c40 74 61 69 6e 73 29 29 20 7b 0a 24 67 72 65 70 20 3d 20 24 63 6f 6d 6d 61 6e 64 2d 3e 69 6e 73 28 tains)).{.$grep.=.$command->ins(
d2c60 27 67 72 65 70 27 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 'grep');.$this->buildContentFilt
d2c80 65 72 69 6e 67 28 24 67 72 65 70 2c 20 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 29 3b 0a 24 ering($grep,.$this->contains);.$
d2ca0 74 68 69 73 2d 3e 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 24 67 72 65 this->buildContentFiltering($gre
d2cc0 70 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 2c 20 74 72 75 65 29 3b 0a 7d 0a p,.$this->notContains,.true);.}.
d2ce0 0a 69 66 20 28 24 75 73 65 53 6f 72 74 29 20 7b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 53 6f 72 .if.($useSort).{.$this->buildSor
d2d00 74 69 6e 67 28 24 63 6f 6d 6d 61 6e 64 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 7d 0a 0a ting($command,.$this->sort);.}..
d2d20 24 63 6f 6d 6d 61 6e 64 2d 3e 73 65 74 45 72 72 6f 72 48 61 6e 64 6c 65 72 28 0a 24 74 68 69 73 $command->setErrorHandler(.$this
d2d40 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 0a 0a 20 3f 20 66 75 6e 63 74 ->ignoreUnreadableDirs...?.funct
d2d60 69 6f 6e 20 28 24 73 74 64 65 72 72 29 20 7b 20 72 65 74 75 72 6e 3b 20 7d 0a 3a 20 66 75 6e 63 ion.($stderr).{.return;.}.:.func
d2d80 74 69 6f 6e 20 28 24 73 74 64 65 72 72 29 20 7b 20 74 68 72 6f 77 20 6e 65 77 20 41 63 63 65 73 tion.($stderr).{.throw.new.Acces
d2da0 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 28 24 73 74 64 65 72 72 29 3b 20 7d 0a 29 3b 0a sDeniedException($stderr);.}.);.
d2dc0 0a 24 70 61 74 68 73 20 3d 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d .$paths.=.$this->shell->testComm
d2de0 61 6e 64 28 27 75 6e 69 71 27 29 20 3f 20 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 7c 20 75 and('uniq').?.$command->add('|.u
d2e00 6e 69 71 27 29 2d 3e 65 78 65 63 75 74 65 28 29 20 3a 20 61 72 72 61 79 5f 75 6e 69 71 75 65 28 niq')->execute().:.array_unique(
d2e20 24 63 6f 6d 6d 61 6e 64 2d 3e 65 78 65 63 75 74 65 28 29 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 $command->execute());.$iterator.
d2e40 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 =.new.Iterator\FilePathsIterator
d2e60 28 24 70 61 74 68 73 2c 20 24 64 69 72 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 65 78 63 6c ($paths,.$dir);..if.($this->excl
d2e80 75 64 65 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 ude).{.$iterator.=.new.Iterator\
d2ea0 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 ExcludeDirectoryFilterIterator($
d2ec0 69 74 65 72 61 74 6f 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 iterator,.$this->exclude);.}..if
d2ee0 20 28 21 24 75 73 65 47 72 65 70 20 26 26 20 28 24 74 68 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 20 .(!$useGrep.&&.($this->contains.
d2f00 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 29 20 7b 0a 24 69 74 65 72 61 ||.$this->notContains)).{.$itera
d2f20 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 63 6f 6e 74 65 6e 74 46 69 tor.=.new.Iterator\FilecontentFi
d2f40 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 63 lterIterator($iterator,.$this->c
d2f60 6f 6e 74 61 69 6e 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 3b 0a 7d 0a ontains,.$this->notContains);.}.
d2f80 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 .if.($this->filters).{.$iterator
d2fa0 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 .=.new.Iterator\CustomFilterIter
d2fc0 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 3b ator($iterator,.$this->filters);
d2fe0 0a 7d 0a 0a 69 66 20 28 21 24 75 73 65 53 6f 72 74 20 26 26 20 24 74 68 69 73 2d 3e 73 6f 72 74 .}..if.(!$useSort.&&.$this->sort
d3000 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 20 3d 20 6e 65 77 20 49 74 65 ).{.$iteratorAggregate.=.new.Ite
d3020 72 61 74 6f 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 rator\SortableIterator($iterator
d3040 2c 20 24 74 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 ,.$this->sort);.$iterator.=.$ite
d3060 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d ratorAggregate->getIterator();.}
d3080 0a 0a 72 65 74 75 72 6e 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 72 6f 74 65 63 ..return.$iterator;.}.....protec
d30a0 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 61 6e 42 65 55 73 65 64 28 29 0a 7b 0a 72 65 74 75 72 ted.function.canBeUsed().{.retur
d30c0 6e 20 24 74 68 69 73 2d 3e 73 68 65 6c 6c 2d 3e 74 65 73 74 43 6f 6d 6d 61 6e 64 28 27 66 69 6e n.$this->shell->testCommand('fin
d30e0 64 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e d');.}........protected.function
d3100 20 62 75 69 6c 64 46 69 6e 64 43 6f 6d 6d 61 6e 64 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 .buildFindCommand(Command.$comma
d3120 6e 64 2c 20 24 64 69 72 29 0a 7b 0a 72 65 74 75 72 6e 20 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 69 6e nd,.$dir).{.return.$command.->in
d3140 73 28 27 66 69 6e 64 27 29 0a 2d 3e 61 64 64 28 27 66 69 6e 64 20 27 29 0a 2d 3e 61 72 67 28 24 s('find').->add('find.').->arg($
d3160 64 69 72 29 0a 2d 3e 61 64 64 28 27 2d 6e 6f 6c 65 61 66 27 29 3b 20 0a 20 7d 0a 0a 0a 0a 0a 0a dir).->add('-noleaf');...}......
d3180 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 4e 61 6d 65 73 46 69 6c 74 .private.function.buildNamesFilt
d31a0 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 6e ering(Command.$command,.array.$n
d31c0 61 6d 65 73 2c 20 24 6e 6f 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 ames,.$not.=.false).{.if.(0.===.
d31e0 63 6f 75 6e 74 28 24 6e 61 6d 65 73 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d count($names)).{.return;.}..$com
d3200 6d 61 6e 64 2d 3e 61 64 64 28 24 6e 6f 74 20 3f 20 27 2d 6e 6f 74 27 20 3a 20 6e 75 6c 6c 29 2d mand->add($not.?.'-not'.:.null)-
d3220 3e 63 6d 64 28 27 28 27 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 61 6d 65 73 20 61 73 20 24 >cmd('(');..foreach.($names.as.$
d3240 69 20 3d 3e 20 24 6e 61 6d 65 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e i.=>.$name).{.$expr.=.Expression
d3260 3a 3a 63 72 65 61 74 65 28 24 6e 61 6d 65 29 3b 0a 0a 0a 20 69 66 20 28 24 65 78 70 72 2d 3e 69 ::create($name);....if.($expr->i
d3280 73 47 6c 6f 62 28 29 20 26 26 20 24 65 78 70 72 2d 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 69 73 45 sGlob().&&.$expr->getGlob()->isE
d32a0 78 70 61 6e 64 61 62 6c 65 28 29 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f xpandable()).{.$expr.=.Expressio
d32c0 6e 3a 3a 63 72 65 61 74 65 28 24 65 78 70 72 2d 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 74 6f 52 65 n::create($expr->getGlob()->toRe
d32e0 67 65 78 28 66 61 6c 73 65 29 29 3b 0a 7d 0a 0a 0a 20 0a 20 0a 20 69 66 20 28 24 65 78 70 72 2d gex(false));.}........if.($expr-
d3300 3e 69 73 52 65 67 65 78 28 29 29 20 7b 0a 24 72 65 67 65 78 20 3d 20 24 65 78 70 72 2d 3e 67 65 >isRegex()).{.$regex.=.$expr->ge
d3320 74 52 65 67 65 78 28 29 3b 0a 24 72 65 67 65 78 2d 3e 70 72 65 70 65 6e 64 28 24 72 65 67 65 78 tRegex();.$regex->prepend($regex
d3340 2d 3e 68 61 73 53 74 61 72 74 46 6c 61 67 28 29 20 3f 20 27 2f 27 20 3a 20 27 2f 5b 5e 2f 5d 2a ->hasStartFlag().?.'/'.:.'/[^/]*
d3360 27 29 0a 2d 3e 73 65 74 53 74 61 72 74 46 6c 61 67 28 66 61 6c 73 65 29 0a 2d 3e 73 65 74 53 74 ').->setStartFlag(false).->setSt
d3380 61 72 74 4a 6f 6b 65 72 28 74 72 75 65 29 0a 2d 3e 72 65 70 6c 61 63 65 4a 6f 6b 65 72 73 28 27 artJoker(true).->replaceJokers('
d33a0 5b 5e 2f 5d 27 29 3b 0a 69 66 20 28 21 24 72 65 67 65 78 2d 3e 68 61 73 45 6e 64 46 6c 61 67 28 [^/]');.if.(!$regex->hasEndFlag(
d33c0 29 20 7c 7c 20 24 72 65 67 65 78 2d 3e 68 61 73 45 6e 64 4a 6f 6b 65 72 28 29 29 20 7b 0a 24 72 ).||.$regex->hasEndJoker()).{.$r
d33e0 65 67 65 78 2d 3e 73 65 74 45 6e 64 4a 6f 6b 65 72 28 66 61 6c 73 65 29 2d 3e 61 70 70 65 6e 64 egex->setEndJoker(false)->append
d3400 28 27 5b 5e 2f 5d 2a 27 29 3b 0a 7d 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 0a 2d 3e 61 64 64 28 24 ('[^/]*');.}.}..$command.->add($
d3420 69 20 3e 20 30 20 3f 20 27 2d 6f 72 27 20 3a 20 6e 75 6c 6c 29 0a 2d 3e 61 64 64 28 24 65 78 70 i.>.0.?.'-or'.:.null).->add($exp
d3440 72 2d 3e 69 73 52 65 67 65 78 28 29 0a 3f 20 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e r->isRegex().?.($expr->isCaseSen
d3460 73 69 74 69 76 65 28 29 20 3f 20 27 2d 72 65 67 65 78 27 20 3a 20 27 2d 69 72 65 67 65 78 27 29 sitive().?.'-regex'.:.'-iregex')
d3480 0a 3a 20 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 27 .:.($expr->isCaseSensitive().?.'
d34a0 2d 6e 61 6d 65 27 20 3a 20 27 2d 69 6e 61 6d 65 27 29 0a 29 0a 2d 3e 61 72 67 28 24 65 78 70 72 -name'.:.'-iname').).->arg($expr
d34c0 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 29 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d ->renderPattern());.}..$command-
d34e0 3e 63 6d 64 28 27 29 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 >cmd(')');.}........private.func
d3500 74 69 6f 6e 20 62 75 69 6c 64 50 61 74 68 73 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 tion.buildPathsFiltering(Command
d3520 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 64 69 72 2c 20 61 72 72 61 79 20 24 70 61 74 68 73 2c 20 24 .$command,.$dir,.array.$paths,.$
d3540 6e 6f 74 20 3d 20 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 63 6f 75 6e 74 28 24 not.=.false).{.if.(0.===.count($
d3560 70 61 74 68 73 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 paths)).{.return;.}..$command->a
d3580 64 64 28 24 6e 6f 74 20 3f 20 27 2d 6e 6f 74 27 20 3a 20 6e 75 6c 6c 29 2d 3e 63 6d 64 28 27 28 dd($not.?.'-not'.:.null)->cmd('(
d35a0 27 29 3b 0a 0a 66 6f 72 65 61 63 68 20 28 24 70 61 74 68 73 20 61 73 20 24 69 20 3d 3e 20 24 70 ');..foreach.($paths.as.$i.=>.$p
d35c0 61 74 68 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 ath).{.$expr.=.Expression::creat
d35e0 65 28 24 70 61 74 68 29 3b 0a 0a 0a 20 69 66 20 28 24 65 78 70 72 2d 3e 69 73 47 6c 6f 62 28 29 e($path);....if.($expr->isGlob()
d3600 20 26 26 20 24 65 78 70 72 2d 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 69 73 45 78 70 61 6e 64 61 62 .&&.$expr->getGlob()->isExpandab
d3620 6c 65 28 29 29 20 7b 0a 24 65 78 70 72 20 3d 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 le()).{.$expr.=.Expression::crea
d3640 74 65 28 24 65 78 70 72 2d 3e 67 65 74 47 6c 6f 62 28 29 2d 3e 74 6f 52 65 67 65 78 28 66 61 6c te($expr->getGlob()->toRegex(fal
d3660 73 65 29 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 24 65 78 70 72 2d 3e 69 73 52 65 67 65 78 28 29 29 se));.}....if.($expr->isRegex())
d3680 20 7b 0a 24 72 65 67 65 78 20 3d 20 24 65 78 70 72 2d 3e 67 65 74 52 65 67 65 78 28 29 3b 0a 24 .{.$regex.=.$expr->getRegex();.$
d36a0 72 65 67 65 78 2d 3e 70 72 65 70 65 6e 64 28 24 72 65 67 65 78 2d 3e 68 61 73 53 74 61 72 74 46 regex->prepend($regex->hasStartF
d36c0 6c 61 67 28 29 20 3f 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 lag().?.$dir.DIRECTORY_SEPARATOR
d36e0 20 3a 20 27 2e 2a 27 29 2d 3e 73 65 74 45 6e 64 4a 6f 6b 65 72 28 21 24 72 65 67 65 78 2d 3e 68 .:.'.*')->setEndJoker(!$regex->h
d3700 61 73 45 6e 64 46 6c 61 67 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 78 70 72 2d 3e 70 72 asEndFlag());.}.else.{.$expr->pr
d3720 65 70 65 6e 64 28 27 2a 27 29 2d 3e 61 70 70 65 6e 64 28 27 2a 27 29 3b 0a 7d 0a 0a 24 63 6f 6d epend('*')->append('*');.}..$com
d3740 6d 61 6e 64 0a 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 27 2d 6f 72 27 20 3a 20 6e 75 6c 6c mand.->add($i.>.0.?.'-or'.:.null
d3760 29 0a 2d 3e 61 64 64 28 24 65 78 70 72 2d 3e 69 73 52 65 67 65 78 28 29 0a 3f 20 28 24 65 78 70 ).->add($expr->isRegex().?.($exp
d3780 72 2d 3e 69 73 43 61 73 65 53 65 6e 73 69 74 69 76 65 28 29 20 3f 20 27 2d 72 65 67 65 78 27 20 r->isCaseSensitive().?.'-regex'.
d37a0 3a 20 27 2d 69 72 65 67 65 78 27 29 0a 3a 20 28 24 65 78 70 72 2d 3e 69 73 43 61 73 65 53 65 6e :.'-iregex').:.($expr->isCaseSen
d37c0 73 69 74 69 76 65 28 29 20 3f 20 27 2d 70 61 74 68 27 20 3a 20 27 2d 69 70 61 74 68 27 29 0a 29 sitive().?.'-path'.:.'-ipath').)
d37e0 0a 2d 3e 61 72 67 28 24 65 78 70 72 2d 3e 72 65 6e 64 65 72 50 61 74 74 65 72 6e 28 29 29 3b 0a .->arg($expr->renderPattern());.
d3800 7d 0a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 63 6d 64 28 27 29 27 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 70 72 }..$command->cmd(')');.}......pr
d3820 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 53 69 7a 65 73 46 69 6c 74 65 72 69 ivate.function.buildSizesFilteri
d3840 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 73 69 7a 65 ng(Command.$command,.array.$size
d3860 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 73 69 7a 65 73 20 61 73 20 24 69 20 3d 3e 20 24 73 s).{.foreach.($sizes.as.$i.=>.$s
d3880 69 7a 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 27 2d ize).{.$command->add($i.>.0.?.'-
d38a0 61 6e 64 27 20 3a 20 6e 75 6c 6c 29 3b 0a 0a 73 77 69 74 63 68 20 28 24 73 69 7a 65 2d 3e 67 65 and'.:.null);..switch.($size->ge
d38c0 74 4f 70 65 72 61 74 6f 72 28 29 29 20 7b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 63 6f 6d 6d 61 tOperator()).{.case.'<=':.$comma
d38e0 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2d 27 2e 28 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 nd->add('-size.-'.($size->getTar
d3900 67 65 74 28 29 20 2b 20 31 29 2e 27 63 27 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 3d get().+.1).'c');.break;.case.'>=
d3920 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2b 27 2e 20 28 24 73 69 ':.$command->add('-size.+'..($si
d3940 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 20 2d 20 31 29 2e 27 63 27 29 3b 0a 62 72 65 61 6b ze->getTarget().-.1).'c');.break
d3960 3b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 ;.case.'>':.$command->add('-size
d3980 20 2b 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2e 27 63 27 29 3b 0a 62 72 65 .+'.$size->getTarget().'c');.bre
d39a0 61 6b 3b 0a 63 61 73 65 20 27 21 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 ak;.case.'!=':.$command->add('-s
d39c0 69 7a 65 20 2d 27 2e 24 73 69 7a 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2e 27 63 27 29 3b 0a ize.-'.$size->getTarget().'c');.
d39e0 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2b 27 2e 24 73 69 7a 65 2d 3e 67 $command->add('-size.+'.$size->g
d3a00 65 74 54 61 72 67 65 74 28 29 2e 27 63 27 29 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 64 65 66 61 75 etTarget().'c');.case.'<':.defau
d3a20 6c 74 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 73 69 7a 65 20 2d 27 2e 24 73 69 7a lt:.$command->add('-size.-'.$siz
d3a40 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 2e 27 63 27 29 3b 0a 7d 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a e->getTarget().'c');.}.}.}......
d3a60 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 44 61 74 65 73 46 69 6c 74 65 private.function.buildDatesFilte
d3a80 72 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 64 61 ring(Command.$command,.array.$da
d3aa0 74 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 64 61 74 65 73 20 61 73 20 24 69 20 3d 3e 20 tes).{.foreach.($dates.as.$i.=>.
d3ac0 24 64 61 74 65 29 20 7b 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 24 69 20 3e 20 30 20 3f 20 $date).{.$command->add($i.>.0.?.
d3ae0 27 2d 61 6e 64 27 20 3a 20 6e 75 6c 6c 29 3b 0a 0a 24 6d 69 6e 73 20 3d 20 28 69 6e 74 29 20 72 '-and'.:.null);..$mins.=.(int).r
d3b00 6f 75 6e 64 28 28 74 69 6d 65 28 29 2d 24 64 61 74 65 2d 3e 67 65 74 54 61 72 67 65 74 28 29 29 ound((time()-$date->getTarget())
d3b20 20 2f 20 36 30 29 3b 0a 0a 69 66 20 28 30 20 3e 20 24 6d 69 6e 73 29 20 7b 0a 0a 20 24 63 6f 6d ./.60);..if.(0.>.$mins).{...$com
d3b40 6d 61 6e 64 2d 3e 61 64 64 28 27 20 2d 6d 6d 69 6e 20 2d 30 27 29 3b 0a 0a 20 72 65 74 75 72 6e mand->add('.-mmin.-0');...return
d3b60 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 64 61 74 65 2d 3e 67 65 74 4f 70 65 72 61 74 6f 72 28 ;.}..switch.($date->getOperator(
d3b80 29 29 20 7b 0a 63 61 73 65 20 27 3c 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d )).{.case.'<=':.$command->add('-
d3ba0 6d 6d 69 6e 20 2b 27 2e 28 24 6d 69 6e 73 20 2d 20 31 29 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 mmin.+'.($mins.-.1));.break;.cas
d3bc0 65 20 27 3e 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2d 27 2e e.'>=':.$command->add('-mmin.-'.
d3be0 28 24 6d 69 6e 73 20 2b 20 31 29 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3e 27 3a 0a 24 ($mins.+.1));.break;.case.'>':.$
d3c00 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2d 27 2e 24 6d 69 6e 73 29 3b 0a 62 command->add('-mmin.-'.$mins);.b
d3c20 72 65 61 6b 3b 0a 63 61 73 65 20 27 21 3d 27 3a 0a 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 reak;.case.'!=':.$command->add('
d3c40 2d 6d 6d 69 6e 20 2b 27 2e 24 6d 69 6e 73 2e 27 20 2d 6f 72 20 2d 6d 6d 69 6e 20 2d 27 2e 24 6d -mmin.+'.$mins.'.-or.-mmin.-'.$m
d3c60 69 6e 73 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 27 3c 27 3a 0a 64 65 66 61 75 6c 74 3a 0a ins);.break;.case.'<':.default:.
d3c80 24 63 6f 6d 6d 61 6e 64 2d 3e 61 64 64 28 27 2d 6d 6d 69 6e 20 2b 27 2e 24 6d 69 6e 73 29 3b 0a $command->add('-mmin.+'.$mins);.
d3ca0 7d 0a 7d 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 }.}.}........private.function.bu
d3cc0 69 6c 64 53 6f 72 74 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f ildSorting(Command.$command,.$so
d3ce0 72 74 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 46 6f 72 6d 61 74 53 6f 72 74 69 6e 67 28 rt).{.$this->buildFormatSorting(
d3d00 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 $command,.$sort);.}......abstrac
d3d20 74 20 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 46 6f 72 6d 61 74 t.protected.function.buildFormat
d3d40 53 6f 72 74 69 6e 67 28 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 24 73 6f 72 74 29 Sorting(Command.$command,.$sort)
d3d60 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 64 20 66 75 6e 63 74 ;.......abstract.protected.funct
d3d80 69 6f 6e 20 62 75 69 6c 64 43 6f 6e 74 65 6e 74 46 69 6c 74 65 72 69 6e 67 28 43 6f 6d 6d 61 6e ion.buildContentFiltering(Comman
d3da0 64 20 24 63 6f 6d 6d 61 6e 64 2c 20 61 72 72 61 79 20 24 63 6f 6e 74 61 69 6e 73 2c 20 24 6e 6f d.$command,.array.$contains,.$no
d3dc0 74 20 3d 20 66 61 6c 73 65 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 t.=.false);.}.<?php...........na
d3de0 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
d3e00 5c 41 64 61 70 74 65 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 \Adapter;..use.Symfony\Component
d3e20 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 68 \Finder\Iterator;.......class.Ph
d3e40 70 41 64 61 70 74 65 72 20 65 78 74 65 6e 64 73 20 41 62 73 74 72 61 63 74 41 64 61 70 74 65 72 pAdapter.extends.AbstractAdapter
d3e60 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 61 72 63 68 49 6e 44 69 .{....public.function.searchInDi
d3e80 72 65 63 74 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 rectory($dir).{.$flags.=.\Recurs
d3ea0 69 76 65 44 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 iveDirectoryIterator::SKIP_DOTS;
d3ec0 0a 0a 69 66 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 ..if.($this->followLinks).{.$fla
d3ee0 67 73 20 7c 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 gs.|=.\RecursiveDirectoryIterato
d3f00 72 3a 3a 46 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 r::FOLLOW_SYMLINKS;.}..$iterator
d3f20 20 3d 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f .=.new.\RecursiveIteratorIterato
d3f40 72 28 0a 6e 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 r(.new.Iterator\RecursiveDirecto
d3f60 72 79 49 74 65 72 61 74 6f 72 28 24 64 69 72 2c 20 24 66 6c 61 67 73 2c 20 24 74 68 69 73 2d 3e ryIterator($dir,.$flags,.$this->
d3f80 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 29 2c 0a 5c 52 65 63 75 72 73 69 76 ignoreUnreadableDirs),.\Recursiv
d3fa0 65 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 eIteratorIterator::SELF_FIRST.);
d3fc0 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3e 20 30 20 7c 7c 20 24 74 68 ..if.($this->minDepth.>.0.||.$th
d3fe0 69 73 2d 3e 6d 61 78 44 65 70 74 68 20 3c 20 50 48 50 5f 49 4e 54 5f 4d 41 58 29 20 7b 0a 24 69 is->maxDepth.<.PHP_INT_MAX).{.$i
d4000 74 65 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 44 65 70 74 68 52 61 6e 67 terator.=.new.Iterator\DepthRang
d4020 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 eFilterIterator($iterator,.$this
d4040 2d 3e 6d 69 6e 44 65 70 74 68 2c 20 24 74 68 69 73 2d 3e 6d 61 78 44 65 70 74 68 29 3b 0a 7d 0a ->minDepth,.$this->maxDepth);.}.
d4060 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 6f 64 65 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 .if.($this->mode).{.$iterator.=.
d4080 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 49 74 65 72 61 new.Iterator\FileTypeFilterItera
d40a0 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6d 6f 64 65 29 3b 0a 7d 0a 0a tor($iterator,.$this->mode);.}..
d40c0 69 66 20 28 24 74 68 69 73 2d 3e 65 78 63 6c 75 64 65 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 if.($this->exclude).{.$iterator.
d40e0 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 45 78 63 6c 75 64 65 44 69 72 65 63 74 6f 72 79 46 =.new.Iterator\ExcludeDirectoryF
d4100 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->
d4120 65 78 63 6c 75 64 65 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 6e 61 6d 65 73 20 7c 7c exclude);.}..if.($this->names.||
d4140 20 24 74 68 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 .$this->notNames).{.$iterator.=.
d4160 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 46 69 6c 65 6e 61 6d 65 46 69 6c 74 65 72 49 74 65 72 61 new.Iterator\FilenameFilterItera
d4180 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 73 2d 3e 6e 61 6d 65 73 2c 20 24 74 68 tor($iterator,.$this->names,.$th
d41a0 69 73 2d 3e 6e 6f 74 4e 61 6d 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 63 6f 6e is->notNames);.}..if.($this->con
d41c0 74 61 69 6e 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 29 20 7b 0a 24 tains.||.$this->notContains).{.$
d41e0 69 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 63 6f 6e 74 iterator.=.new.Iterator\Filecont
d4200 65 6e 74 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 entFilterIterator($iterator,.$th
d4220 69 73 2d 3e 63 6f 6e 74 61 69 6e 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 43 6f 6e 74 61 69 6e 73 is->contains,.$this->notContains
d4240 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 69 7a 65 73 29 20 7b 0a 24 69 74 65 72 61 );.}..if.($this->sizes).{.$itera
d4260 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 tor.=.new.Iterator\SizeRangeFilt
d4280 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 73 69 7a erIterator($iterator,.$this->siz
d42a0 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 64 61 74 65 73 29 20 7b 0a 24 69 74 65 es);.}..if.($this->dates).{.$ite
d42c0 72 61 74 6f 72 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f 72 5c 44 61 74 65 52 61 6e 67 65 46 69 rator.=.new.Iterator\DateRangeFi
d42e0 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 64 lterIterator($iterator,.$this->d
d4300 61 74 65 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 29 20 7b 0a ates);.}..if.($this->filters).{.
d4320 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 43 75 73 74 6f 6d 46 $iterator.=.new.Iterator\CustomF
d4340 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->
d4360 66 69 6c 74 65 72 73 29 3b 0a 7d 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 73 6f 72 74 29 20 7b 0a filters);.}..if.($this->sort).{.
d4380 24 69 74 65 72 61 74 6f 72 41 67 67 72 65 67 61 74 65 20 3d 20 6e 65 77 20 49 74 65 72 61 74 6f $iteratorAggregate.=.new.Iterato
d43a0 72 5c 53 6f 72 74 61 62 6c 65 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 r\SortableIterator($iterator,.$t
d43c0 68 69 73 2d 3e 73 6f 72 74 29 3b 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f his->sort);.$iterator.=.$iterato
d43e0 72 41 67 67 72 65 67 61 74 65 2d 3e 67 65 74 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 69 66 rAggregate->getIterator();.}..if
d4400 20 28 24 74 68 69 73 2d 3e 70 61 74 68 73 20 7c 7c 20 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 .($this->paths.||.$this->notPath
d4420 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 50 61 s).{.$iterator.=.new.Iterator\Pa
d4440 74 68 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 28 24 69 74 65 72 61 74 6f 72 2c 20 24 74 68 69 thFilterIterator($iterator,.$thi
d4460 73 2d 3e 70 61 74 68 73 2c 20 24 74 68 69 73 2d 3e 6e 6f 74 50 61 74 68 73 29 3b 0a 7d 0a 0a 72 s->paths,.$this->notPaths);.}..r
d4480 65 74 75 72 6e 20 24 69 74 65 72 61 74 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 eturn.$iterator;.}.....public.fu
d44a0 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 70 68 70 27 3b nction.getName().{.return.'php';
d44c0 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 63 61 6e 42 65 55 .}.....protected.function.canBeU
d44e0 73 65 64 28 29 0a 7b 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 sed().{.return.true;.}.}.<?php..
d4500 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
d4520 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a nent\Finder;....................
d4540 0a 0a 0a 0a 63 6c 61 73 73 20 47 6c 6f 62 0a 7b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 ....class.Glob.{..........public
d4560 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 67 6c 6f 62 2c 20 .static.function.toRegex($glob,.
d4580 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 3d 20 74 72 75 65 2c 20 24 73 74 72 69 63 $strictLeadingDot.=.true,.$stric
d45a0 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3d 20 74 72 75 65 29 0a 7b 0a 24 66 69 72 73 74 42 tWildcardSlash.=.true).{.$firstB
d45c0 79 74 65 20 3d 20 74 72 75 65 3b 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 24 yte.=.true;.$escaping.=.false;.$
d45e0 69 6e 43 75 72 6c 69 65 73 20 3d 20 30 3b 0a 24 72 65 67 65 78 20 3d 20 27 27 3b 0a 24 73 69 7a inCurlies.=.0;.$regex.=.'';.$siz
d4600 65 47 6c 6f 62 20 3d 20 73 74 72 6c 65 6e 28 24 67 6c 6f 62 29 3b 0a 66 6f 72 20 28 24 69 20 3d eGlob.=.strlen($glob);.for.($i.=
d4620 20 30 3b 20 24 69 20 3c 20 24 73 69 7a 65 47 6c 6f 62 3b 20 24 69 2b 2b 29 20 7b 0a 24 63 61 72 .0;.$i.<.$sizeGlob;.$i++).{.$car
d4640 20 3d 20 24 67 6c 6f 62 5b 24 69 5d 3b 0a 69 66 20 28 24 66 69 72 73 74 42 79 74 65 29 20 7b 0a .=.$glob[$i];.if.($firstByte).{.
d4660 69 66 20 28 24 73 74 72 69 63 74 4c 65 61 64 69 6e 67 44 6f 74 20 26 26 20 27 2e 27 20 21 3d 3d if.($strictLeadingDot.&&.'.'.!==
d4680 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 28 3f 3d 5b 5e 5c 2e 5d 29 27 3b 0a .$car).{.$regex..=.'(?=[^\.])';.
d46a0 7d 0a 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 0a 69 66 20 28 27 2f }..$firstByte.=.false;.}..if.('/
d46c0 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 66 69 72 73 74 42 79 74 65 20 3d 20 74 72 75 65 3b '.===.$car).{.$firstByte.=.true;
d46e0 0a 7d 0a 0a 69 66 20 28 27 2e 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 28 27 20 3d 3d 3d 20 .}..if.('.'.===.$car.||.'('.===.
d4700 24 63 61 72 20 7c 7c 20 27 29 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 7c 27 20 3d 3d 3d 20 $car.||.')'.===.$car.||.'|'.===.
d4720 24 63 61 72 20 7c 7c 20 27 2b 27 20 3d 3d 3d 20 24 63 61 72 20 7c 7c 20 27 5e 27 20 3d 3d 3d 20 $car.||.'+'.===.$car.||.'^'.===.
d4740 24 63 61 72 20 7c 7c 20 27 24 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e $car.||.'$'.===.$car).{.$regex..
d4760 3d 20 22 5c 5c 24 63 61 72 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 2a 27 20 3d 3d 3d 20 24 63 =."\\$car";.}.elseif.('*'.===.$c
d4780 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 2a ar).{.$regex..=.$escaping.?.'\\*
d47a0 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f 20 27 5b 5e 2f '.:.($strictWildcardSlash.?.'[^/
d47c0 5d 2a 27 20 3a 20 27 2e 2a 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 3f 27 20 3d 3d 3d 20 24 ]*'.:.'.*');.}.elseif.('?'.===.$
d47e0 63 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c car).{.$regex..=.$escaping.?.'\\
d4800 3f 27 20 3a 20 28 24 73 74 72 69 63 74 57 69 6c 64 63 61 72 64 53 6c 61 73 68 20 3f 20 27 5b 5e ?'.:.($strictWildcardSlash.?.'[^
d4820 2f 5d 27 20 3a 20 27 2e 27 29 3b 0a 7d 20 65 6c 73 65 69 66 20 28 27 7b 27 20 3d 3d 3d 20 24 63 /]'.:.'.');.}.elseif.('{'.===.$c
d4840 61 72 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 5c 5c 7b ar).{.$regex..=.$escaping.?.'\\{
d4860 27 20 3a 20 27 28 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 69 6e 67 29 20 7b 0a 2b 2b 24 69 6e '.:.'(';.if.(!$escaping).{.++$in
d4880 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 27 7d 27 20 3d 3d 3d 20 24 63 61 Curlies;.}.}.elseif.('}'.===.$ca
d48a0 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 24 65 73 r.&&.$inCurlies).{.$regex..=.$es
d48c0 63 61 70 69 6e 67 20 3f 20 27 7d 27 20 3a 20 27 29 27 3b 0a 69 66 20 28 21 24 65 73 63 61 70 69 caping.?.'}'.:.')';.if.(!$escapi
d48e0 6e 67 29 20 7b 0a 2d 2d 24 69 6e 43 75 72 6c 69 65 73 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 ng).{.--$inCurlies;.}.}.elseif.(
d4900 27 2c 27 20 3d 3d 3d 20 24 63 61 72 20 26 26 20 24 69 6e 43 75 72 6c 69 65 73 29 20 7b 0a 24 72 ','.===.$car.&&.$inCurlies).{.$r
d4920 65 67 65 78 20 2e 3d 20 24 65 73 63 61 70 69 6e 67 20 3f 20 27 2c 27 20 3a 20 27 7c 27 3b 0a 7d egex..=.$escaping.?.','.:.'|';.}
d4940 20 65 6c 73 65 69 66 20 28 27 5c 5c 27 20 3d 3d 3d 20 24 63 61 72 29 20 7b 0a 69 66 20 28 24 65 .elseif.('\\'.===.$car).{.if.($e
d4960 73 63 61 70 69 6e 67 29 20 7b 0a 24 72 65 67 65 78 20 2e 3d 20 27 5c 5c 5c 5c 27 3b 0a 24 65 73 scaping).{.$regex..=.'\\\\';.$es
d4980 63 61 70 69 6e 67 20 3d 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 65 73 63 61 70 69 caping.=.false;.}.else.{.$escapi
d49a0 6e 67 20 3d 20 74 72 75 65 3b 0a 7d 0a 0a 63 6f 6e 74 69 6e 75 65 3b 0a 7d 20 65 6c 73 65 20 7b ng.=.true;.}..continue;.}.else.{
d49c0 0a 24 72 65 67 65 78 20 2e 3d 20 24 63 61 72 3b 0a 7d 0a 24 65 73 63 61 70 69 6e 67 20 3d 20 66 .$regex..=.$car;.}.$escaping.=.f
d49e0 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 27 23 5e 27 2e 24 72 65 67 65 78 2e 27 24 23 27 alse;.}..return.'#^'.$regex.'$#'
d4a00 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.
d4a20 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 74 6f Symfony\Component\Finder\Iterato
d4a40 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 44 65 70 74 68 52 61 6e 67 65 46 69 6c 74 65 72 49 r;.......class.DepthRangeFilterI
d4a60 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b terator.extends.FilterIterator.{
d4a80 0a 70 72 69 76 61 74 65 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a .private.$minDepth.=.0;.........
d4aa0 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 52 65 63 public.function.__construct(\Rec
d4ac0 75 72 73 69 76 65 49 74 65 72 61 74 6f 72 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 ursiveIteratorIterator.$iterator
d4ae0 2c 20 24 6d 69 6e 44 65 70 74 68 20 3d 20 30 2c 20 24 6d 61 78 44 65 70 74 68 20 3d 20 50 48 50 ,.$minDepth.=.0,.$maxDepth.=.PHP
d4b00 5f 49 4e 54 5f 4d 41 58 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 69 6e 44 65 70 74 68 20 3d 20 24 6d _INT_MAX).{.$this->minDepth.=.$m
d4b20 69 6e 44 65 70 74 68 3b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 73 65 74 4d 61 78 44 65 70 74 68 28 inDepth;.$iterator->setMaxDepth(
d4b40 50 48 50 5f 49 4e 54 5f 4d 41 58 20 3d 3d 3d 20 24 6d 61 78 44 65 70 74 68 20 3f 20 2d 31 20 3a PHP_INT_MAX.===.$maxDepth.?.-1.:
d4b60 20 24 6d 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 .$maxDepth);..parent::__construc
d4b80 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 6e t($iterator);.}.......public.fun
d4ba0 63 74 69 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 ction.accept().{.return.$this->g
d4bc0 65 74 49 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 etInnerIterator()->getDepth().>=
d4be0 20 24 74 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 .$this->minDepth;.}.}.<?php.....
d4c00 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
d4c20 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 t\Finder\Iterator;.......class.S
d4c40 6f 72 74 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 ortableIterator.implements.\Iter
d4c60 61 74 6f 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 atorAggregate.{.const.SORT_BY_NA
d4c80 4d 45 20 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 ME.=.1;.const.SORT_BY_TYPE.=.2;.
d4ca0 63 6f 6e 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 const.SORT_BY_ACCESSED_TIME.=.3;
d4cc0 0a 63 6f 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 .const.SORT_BY_CHANGED_TIME.=.4;
d4ce0 0a 63 6f 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 .const.SORT_BY_MODIFIED_TIME.=.5
d4d00 3b 0a 0a 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 ;..private.$iterator;.private.$s
d4d20 6f 72 74 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f ort;..........public.function.__
d4d40 63 6f 6e 73 74 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 construct(\Traversable.$iterator
d4d60 2c 20 24 73 6f 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 ,.$sort).{.$this->iterator.=.$it
d4d80 65 72 61 74 6f 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 erator;..if.(self::SORT_BY_NAME.
d4da0 3d 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 ===.$sort).{.$this->sort.=.funct
d4dc0 69 6f 6e 20 28 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 ion.($a,.$b).{.return.strcmp($a-
d4de0 3e 67 65 74 52 65 61 6c 70 61 74 68 28 29 2c 20 24 62 2d 3e 67 65 74 52 65 61 6c 70 61 74 68 28 >getRealpath(),.$b->getRealpath(
d4e00 29 29 3b 0a 7d 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 53 4f 52 54 5f 42 59 5f 54 ));.};.}.elseif.(self::SORT_BY_T
d4e20 59 50 45 20 3d 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 YPE.===.$sort).{.$this->sort.=.f
d4e40 75 6e 63 74 69 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 unction.($a,.$b).{.if.($a->isDir
d4e60 28 29 20 26 26 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 ().&&.$b->isFile()).{.return.-1;
d4e80 0a 7d 20 65 6c 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 .}.elseif.($a->isFile().&&.$b->i
d4ea0 73 44 69 72 28 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 sDir()).{.return.1;.}..return.st
d4ec0 72 63 6d 70 28 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 rcmp($a->getRealpath(),.$b->getR
d4ee0 65 61 6c 70 61 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 ealpath());.};.}.elseif.(self::S
d4f00 4f 52 54 5f 42 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 ORT_BY_ACCESSED_TIME.===.$sort).
d4f20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 62 {.$this->sort.=.function.($a,.$b
d4f40 29 20 7b 0a 72 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 ).{.return.($a->getATime().>.$b-
d4f60 3e 67 65 74 41 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 >getATime());.};.}.elseif.(self:
d4f80 3a 53 4f 52 54 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 :SORT_BY_CHANGED_TIME.===.$sort)
d4fa0 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c 20 24 .{.$this->sort.=.function.($a,.$
d4fc0 62 29 20 7b 0a 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 b).{.return.($a->getCTime().>.$b
d4fe0 2d 3e 67 65 74 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 ->getCTime());.};.}.elseif.(self
d5000 3a 3a 53 4f 52 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 ::SORT_BY_MODIFIED_TIME.===.$sor
d5020 74 29 20 7b 0a 24 74 68 69 73 2d 3e 73 6f 72 74 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 61 2c t).{.$this->sort.=.function.($a,
d5040 20 24 62 29 20 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 .$b).{.return.($a->getMTime().>.
d5060 24 62 2d 3e 67 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 $b->getMTime());.};.}.elseif.(is
d5080 5f 63 61 6c 6c 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 _callable($sort)).{.$this->sort.
d50a0 3d 20 24 73 6f 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 =.$sort;.}.else.{.throw.new.\Inv
d50c0 61 6c 69 64 41 72 67 75 6d 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 27 54 68 65 20 53 6f 72 74 61 alidArgumentException('The.Sorta
d50e0 62 6c 65 49 74 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 bleIterator.takes.a.PHP.callback
d5100 20 6f 72 20 61 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 .or.a.valid.built-in.sort.algori
d5120 74 68 6d 20 61 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 thm.as.an.argument.');.}.}..publ
d5140 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 49 74 65 72 61 74 6f 72 28 29 0a 7b 0a 24 61 72 72 ic.function.getIterator().{.$arr
d5160 61 79 20 3d 20 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 ay.=.iterator_to_array($this->it
d5180 65 72 61 74 6f 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 erator,.true);.uasort($array,.$t
d51a0 68 69 73 2d 3e 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 his->sort);..return.new.\ArrayIt
d51c0 65 72 61 74 6f 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 erator($array);.}.}.<?php.......
d51e0 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 5c ....namespace.Symfony\Component\
d5200 46 69 6e 64 65 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 Finder\Iterator;........class.Fi
d5220 6c 65 63 6f 6e 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 lecontentFilterIterator.extends.
d5240 4d 75 6c 74 69 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 MultiplePcreFilterIterator.{....
d5260 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 69 66 20 ..public.function.accept().{.if.
d5280 28 21 24 74 68 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 (!$this->matchRegexps.&&.!$this-
d52a0 3e 6e 6f 4d 61 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 >noMatchRegexps).{.return.true;.
d52c0 7d 0a 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 }..$fileinfo.=.$this->current();
d52e0 0a 0a 69 66 20 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 ..if.($fileinfo->isDir().||.!$fi
d5300 6c 65 69 6e 66 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 leinfo->isReadable()).{.return.f
d5320 61 6c 73 65 3b 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 alse;.}..$content.=.$fileinfo->g
d5340 65 74 43 6f 6e 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 etContents();.if.(!$content).{.r
d5360 65 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 74 68 69 73 eturn.false;.}....foreach.($this
d5380 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 ->noMatchRegexps.as.$regex).{.if
d53a0 20 28 70 72 65 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 .(preg_match($regex,.$content)).
d53c0 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 {.return.false;.}.}....$match.=.
d53e0 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b true;.if.($this->matchRegexps).{
d5400 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d .$match.=.false;.foreach.($this-
d5420 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 >matchRegexps.as.$regex).{.if.(p
d5440 72 65 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 reg_match($regex,.$content)).{.r
d5460 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 eturn.true;.}.}.}..return.$match
d5480 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 74 ;.}.........protected.function.t
d54a0 6f 52 65 67 65 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 oRegex($str).{.return.$this->isR
d54c0 65 67 65 78 28 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 egex($str).?.$str.:.'/'.preg_quo
d54e0 74 65 28 24 73 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 te($str,.'/').'/';.}.}.<?php....
d5500 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 .......namespace.Symfony\Compone
d5520 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 nt\Finder\Iterator;..use.Symfony
d5540 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 3b 0a 0a \Component\Finder\SplFileInfo;..
d5560 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 50 61 74 68 73 49 74 65 72 61 74 6f 72 20 65 78 74 .....class.FilePathsIterator.ext
d5580 65 6e 64 73 20 5c 41 72 72 61 79 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 ends.\ArrayIterator.{....private
d55a0 20 24 62 61 73 65 44 69 72 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 62 61 73 65 44 69 72 4c .$baseDir;.....private.$baseDirL
d55c0 65 6e 67 74 68 3b 0a 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 73 75 62 50 61 74 68 3b 0a 0a 0a 0a ength;.....private.$subPath;....
d55e0 0a 70 72 69 76 61 74 65 20 24 73 75 62 50 61 74 68 6e 61 6d 65 3b 0a 0a 0a 0a 0a 70 72 69 76 61 .private.$subPathname;.....priva
d5600 74 65 20 24 63 75 72 72 65 6e 74 3b 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f te.$current;......public.functio
d5620 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 61 72 72 61 79 20 24 70 61 74 68 73 2c 20 24 62 61 73 n.__construct(array.$paths,.$bas
d5640 65 44 69 72 29 0a 7b 0a 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 20 3d 20 24 62 61 73 65 44 69 eDir).{.$this->baseDir.=.$baseDi
d5660 72 3b 0a 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 4c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e r;.$this->baseDirLength.=.strlen
d5680 28 24 62 61 73 65 44 69 72 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 ($baseDir);..parent::__construct
d56a0 28 24 70 61 74 68 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ($paths);.}........public.functi
d56c0 6f 6e 20 5f 5f 63 61 6c 6c 28 24 6e 61 6d 65 2c 20 61 72 72 61 79 20 24 61 72 67 75 6d 65 6e 74 on.__call($name,.array.$argument
d56e0 73 29 0a 7b 0a 72 65 74 75 72 6e 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 5f 61 72 72 61 79 s).{.return.call_user_func_array
d5700 28 61 72 72 61 79 28 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2c 20 24 6e 61 6d 65 29 2c (array($this->current(),.$name),
d5720 20 24 61 72 67 75 6d 65 6e 74 73 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e .$arguments);.}.......public.fun
d5740 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 24 74 68 69 73 2d 3e ction.current().{.return.$this->
d5760 63 75 72 72 65 6e 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 6b current;.}.....public.function.k
d5780 65 79 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 2d 3e 67 65 ey().{.return.$this->current->ge
d57a0 74 50 61 74 68 6e 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 tPathname();.}..public.function.
d57c0 6e 65 78 74 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 6e 65 78 74 28 29 3b 0a 24 74 68 69 73 2d 3e next().{.parent::next();.$this->
d57e0 62 75 69 6c 64 50 72 6f 70 65 72 74 69 65 73 28 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e buildProperties();.}..public.fun
d5800 63 74 69 6f 6e 20 72 65 77 69 6e 64 28 29 0a 7b 0a 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 ction.rewind().{.parent::rewind(
d5820 29 3b 0a 24 74 68 69 73 2d 3e 62 75 69 6c 64 50 72 6f 70 65 72 74 69 65 73 28 29 3b 0a 7d 0a 0a );.$this->buildProperties();.}..
d5840 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 62 50 61 74 68 28 29 0a ...public.function.getSubPath().
d5860 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 70 {.return.$this->subPath;.}.....p
d5880 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 53 75 62 50 61 74 68 6e 61 6d 65 28 29 0a ublic.function.getSubPathname().
d58a0 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a {.return.$this->subPathname;.}..
d58c0 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 62 75 69 6c 64 50 72 6f 70 65 72 74 69 65 73 private.function.buildProperties
d58e0 28 29 0a 7b 0a 24 61 62 73 6f 6c 75 74 65 50 61 74 68 20 3d 20 70 61 72 65 6e 74 3a 3a 63 75 72 ().{.$absolutePath.=.parent::cur
d5900 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 20 3d 3d 3d 20 rent();..if.($this->baseDir.===.
d5920 73 75 62 73 74 72 28 24 61 62 73 6f 6c 75 74 65 50 61 74 68 2c 20 30 2c 20 24 74 68 69 73 2d 3e substr($absolutePath,.0,.$this->
d5940 62 61 73 65 44 69 72 4c 65 6e 67 74 68 29 29 20 7b 0a 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 baseDirLength)).{.$this->subPath
d5960 6e 61 6d 65 20 3d 20 6c 74 72 69 6d 28 73 75 62 73 74 72 28 24 61 62 73 6f 6c 75 74 65 50 61 74 name.=.ltrim(substr($absolutePat
d5980 68 2c 20 24 74 68 69 73 2d 3e 62 61 73 65 44 69 72 4c 65 6e 67 74 68 29 2c 20 27 2f 5c 5c 27 29 h,.$this->baseDirLength),.'/\\')
d59a0 3b 0a 24 64 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e ;.$dir.=.dirname($this->subPathn
d59c0 61 6d 65 29 3b 0a 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 20 3d 20 27 2e 27 20 3d 3d 3d 20 24 ame);.$this->subPath.=.'.'.===.$
d59e0 64 69 72 20 3f 20 27 27 20 3a 20 24 64 69 72 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d dir.?.''.:.$dir;.}.else.{.$this-
d5a00 3e 73 75 62 50 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 20 3d 20 >subPath.=.$this->subPathname.=.
d5a20 27 27 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 20 3d 20 6e 65 77 20 53 70 6c 46 '';.}..$this->current.=.new.SplF
d5a40 69 6c 65 49 6e 66 6f 28 70 61 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 29 2c 20 24 74 68 69 73 ileInfo(parent::current(),.$this
d5a60 2d 3e 73 75 62 50 61 74 68 2c 20 24 74 68 69 73 2d 3e 73 75 62 50 61 74 68 6e 61 6d 65 29 3b 0a ->subPath,.$this->subPathname);.
d5a80 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
d5aa0 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b mfony\Component\Finder\Iterator;
d5ac0 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 65 72 5c 43 ..use.Symfony\Component\Finder\C
d5ae0 6f 6d 70 61 72 61 74 6f 72 5c 4e 75 6d 62 65 72 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a omparator\NumberComparator;.....
d5b00 0a 0a 63 6c 61 73 73 20 53 69 7a 65 52 61 6e 67 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 ..class.SizeRangeFilterIterator.
d5b20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 extends.FilterIterator.{.private
d5b40 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 0a 0a 0a 0a .$comparators.=.array();........
d5b60 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 public.function.__construct(\Ite
d5b80 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 61 72 61 74 rator.$iterator,.array.$comparat
d5ba0 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 24 63 6f 6d ors).{.$this->comparators.=.$com
d5bc0 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 63 74 28 24 parators;..parent::__construct($
d5be0 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
d5c00 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 68 69 73 2d on.accept().{.$fileinfo.=.$this-
d5c20 3e 63 75 72 72 65 6e 74 28 29 3b 0a 69 66 20 28 21 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 >current();.if.(!$fileinfo->isFi
d5c40 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 6c 65 73 69 7a le()).{.return.true;.}..$filesiz
d5c60 65 20 3d 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 53 69 7a 65 28 29 3b 0a 66 6f 72 65 61 63 e.=.$fileinfo->getSize();.foreac
d5c80 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 63 6f 6d 70 61 72 h.($this->comparators.as.$compar
d5ca0 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 66 69 6c 65 73 69 e).{.if.(!$compare->test($filesi
d5cc0 7a 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 72 65 74 75 72 6e ze)).{.return.false;.}.}..return
d5ce0 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 6d 65 73 .true;.}.}.<?php...........names
d5d00 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
d5d20 65 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 45 78 63 6c 75 64 65 44 69 72 65 63 erator;.......class.ExcludeDirec
d5d40 74 6f 72 79 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 toryFilterIterator.extends.Filte
d5d60 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 70 61 74 74 65 72 6e 73 20 3d 20 rIterator.{.private.$patterns.=.
d5d80 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 array();........public.function.
d5da0 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c __construct(\Iterator.$iterator,
d5dc0 20 61 72 72 61 79 20 24 64 69 72 65 63 74 6f 72 69 65 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 .array.$directories).{.foreach.(
d5de0 24 64 69 72 65 63 74 6f 72 69 65 73 20 61 73 20 24 64 69 72 65 63 74 6f 72 79 29 20 7b 0a 24 74 $directories.as.$directory).{.$t
d5e00 68 69 73 2d 3e 70 61 74 74 65 72 6e 73 5b 5d 20 3d 20 27 23 28 5e 7c 2f 29 27 2e 70 72 65 67 5f his->patterns[].=.'#(^|/)'.preg_
d5e20 71 75 6f 74 65 28 24 64 69 72 65 63 74 6f 72 79 2c 20 27 23 27 29 2e 27 28 2f 7c 24 29 23 27 3b quote($directory,.'#').'(/|$)#';
d5e40 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 74 6f .}..parent::__construct($iterato
d5e60 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
d5e80 70 74 28 29 0a 7b 0a 24 70 61 74 68 20 3d 20 24 74 68 69 73 2d 3e 69 73 44 69 72 28 29 20 3f 20 pt().{.$path.=.$this->isDir().?.
d5ea0 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 $this->current()->getRelativePat
d5ec0 68 6e 61 6d 65 28 29 20 3a 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 52 hname().:.$this->current()->getR
d5ee0 65 6c 61 74 69 76 65 50 61 74 68 28 29 3b 0a 24 70 61 74 68 20 3d 20 73 74 72 74 72 28 24 70 61 elativePath();.$path.=.strtr($pa
d5f00 74 68 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e th,.'\\',.'/');.foreach.($this->
d5f20 70 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 7b 0a 69 66 20 28 70 72 65 67 patterns.as.$pattern).{.if.(preg
d5f40 5f 6d 61 74 63 68 28 24 70 61 74 74 65 72 6e 2c 20 24 70 61 74 68 29 29 20 7b 0a 72 65 74 75 72 _match($pattern,.$path)).{.retur
d5f60 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;.}.}.<
d5f80 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
d5fa0 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;.....
d5fc0 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 63 6c 61 73 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f ....abstract.class.FilterIterato
d5fe0 72 20 65 78 74 65 6e 64 73 20 5c 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 0a r.extends.\FilterIterator.{.....
d6000 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 69 74 ..public.function.rewind().{.$it
d6020 65 72 61 74 6f 72 20 3d 20 24 74 68 69 73 3b 0a 77 68 69 6c 65 20 28 24 69 74 65 72 61 74 6f 72 erator.=.$this;.while.($iterator
d6040 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 4f 75 74 65 72 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 69 .instanceof.\OuterIterator).{.$i
d6060 6e 6e 65 72 49 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e nnerIterator.=.$iterator->getInn
d6080 65 72 49 74 65 72 61 74 6f 72 28 29 3b 0a 0a 69 66 20 28 24 69 6e 6e 65 72 49 74 65 72 61 74 6f erIterator();..if.($innerIterato
d60a0 72 20 69 6e 73 74 61 6e 63 65 6f 66 20 52 65 63 75 72 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 r.instanceof.RecursiveDirectoryI
d60c0 74 65 72 61 74 6f 72 29 20 7b 0a 69 66 20 28 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d 3e 69 terator).{.if.($innerIterator->i
d60e0 73 52 65 77 69 6e 64 61 62 6c 65 28 29 29 20 7b 0a 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d sRewindable()).{.$innerIterator-
d6100 3e 6e 65 78 74 28 29 3b 0a 24 69 6e 6e 65 72 49 74 65 72 61 74 6f 72 2d 3e 72 65 77 69 6e 64 28 >next();.$innerIterator->rewind(
d6120 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e );.}.}.elseif.($iterator->getInn
d6140 65 72 49 74 65 72 61 74 6f 72 28 29 20 69 6e 73 74 61 6e 63 65 6f 66 20 5c 46 69 6c 65 73 79 73 erIterator().instanceof.\Filesys
d6160 74 65 6d 49 74 65 72 61 74 6f 72 29 20 7b 0a 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e temIterator).{.$iterator->getInn
d6180 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 6e 65 78 74 28 29 3b 0a 24 69 74 65 72 61 74 6f 72 2d erIterator()->next();.$iterator-
d61a0 3e 67 65 74 49 6e 6e 65 72 49 74 65 72 61 74 6f 72 28 29 2d 3e 72 65 77 69 6e 64 28 29 3b 0a 7d >getInnerIterator()->rewind();.}
d61c0 0a 24 69 74 65 72 61 74 6f 72 20 3d 20 24 69 74 65 72 61 74 6f 72 2d 3e 67 65 74 49 6e 6e 65 72 .$iterator.=.$iterator->getInner
d61e0 49 74 65 72 61 74 6f 72 28 29 3b 0a 7d 0a 0a 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b Iterator();.}..parent::rewind();
d6200 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
d6220 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
d6240 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 65 72 5c ;..use.Symfony\Component\Finder\
d6260 45 78 70 72 65 73 73 69 6f 6e 5c 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 61 62 73 Expression\Expression;.......abs
d6280 74 72 61 63 74 20 63 6c 61 73 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 tract.class.MultiplePcreFilterIt
d62a0 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a erator.extends.FilterIterator.{.
d62c0 70 72 6f 74 65 63 74 65 64 20 24 6d 61 74 63 68 52 65 67 65 78 70 73 20 3d 20 61 72 72 61 79 28 protected.$matchRegexps.=.array(
d62e0 29 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 20 3d 20 61 );.protected.$noMatchRegexps.=.a
d6300 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 rray();.........public.function.
d6320 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c __construct(\Iterator.$iterator,
d6340 20 61 72 72 61 79 20 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 .array.$matchPatterns,.array.$no
d6360 4d 61 74 63 68 50 61 74 74 65 72 6e 73 29 0a 7b 0a 66 6f 72 65 61 63 68 20 28 24 6d 61 74 63 68 MatchPatterns).{.foreach.($match
d6380 50 61 74 74 65 72 6e 73 20 61 73 20 24 70 61 74 74 65 72 6e 29 20 7b 0a 24 74 68 69 73 2d 3e 6d Patterns.as.$pattern).{.$this->m
d63a0 61 74 63 68 52 65 67 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 atchRegexps[].=.$this->toRegex($
d63c0 70 61 74 74 65 72 6e 29 3b 0a 7d 0a 0a 66 6f 72 65 61 63 68 20 28 24 6e 6f 4d 61 74 63 68 50 61 pattern);.}..foreach.($noMatchPa
d63e0 74 74 65 72 6e 73 20 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 tterns.as.$pattern).{.$this->noM
d6400 61 74 63 68 52 65 67 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 atchRegexps[].=.$this->toRegex($
d6420 70 61 74 74 65 72 6e 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 pattern);.}..parent::__construct
d6440 28 24 69 74 65 72 61 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 ($iterator);.}.........protected
d6460 20 66 75 6e 63 74 69 6f 6e 20 69 73 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e .function.isRegex($str).{.return
d6480 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 28 24 73 74 72 29 2d 3e 69 73 52 65 67 .Expression::create($str)->isReg
d64a0 65 78 28 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 61 62 73 74 72 61 63 74 20 70 72 6f 74 65 63 74 ex();.}.........abstract.protect
d64c0 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 3b 0a 7d 0a 3c 3f 70 ed.function.toRegex($str);.}.<?p
d64e0 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
d6500 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 0a 0a omponent\Finder\Iterator;.......
d6520 0a 0a 0a 63 6c 61 73 73 20 43 75 73 74 6f 6d 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 ...class.CustomFilterIterator.ex
d6540 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 tends.FilterIterator.{.private.$
d6560 66 69 6c 74 65 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c filters.=.array();..........publ
d6580 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f ic.function.__construct(\Iterato
d65a0 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 66 69 6c 74 65 72 73 29 0a 7b 0a 66 r.$iterator,.array.$filters).{.f
d65c0 6f 72 65 61 63 68 20 28 24 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 7b 0a 69 oreach.($filters.as.$filter).{.i
d65e0 66 20 28 21 69 73 5f 63 61 6c 6c 61 62 6c 65 28 24 66 69 6c 74 65 72 29 29 20 7b 0a 74 68 72 6f f.(!is_callable($filter)).{.thro
d6600 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(
d6620 27 49 6e 76 61 6c 69 64 20 50 48 50 20 63 61 6c 6c 62 61 63 6b 2e 27 29 3b 0a 7d 0a 7d 0a 24 74 'Invalid.PHP.callback.');.}.}.$t
d6640 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 3d 20 24 66 69 6c 74 65 72 73 3b 0a 0a 70 61 72 65 6e 74 his->filters.=.$filters;..parent
d6660 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a 0a ::__construct($iterator);.}.....
d6680 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 ..public.function.accept().{.$fi
d66a0 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 0a 66 6f 72 65 leinfo.=.$this->current();..fore
d66c0 61 63 68 20 28 24 74 68 69 73 2d 3e 66 69 6c 74 65 72 73 20 61 73 20 24 66 69 6c 74 65 72 29 20 ach.($this->filters.as.$filter).
d66e0 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 63 61 6c 6c 5f 75 73 65 72 5f 66 75 6e 63 28 24 {.if.(false.===.call_user_func($
d6700 66 69 6c 74 65 72 2c 20 24 66 69 6c 65 69 6e 66 6f 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c filter,.$fileinfo)).{.return.fal
d6720 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a se;.}.}..return.true;.}.}.<?php.
d6740 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 ..........namespace.Symfony\Comp
d6760 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 75 73 65 20 53 79 6d 66 onent\Finder\Iterator;..use.Symf
d6780 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 70 72 65 73 73 69 6f 6e 5c ony\Component\Finder\Expression\
d67a0 45 78 70 72 65 73 73 69 6f 6e 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 6e 61 6d 65 Expression;.......class.Filename
d67c0 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 FilterIterator.extends.MultipleP
d67e0 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 0a 70 75 62 6c 69 63 creFilterIterator.{.......public
d6800 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d .function.accept().{.$filename.=
d6820 20 24 74 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 .$this->current()->getFilename()
d6840 3b 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 ;....foreach.($this->noMatchRege
d6860 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 xps.as.$regex).{.if.(preg_match(
d6880 24 72 65 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 $regex,.$filename)).{.return.fal
d68a0 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 se;.}.}....$match.=.true;.if.($t
d68c0 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 his->matchRegexps).{.$match.=.fa
d68e0 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 lse;.foreach.($this->matchRegexp
d6900 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 s.as.$regex).{.if.(preg_match($r
d6920 65 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 74 72 75 65 3b egex,.$filename)).{.return.true;
d6940 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d 61 74 63 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a .}.}.}..return.$match;.}........
d6960 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 ....protected.function.toRegex($
d6980 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e 20 45 78 70 72 65 73 73 69 6f 6e 3a 3a 63 72 65 61 74 65 str).{.return.Expression::create
d69a0 28 24 73 74 72 29 2d 3e 67 65 74 52 65 67 65 78 28 29 2d 3e 72 65 6e 64 65 72 28 29 3b 0a 7d 0a ($str)->getRegex()->render();.}.
d69c0 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
d69e0 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;..
d6a00 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 65 72 5c 43 6f 6d use.Symfony\Component\Finder\Com
d6a20 70 61 72 61 74 6f 72 5c 44 61 74 65 43 6f 6d 70 61 72 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c parator\DateComparator;.......cl
d6a40 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 6f 72 20 65 78 74 65 ass.DateRangeFilterIterator.exte
d6a60 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a 7b 0a 70 72 69 76 61 74 65 20 24 63 6f nds.FilterIterator.{.private.$co
d6a80 6d 70 61 72 61 74 6f 72 73 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c mparators.=.array();........publ
d6aa0 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f ic.function.__construct(\Iterato
d6ac0 72 20 24 69 74 65 72 61 74 6f 72 2c 20 61 72 72 61 79 20 24 63 6f 6d 70 61 72 61 74 6f 72 73 29 r.$iterator,.array.$comparators)
d6ae0 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 3d 20 24 63 6f 6d 70 61 72 61 .{.$this->comparators.=.$compara
d6b00 74 6f 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 72 tors;..parent::__construct($iter
d6b20 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 61 ator);.}.......public.function.a
d6b40 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 72 ccept().{.$fileinfo.=.$this->cur
d6b60 72 65 6e 74 28 29 3b 0a 0a 69 66 20 28 21 24 66 69 6c 65 69 6e 66 6f 2d 3e 69 73 46 69 6c 65 28 rent();..if.(!$fileinfo->isFile(
d6b80 29 29 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 0a 24 66 69 6c 65 64 61 74 65 20 3d )).{.return.true;.}..$filedate.=
d6ba0 20 24 66 69 6c 65 69 6e 66 6f 2d 3e 67 65 74 4d 54 69 6d 65 28 29 3b 0a 66 6f 72 65 61 63 68 20 .$fileinfo->getMTime();.foreach.
d6bc0 28 24 74 68 69 73 2d 3e 63 6f 6d 70 61 72 61 74 6f 72 73 20 61 73 20 24 63 6f 6d 70 61 72 65 29 ($this->comparators.as.$compare)
d6be0 20 7b 0a 69 66 20 28 21 24 63 6f 6d 70 61 72 65 2d 3e 74 65 73 74 28 24 66 69 6c 65 64 61 74 65 .{.if.(!$compare->test($filedate
d6c00 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 )).{.return.false;.}.}..return.t
d6c20 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 6d 65 73 70 61 rue;.}.}.<?php...........namespa
d6c40 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 ce.Symfony\Component\Finder\Iter
d6c60 61 74 6f 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 46 69 6c 65 54 79 70 65 46 69 6c 74 65 72 ator;.......class.FileTypeFilter
d6c80 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 0a Iterator.extends.FilterIterator.
d6ca0 7b 0a 63 6f 6e 73 74 20 4f 4e 4c 59 5f 46 49 4c 45 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 4f 4e {.const.ONLY_FILES.=.1;.const.ON
d6cc0 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 6d 6f LY_DIRECTORIES.=.2;..private.$mo
d6ce0 64 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e de;........public.function.__con
d6d00 73 74 72 75 63 74 28 5c 49 74 65 72 61 74 6f 72 20 24 69 74 65 72 61 74 6f 72 2c 20 24 6d 6f 64 struct(\Iterator.$iterator,.$mod
d6d20 65 29 0a 7b 0a 24 74 68 69 73 2d 3e 6d 6f 64 65 20 3d 20 24 6d 6f 64 65 3b 0a 0a 70 61 72 65 6e e).{.$this->mode.=.$mode;..paren
d6d40 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 69 74 65 72 61 74 6f 72 29 3b 0a 7d 0a 0a 0a 0a t::__construct($iterator);.}....
d6d60 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 29 0a 7b 0a 24 66 ...public.function.accept().{.$f
d6d80 69 6c 65 69 6e 66 6f 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 3b 0a 69 66 20 28 ileinfo.=.$this->current();.if.(
d6da0 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 3d 3d 3d 20 28 73 65 6c 66 self::ONLY_DIRECTORIES.===.(self
d6dc0 3a 3a 4f 4e 4c 59 5f 44 49 52 45 43 54 4f 52 49 45 53 20 26 20 24 74 68 69 73 2d 3e 6d 6f 64 65 ::ONLY_DIRECTORIES.&.$this->mode
d6de0 29 20 26 26 20 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 ).&&.$fileinfo->isFile()).{.retu
d6e00 72 6e 20 66 61 6c 73 65 3b 0a 7d 20 65 6c 73 65 69 66 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 46 rn.false;.}.elseif.(self::ONLY_F
d6e20 49 4c 45 53 20 3d 3d 3d 20 28 73 65 6c 66 3a 3a 4f 4e 4c 59 5f 46 49 4c 45 53 20 26 20 24 74 68 ILES.===.(self::ONLY_FILES.&.$th
d6e40 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 44 69 72 28 29 29 is->mode).&&.$fileinfo->isDir())
d6e60 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 74 72 75 65 3b .{.return.false;.}..return.true;
d6e80 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
d6ea0 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
d6ec0 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 65 72 5c ;..use.Symfony\Component\Finder\
d6ee0 45 78 63 65 70 74 69 6f 6e 5c 41 63 63 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 3b Exception\AccessDeniedException;
d6f00 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 65 72 5c 53 70 .use.Symfony\Component\Finder\Sp
d6f20 6c 46 69 6c 65 49 6e 66 6f 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 52 65 63 75 72 73 69 76 65 lFileInfo;.......class.Recursive
d6f40 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 20 65 78 74 65 6e 64 73 20 5c 52 65 63 75 72 DirectoryIterator.extends.\Recur
d6f60 73 69 76 65 44 69 72 65 63 74 6f 72 79 49 74 65 72 61 74 6f 72 0a 7b 0a 0a 0a 0a 70 72 69 76 61 siveDirectoryIterator.{....priva
d6f80 74 65 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 3b 0a 0a 0a 0a 0a 70 72 te.$ignoreUnreadableDirs;.....pr
d6fa0 69 76 61 74 65 20 24 72 65 77 69 6e 64 61 62 6c 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 ivate.$rewindable;...........pub
d6fc0 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 61 74 68 2c 20 lic.function.__construct($path,.
d6fe0 24 66 6c 61 67 73 2c 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 73 20 3d 20 $flags,.$ignoreUnreadableDirs.=.
d7000 66 61 6c 73 65 29 0a 7b 0a 69 66 20 28 24 66 6c 61 67 73 20 26 20 28 73 65 6c 66 3a 3a 43 55 52 false).{.if.($flags.&.(self::CUR
d7020 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 43 55 52 52 45 4e 54 RENT_AS_PATHNAME.|.self::CURRENT
d7040 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 75 6e 74 69 6d 65 45 _AS_SELF)).{.throw.new.\RuntimeE
d7060 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 6e 6c 79 20 73 75 70 xception('This.iterator.only.sup
d7080 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 20 66 69 6c 65 69 6e port.returning.current.as.filein
d70a0 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 72 75 63 74 28 24 70 fo.');.}..parent::__construct($p
d70c0 61 74 68 2c 20 24 66 6c 61 67 73 29 3b 0a 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 ath,.$flags);.$this->ignoreUnrea
d70e0 64 61 62 6c 65 44 69 72 73 20 3d 20 24 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 69 72 dableDirs.=.$ignoreUnreadableDir
d7100 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 63 75 72 72 65 s;.}.......public.function.curre
d7120 6e 74 28 29 0a 7b 0a 72 65 74 75 72 6e 20 6e 65 77 20 53 70 6c 46 69 6c 65 49 6e 66 6f 28 70 61 nt().{.return.new.SplFileInfo(pa
d7140 72 65 6e 74 3a 3a 63 75 72 72 65 6e 74 28 29 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 2c 20 rent::current()->getPathname(),.
d7160 24 74 68 69 73 2d 3e 67 65 74 53 75 62 50 61 74 68 28 29 2c 20 24 74 68 69 73 2d 3e 67 65 74 53 $this->getSubPath(),.$this->getS
d7180 75 62 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 ubPathname());.}.......public.fu
d71a0 6e 63 74 69 6f 6e 20 67 65 74 43 68 69 6c 64 72 65 6e 28 29 0a 7b 0a 74 72 79 20 7b 0a 72 65 74 nction.getChildren().{.try.{.ret
d71c0 75 72 6e 20 70 61 72 65 6e 74 3a 3a 67 65 74 43 68 69 6c 64 72 65 6e 28 29 3b 0a 7d 20 63 61 74 urn.parent::getChildren();.}.cat
d71e0 63 68 20 28 5c 55 6e 65 78 70 65 63 74 65 64 56 61 6c 75 65 45 78 63 65 70 74 69 6f 6e 20 24 65 ch.(\UnexpectedValueException.$e
d7200 29 20 7b 0a 69 66 20 28 24 74 68 69 73 2d 3e 69 67 6e 6f 72 65 55 6e 72 65 61 64 61 62 6c 65 44 ).{.if.($this->ignoreUnreadableD
d7220 69 72 73 29 20 7b 0a 0a 20 72 65 74 75 72 6e 20 6e 65 77 20 5c 52 65 63 75 72 73 69 76 65 41 72 irs).{...return.new.\RecursiveAr
d7240 72 61 79 49 74 65 72 61 74 6f 72 28 61 72 72 61 79 28 29 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 74 rayIterator(array());.}.else.{.t
d7260 68 72 6f 77 20 6e 65 77 20 41 63 63 65 73 73 44 65 6e 69 65 64 45 78 63 65 70 74 69 6f 6e 28 24 hrow.new.AccessDeniedException($
d7280 65 2d 3e 67 65 74 4d 65 73 73 61 67 65 28 29 2c 20 24 65 2d 3e 67 65 74 43 6f 64 65 28 29 2c 20 e->getMessage(),.$e->getCode(),.
d72a0 24 65 29 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 20 72 $e);.}.}.}.....public.function.r
d72c0 65 77 69 6e 64 28 29 0a 7b 0a 69 66 20 28 66 61 6c 73 65 20 3d 3d 3d 20 24 74 68 69 73 2d 3e 69 ewind().{.if.(false.===.$this->i
d72e0 73 52 65 77 69 6e 64 61 62 6c 65 28 29 29 20 7b 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 0a 20 70 61 sRewindable()).{.return;.}....pa
d7300 72 65 6e 74 3a 3a 6e 65 78 74 28 29 3b 0a 0a 70 61 72 65 6e 74 3a 3a 72 65 77 69 6e 64 28 29 3b rent::next();..parent::rewind();
d7320 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 52 65 77 69 6e .}.......public.function.isRewin
d7340 64 61 62 6c 65 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 72 65 dable().{.if.(null.!==.$this->re
d7360 77 69 6e 64 61 62 6c 65 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 windable).{.return.$this->rewind
d7380 61 62 6c 65 3b 0a 7d 0a 0a 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 73 74 72 65 61 6d 20 3d able;.}..if.(false.!==.$stream.=
d73a0 20 40 6f 70 65 6e 64 69 72 28 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 28 29 29 29 20 7b 0a 24 .@opendir($this->getPath())).{.$
d73c0 69 6e 66 6f 73 20 3d 20 73 74 72 65 61 6d 5f 67 65 74 5f 6d 65 74 61 5f 64 61 74 61 28 24 73 74 infos.=.stream_get_meta_data($st
d73e0 72 65 61 6d 29 3b 0a 63 6c 6f 73 65 64 69 72 28 24 73 74 72 65 61 6d 29 3b 0a 0a 69 66 20 28 24 ream);.closedir($stream);..if.($
d7400 69 6e 66 6f 73 5b 27 73 65 65 6b 61 62 6c 65 27 5d 29 20 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 infos['seekable']).{.return.$thi
d7420 73 2d 3e 72 65 77 69 6e 64 61 62 6c 65 20 3d 20 74 72 75 65 3b 0a 7d 0a 7d 0a 0a 72 65 74 75 72 s->rewindable.=.true;.}.}..retur
d7440 6e 20 24 74 68 69 73 2d 3e 72 65 77 69 6e 64 61 62 6c 65 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d n.$this->rewindable.=.false;.}.}
d7460 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
d7480 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 49 74 65 72 61 74 6f 72 3b 0a 0a 0a ny\Component\Finder\Iterator;...
d74a0 0a 0a 0a 0a 0a 63 6c 61 73 73 20 50 61 74 68 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 20 65 78 .....class.PathFilterIterator.ex
d74c0 74 65 6e 64 73 20 4d 75 6c 74 69 70 6c 65 50 63 72 65 46 69 6c 74 65 72 49 74 65 72 61 74 6f 72 tends.MultiplePcreFilterIterator
d74e0 0a 7b 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 61 63 63 65 70 74 28 .{.......public.function.accept(
d7500 29 0a 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 24 74 68 69 73 2d 3e 63 75 72 72 65 6e 74 28 29 ).{.$filename.=.$this->current()
d7520 2d 3e 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 28 29 3b 0a 0a 69 66 20 28 64 65 ->getRelativePathname();..if.(de
d7540 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 4d 41 4a 4f 52 fined('PHP_WINDOWS_VERSION_MAJOR
d7560 27 29 29 20 7b 0a 24 66 69 6c 65 6e 61 6d 65 20 3d 20 73 74 72 74 72 28 24 66 69 6c 65 6e 61 6d ')).{.$filename.=.strtr($filenam
d7580 65 2c 20 27 5c 5c 27 2c 20 27 2f 27 29 3b 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 68 20 28 24 74 68 e,.'\\',.'/');.}....foreach.($th
d75a0 69 73 2d 3e 6e 6f 4d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a is->noMatchRegexps.as.$regex).{.
d75c0 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d 65 if.(preg_match($regex,.$filename
d75e0 29 29 20 7b 0a 72 65 74 75 72 6e 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 0a 0a 20 24 6d 61 74 63 68 )).{.return.false;.}.}....$match
d7600 20 3d 20 74 72 75 65 3b 0a 69 66 20 28 24 74 68 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 .=.true;.if.($this->matchRegexps
d7620 29 20 7b 0a 24 6d 61 74 63 68 20 3d 20 66 61 6c 73 65 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 ).{.$match.=.false;.foreach.($th
d7640 69 73 2d 3e 6d 61 74 63 68 52 65 67 65 78 70 73 20 61 73 20 24 72 65 67 65 78 29 20 7b 0a 69 66 is->matchRegexps.as.$regex).{.if
d7660 20 28 70 72 65 67 5f 6d 61 74 63 68 28 24 72 65 67 65 78 2c 20 24 66 69 6c 65 6e 61 6d 65 29 29 .(preg_match($regex,.$filename))
d7680 20 7b 0a 72 65 74 75 72 6e 20 74 72 75 65 3b 0a 7d 0a 7d 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 6d .{.return.true;.}.}.}..return.$m
d76a0 61 74 63 68 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 64 atch;.}................protected
d76c0 20 66 75 6e 63 74 69 6f 6e 20 74 6f 52 65 67 65 78 28 24 73 74 72 29 0a 7b 0a 72 65 74 75 72 6e .function.toRegex($str).{.return
d76e0 20 24 74 68 69 73 2d 3e 69 73 52 65 67 65 78 28 24 73 74 72 29 20 3f 20 24 73 74 72 20 3a 20 27 .$this->isRegex($str).?.$str.:.'
d7700 2f 27 2e 70 72 65 67 5f 71 75 6f 74 65 28 24 73 74 72 2c 20 27 2f 27 29 2e 27 2f 27 3b 0a 7d 0a /'.preg_quote($str,.'/').'/';.}.
d7720 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
d7740 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 72 3b ony\Component\Finder\Comparator;
d7760 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 78 74 65 .......class.DateComparator.exte
d7780 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 69 63 20 nds.Comparator.{.........public.
d77a0 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 0a 69 66 function.__construct($test).{.if
d77c0 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 3e 5d 3d .(!preg_match('#^\s*(==|!=|[<>]=
d77e0 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 73 2a 28 ?|after|since|before|until)?\s*(
d7800 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 29 20 7b .+?)\s*$#i',.$test,.$matches)).{
d7820 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
d7840 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 6e 64 20 tion(sprintf('Don\'t.understand.
d7860 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 29 3b 0a "%s".as.a.date.test.',.$test));.
d7880 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 65 28 24 }..try.{.$date.=.new.\DateTime($
d78a0 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 3e 66 6f matches[2]);.$target.=.$date->fo
d78c0 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 6e 20 24 rmat('U');.}.catch.(\Exception.$
d78e0 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 6e 74 45 e).{.throw.new.\InvalidArgumentE
d7900 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 20 61 20 xception(sprintf('"%s".is.not.a.
d7920 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 7d 0a 0a valid.date.',.$matches[2]));.}..
d7940 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 29 20 3f $operator.=.isset($matches[1]).?
d7960 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 63 65 27 .$matches[1].:.'==';.if.('since'
d7980 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 20 24 6f .===.$operator.||.'after'.===.$o
d79a0 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 0a 0a 69 perator).{.$operator.=.'>';.}..i
d79c0 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 62 65 66 f.('until'.===.$operator.||.'bef
d79e0 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 6f 72 20 ore'.===.$operator).{.$operator.
d7a00 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 24 6f 70 =.'<';.}..$this->setOperator($op
d7a20 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 72 67 65 erator);.$this->setTarget($targe
d7a40 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 70 61 63 t);.}.}.<?php...........namespac
d7a60 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 6d 70 61 e.Symfony\Component\Finder\Compa
d7a80 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 0a 63 6c rator;........................cl
d7aa0 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 43 6f 6d ass.NumberComparator.extends.Com
d7ac0 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 69 6f 6e parator.{........public.function
d7ae0 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 65 67 5f .__construct($test).{.if.(!preg_
d7b00 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 2a 28 5b match('#^\s*(==|!=|[<>]=?)?\s*([
d7b20 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 20 24 74 0-9\.]+)\s*([kmg]i?)?\s*$#i',.$t
d7b40 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 49 6e 76 est,.$matches)).{.throw.new.\Inv
d7b60 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 44 alidArgumentException(sprintf('D
d7b80 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 6d 62 65 on\'t.understand."%s".as.a.numbe
d7ba0 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 20 3d 20 r.test.',.$test));.}..$target.=.
d7bc0 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 24 74 61 $matches[2];.if.(!is_numeric($ta
d7be0 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 67 75 6d rget)).{.throw.new.\InvalidArgum
d7c00 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 20 6e 75 entException(sprintf('Invalid.nu
d7c20 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 28 69 73 mber."%s".',.$target));.}.if.(is
d7c40 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 28 73 74 set($matches[3])).{...switch.(st
d7c60 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 20 27 6b rtolower($matches[3])).{.case.'k
d7c80 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 73 65 20 ':.$target.*=.1000;.break;.case.
d7ca0 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 0a 63 61 'ki':.$target.*=.1024;.break;.ca
d7cc0 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 72 65 61 se.'m':.$target.*=.1000000;.brea
d7ce0 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 2a 31 30 k;.case.'mi':.$target.*=.1024*10
d7d00 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 2a 3d 20 24;.break;.case.'g':.$target.*=.
d7d20 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 0a 24 74 1000000000;.break;.case.'gi':.$t
d7d40 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 6b 3b 0a arget.*=.1024*1024*1024;.break;.
d7d60 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 29 3b 0a }.}..$this->setTarget($target);.
d7d80 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 63 68 65 $this->setOperator(isset($matche
d7da0 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 7d 0a 7d s[1]).?.$matches[1].:.'==');.}.}
d7dc0 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
d7de0 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 72 3b 0a ny\Component\Finder\Comparator;.
d7e00 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 61 74 65 ......class.Comparator.{.private
d7e20 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 20 27 3d .$target;.private.$operator.=.'=
d7e40 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 54 61 72 =';.......public.function.getTar
d7e60 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 0a 7d 0a get().{.return.$this->target;.}.
d7e80 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 65 74 28 ......public.function.setTarget(
d7ea0 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 61 72 67 $target).{.$this->target.=.$targ
d7ec0 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 65 74 4f et;.}.......public.function.getO
d7ee0 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 72 61 74 perator().{.return.$this->operat
d7f00 6f 72 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 or;.}.........public.function.se
d7f20 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 65 tOperator($operator).{.if.(!$ope
d7f40 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 66 rator).{.$operator.=.'==';.}..if
d7f60 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 27 .(!in_array($operator,.array('>'
d7f80 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 29 ,.'<',.'>=',.'<=',.'==',.'!=')))
d7fa0 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
d7fc0 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 72 eption(sprintf('Invalid.operator
d7fe0 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 3e ."%s".',.$operator));.}..$this->
d8000 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 0a 0a operator.=.$operator;.}.........
d8020 70 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 public.function.test($test).{.sw
d8040 69 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 itch.($this->operator).{.case.'>
d8060 27 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 ':.return.$test.>.$this->target;
d8080 0a 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 .case.'>=':.return.$test.>=.$thi
d80a0 73 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 s->target;.case.'<':.return.$tes
d80c0 74 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 t.<.$this->target;.case.'<=':.re
d80e0 74 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 turn.$test.<=.$this->target;.cas
d8100 65 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 e.'!=':.return.$test.!=.$this->t
d8120 61 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 arget;.}..return.$test.==.$this-
d8140 3e 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 >target;.}.}.<?php...........nam
d8160 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c espace.Symfony\Component\Finder\
d8180 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 41 63 63 65 73 73 44 65 6e 69 65 Exception;.....class.AccessDenie
d81a0 64 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 20 5c 55 6e 65 78 70 65 63 74 65 64 56 61 dException.extends.\UnexpectedVa
d81c0 6c 75 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a lueException.{.}.<?php..........
d81e0 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
d8200 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 69 6e 74 65 72 66 61 63 65 20 45 78 63 der\Exception;.....interface.Exc
d8220 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 eptionInterface.{....public.func
d8240 74 69 6f 6e 20 67 65 74 41 64 61 70 74 65 72 28 29 3b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a tion.getAdapter();.}.<?php......
d8260 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
d8280 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4f 70 65 \Finder\Exception;.....class.Ope
d82a0 72 61 74 69 6f 6e 4e 6f 74 50 65 72 6d 69 74 65 64 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e rationNotPermitedException.exten
d82c0 64 73 20 41 64 61 70 74 65 72 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 7d 0a 3c ds.AdapterFailureException.{.}.<
d82e0 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
d8300 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 \Component\Finder\Exception;..us
d8320 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 41 64 61 70 74 e.Symfony\Component\Finder\Adapt
d8340 65 72 5c 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 er\AdapterInterface;.......class
d8360 20 41 64 61 70 74 65 72 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 20 65 78 74 65 6e 64 73 .AdapterFailureException.extends
d8380 20 5c 52 75 6e 74 69 6d 65 45 78 63 65 70 74 69 6f 6e 20 69 6d 70 6c 65 6d 65 6e 74 73 20 45 78 .\RuntimeException.implements.Ex
d83a0 63 65 70 74 69 6f 6e 49 6e 74 65 72 66 61 63 65 0a 7b 0a 0a 0a 0a 70 72 69 76 61 74 65 20 24 61 ceptionInterface.{....private.$a
d83c0 64 61 70 74 65 72 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 dapter;.......public.function.__
d83e0 63 6f 6e 73 74 72 75 63 74 28 41 64 61 70 74 65 72 49 6e 74 65 72 66 61 63 65 20 24 61 64 61 70 construct(AdapterInterface.$adap
d8400 74 65 72 2c 20 24 6d 65 73 73 61 67 65 20 3d 20 6e 75 6c 6c 2c 20 5c 45 78 63 65 70 74 69 6f 6e ter,.$message.=.null,.\Exception
d8420 20 24 70 72 65 76 69 6f 75 73 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 74 68 69 73 2d 3e 61 64 61 70 .$previous.=.null).{.$this->adap
d8440 74 65 72 20 3d 20 24 61 64 61 70 74 65 72 3b 0a 70 61 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 ter.=.$adapter;.parent::__constr
d8460 75 63 74 28 24 6d 65 73 73 61 67 65 20 3f 3a 20 27 53 65 61 72 63 68 20 66 61 69 6c 65 64 20 77 uct($message.?:.'Search.failed.w
d8480 69 74 68 20 22 27 2e 24 61 64 61 70 74 65 72 2d 3e 67 65 74 4e 61 6d 65 28 29 2e 27 22 20 61 64 ith."'.$adapter->getName().'".ad
d84a0 61 70 74 65 72 2e 27 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 75 62 6c 69 apter.',.$previous);.}.....publi
d84c0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 41 64 61 70 74 65 72 28 29 0a 7b 0a 72 65 74 75 72 6e c.function.getAdapter().{.return
d84e0 20 24 74 68 69 73 2d 3e 61 64 61 70 74 65 72 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a .$this->adapter;.}.}.<?php......
d8500 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
d8520 5c 46 69 6e 64 65 72 5c 45 78 63 65 70 74 69 6f 6e 3b 0a 0a 75 73 65 20 53 79 6d 66 6f 6e 79 5c \Finder\Exception;..use.Symfony\
d8540 43 6f 6d 70 6f 6e 65 6e 74 5c 46 69 6e 64 65 72 5c 41 64 61 70 74 65 72 5c 41 64 61 70 74 65 72 Component\Finder\Adapter\Adapter
d8560 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
d8580 5c 46 69 6e 64 65 72 5c 53 68 65 6c 6c 5c 43 6f 6d 6d 61 6e 64 3b 0a 0a 0a 0a 0a 63 6c 61 73 73 \Finder\Shell\Command;.....class
d85a0 20 53 68 65 6c 6c 43 6f 6d 6d 61 6e 64 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 20 65 78 .ShellCommandFailureException.ex
d85c0 74 65 6e 64 73 20 41 64 61 70 74 65 72 46 61 69 6c 75 72 65 45 78 63 65 70 74 69 6f 6e 0a 7b 0a tends.AdapterFailureException.{.
d85e0 0a 0a 0a 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 ...private.$command;.......publi
d8600 63 20 66 75 6e 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 41 64 61 70 74 65 72 49 6e c.function.__construct(AdapterIn
d8620 74 65 72 66 61 63 65 20 24 61 64 61 70 74 65 72 2c 20 43 6f 6d 6d 61 6e 64 20 24 63 6f 6d 6d 61 terface.$adapter,.Command.$comma
d8640 6e 64 2c 20 5c 45 78 63 65 70 74 69 6f 6e 20 24 70 72 65 76 69 6f 75 73 20 3d 20 6e 75 6c 6c 29 nd,.\Exception.$previous.=.null)
d8660 0a 7b 0a 24 74 68 69 73 2d 3e 63 6f 6d 6d 61 6e 64 20 3d 20 24 63 6f 6d 6d 61 6e 64 3b 0a 70 61 .{.$this->command.=.$command;.pa
d8680 72 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 61 64 61 70 74 65 72 2c 20 27 53 68 65 rent::__construct($adapter,.'She
d86a0 6c 6c 20 63 6f 6d 6d 61 6e 64 20 66 61 69 6c 65 64 3a 20 22 27 2e 24 63 6f 6d 6d 61 6e 64 2d 3e ll.command.failed:."'.$command->
d86c0 6a 6f 69 6e 28 29 2e 27 22 2e 27 2c 20 24 70 72 65 76 69 6f 75 73 29 3b 0a 7d 0a 0a 0a 0a 0a 70 join().'".',.$previous);.}.....p
d86e0 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 7b 0a 72 65 ublic.function.getCommand().{.re
d8700 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 68 70 0a 0a turn.$this->command;.}.}.<?php..
d8720 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 79 6d 66 6f 6e 79 5c 43 6f 6d 70 6f .........namespace.Symfony\Compo
d8740 6e 65 6e 74 5c 46 69 6e 64 65 72 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 70 6c 46 69 6c 65 nent\Finder;.......class.SplFile
d8760 49 6e 66 6f 20 65 78 74 65 6e 64 73 20 5c 53 70 6c 46 69 6c 65 49 6e 66 6f 0a 7b 0a 70 72 69 76 Info.extends.\SplFileInfo.{.priv
d8780 61 74 65 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 70 72 69 76 61 74 65 20 24 72 65 6c 61 ate.$relativePath;.private.$rela
d87a0 74 69 76 65 50 61 74 68 6e 61 6d 65 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e tivePathname;.........public.fun
d87c0 63 74 69 6f 6e 20 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 69 6c 65 2c 20 24 72 65 6c 61 74 69 ction.__construct($file,.$relati
d87e0 76 65 50 61 74 68 2c 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 29 0a 7b 0a 70 61 72 vePath,.$relativePathname).{.par
d8800 65 6e 74 3a 3a 5f 5f 63 6f 6e 73 74 72 75 63 74 28 24 66 69 6c 65 29 3b 0a 24 74 68 69 73 2d 3e ent::__construct($file);.$this->
d8820 72 65 6c 61 74 69 76 65 50 61 74 68 20 3d 20 24 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 24 74 relativePath.=.$relativePath;.$t
d8840 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 20 3d 20 24 72 65 6c 61 74 69 76 his->relativePathname.=.$relativ
d8860 65 50 61 74 68 6e 61 6d 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 ePathname;.}.......public.functi
d8880 6f 6e 20 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 on.getRelativePath().{.return.$t
d88a0 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 his->relativePath;.}.......publi
d88c0 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 52 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d 65 28 29 c.function.getRelativePathname()
d88e0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 72 65 6c 61 74 69 76 65 50 61 74 68 6e 61 6d .{.return.$this->relativePathnam
d8900 65 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 e;.}.........public.function.get
d8920 43 6f 6e 74 65 6e 74 73 28 29 0a 7b 0a 24 6c 65 76 65 6c 20 3d 20 65 72 72 6f 72 5f 72 65 70 6f Contents().{.$level.=.error_repo
d8940 72 74 69 6e 67 28 30 29 3b 0a 24 63 6f 6e 74 65 6e 74 20 3d 20 66 69 6c 65 5f 67 65 74 5f 63 6f rting(0);.$content.=.file_get_co
d8960 6e 74 65 6e 74 73 28 24 74 68 69 73 2d 3e 67 65 74 50 61 74 68 6e 61 6d 65 28 29 29 3b 0a 65 72 ntents($this->getPathname());.er
d8980 72 6f 72 5f 72 65 70 6f 72 74 69 6e 67 28 24 6c 65 76 65 6c 29 3b 0a 69 66 20 28 66 61 6c 73 65 ror_reporting($level);.if.(false
d89a0 20 3d 3d 3d 20 24 63 6f 6e 74 65 6e 74 29 20 7b 0a 24 65 72 72 6f 72 20 3d 20 65 72 72 6f 72 5f .===.$content).{.$error.=.error_
d89c0 67 65 74 5f 6c 61 73 74 28 29 3b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 52 75 6e 74 69 6d 65 45 78 get_last();.throw.new.\RuntimeEx
d89e0 63 65 70 74 69 6f 6e 28 24 65 72 72 6f 72 5b 27 6d 65 73 73 61 67 65 27 5d 29 3b 0a 7d 0a 0a 72 ception($error['message']);.}..r
d8a00 65 74 75 72 6e 20 24 63 6f 6e 74 65 6e 74 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a eturn.$content;.}.}.<?php.......
d8a20 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 63 6c ....namespace.Seld\JsonLint;..cl
d8a40 61 73 73 20 55 6e 64 65 66 69 6e 65 64 0a 7b 0a 7d 0a 3c 3f 70 68 70 0a 0a 0a 0a 0a 0a 0a 0a 0a ass.Undefined.{.}.<?php.........
d8a60 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 6e 74 3b 0a 0a 75 73 65 20 ..namespace.Seld\JsonLint;..use.
d8a80 73 74 64 43 6c 61 73 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4a 73 stdClass;...............class.Js
d8aa0 6f 6e 50 61 72 73 65 72 0a 7b 0a 63 6f 6e 73 74 20 44 45 54 45 43 54 5f 4b 45 59 5f 43 4f 4e 46 onParser.{.const.DETECT_KEY_CONF
d8ac0 4c 49 43 54 53 20 3d 20 31 3b 0a 63 6f 6e 73 74 20 41 4c 4c 4f 57 5f 44 55 50 4c 49 43 41 54 45 LICTS.=.1;.const.ALLOW_DUPLICATE
d8ae0 5f 4b 45 59 53 20 3d 20 32 3b 0a 0a 70 72 69 76 61 74 65 20 24 66 6c 61 67 73 3b 0a 70 72 69 76 _KEYS.=.2;..private.$flags;.priv
d8b00 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
d8b20 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
d8b40 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'
d8b60 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
d8b80 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
d8ba0 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'.=>.
d8bc0 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
d8be0 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'
d8c00 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
d8c20 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
d8c40 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,
d8c60 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
d8c80 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
d8ca0 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,.'['.=>.
d8cc0 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'
d8ce0 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'.=
d8d00 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
d8d20 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
d8d40 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
d8d60 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.=
d8d80 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
d8da0 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.=>."[",.
d8dc0 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
d8de0 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
d8e00 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,
d8e20 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),.
d8e40 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
d8e60 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
d8e80 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)
d8ea0 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
d8ec0 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(
d8ee0 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,.
d8f00 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
d8f20 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
d8f40 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
d8f60 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
d8f80 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.=>.
d8fa0 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
d8fc0 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
d8fe0 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
d9000 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
d9020 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
d9040 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
d9060 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(
d9080 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
d90a0 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
d90c0 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
d90e0 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
d9100 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(
d9120 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(
d9140 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.=>.
d9160 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
d9180 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.=>
d91a0 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))
d91c0 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.=
d91e0 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)
d9200 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.
d9220 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),
d9240 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
d9260 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
d9280 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
d92a0 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.
d92c0 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),
d92e0 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
d9300 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
d9320 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
d9340 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
d9360 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),
d9380 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
d93a0 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
d93c0 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.=>.
d93e0 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.
d9400 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
d9420 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.
d9440 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
d9460 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,
d9480 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,
d94a0 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(
d94c0 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.=>.
d94e0 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
d9500 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
d9520 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
d9540 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.=>.
d9560 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)),
d9580 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.=>
d95a0 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
d95c0 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
d95e0 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
d9600 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
d9620 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
d9640 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
d9660 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(
d9680 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(
d96a0 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.=>.
d96c0 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.
d96e0 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
d9700 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.=
d9720 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
d9740 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
d9760 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
d9780 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.=>.
d97a0 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)),
d97c0 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.=>
d97e0 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),
d9800 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.=>
d9820 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.
d9840 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
d9860 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
d9880 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,
d98a0 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
d98c0 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(
d98e0 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(
d9900 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)
d9920 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.
d9940 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
d9960 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.
d9980 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).);...
d99a0 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).
d99c0 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);.}.
d99e0 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
d9a00 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
d9a20 6f 6e 20 70 61 72 73 65 28 24 69 6e 70 75 74 2c 20 24 66 6c 61 67 73 20 3d 20 30 29 0a 7b 0a 24 on.parse($input,.$flags.=.0).{.$
d9a40 74 68 69 73 2d 3e 66 61 69 6c 4f 6e 42 4f 4d 28 24 69 6e 70 75 74 29 3b 0a 0a 24 74 68 69 73 2d this->failOnBOM($input);..$this-
d9a60 3e 66 6c 61 67 73 20 3d 20 24 66 6c 61 67 73 3b 0a 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d >flags.=.$flags;..$this->stack.=
d9a80 20 61 72 72 61 79 28 30 29 3b 0a 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 .array(0);.$this->vstack.=.array
d9aa0 28 6e 75 6c 6c 29 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 20 3d 20 61 72 72 61 79 28 29 3b (null);.$this->lstack.=.array();
d9ac0 0a 0a 24 79 79 74 65 78 74 20 3d 20 27 27 3b 0a 24 79 79 6c 69 6e 65 6e 6f 20 3d 20 30 3b 0a 24 ..$yytext.=.'';.$yylineno.=.0;.$
d9ae0 79 79 6c 65 6e 67 20 3d 20 30 3b 0a 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 20 30 3b 0a 24 54 45 yyleng.=.0;.$recovering.=.0;.$TE
d9b00 52 52 4f 52 20 3d 20 32 3b 0a 24 45 4f 46 20 3d 20 31 3b 0a 0a 24 74 68 69 73 2d 3e 6c 65 78 65 RROR.=.2;.$EOF.=.1;..$this->lexe
d9b20 72 20 3d 20 6e 65 77 20 4c 65 78 65 72 28 29 3b 0a 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 73 r.=.new.Lexer();.$this->lexer->s
d9b40 65 74 49 6e 70 75 74 28 24 69 6e 70 75 74 29 3b 0a 0a 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 etInput($input);..$yyloc.=.$this
d9b60 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d ->lexer->yylloc;.$this->lstack[]
d9b80 20 3d 20 24 79 79 6c 6f 63 3b 0a 0a 24 73 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 70 72 65 .=.$yyloc;..$symbol.=.null;.$pre
d9ba0 45 72 72 6f 72 53 79 6d 62 6f 6c 20 3d 20 6e 75 6c 6c 3b 0a 24 73 74 61 74 65 20 3d 20 6e 75 6c ErrorSymbol.=.null;.$state.=.nul
d9bc0 6c 3b 0a 24 61 63 74 69 6f 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 61 20 3d 20 6e 75 6c 6c 3b 0a 24 72 l;.$action.=.null;.$a.=.null;.$r
d9be0 20 3d 20 6e 75 6c 6c 3b 0a 24 79 79 76 61 6c 20 3d 20 6e 65 77 20 73 74 64 43 6c 61 73 73 3b 0a .=.null;.$yyval.=.new.stdClass;.
d9c00 24 70 20 3d 20 6e 75 6c 6c 3b 0a 24 6c 65 6e 20 3d 20 6e 75 6c 6c 3b 0a 24 6e 65 77 53 74 61 74 $p.=.null;.$len.=.null;.$newStat
d9c20 65 20 3d 20 6e 75 6c 6c 3b 0a 24 65 78 70 65 63 74 65 64 20 3d 20 6e 75 6c 6c 3b 0a 24 65 72 72 e.=.null;.$expected.=.null;.$err
d9c40 53 74 72 20 3d 20 6e 75 6c 6c 3b 0a 0a 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 0a 20 24 73 Str.=.null;..while.(true).{...$s
d9c60 74 61 74 65 20 3d 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d tate.=.$this->stack[count($this-
d9c80 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e >stack)-1];....if.(isset($this->
d9ca0 64 65 66 61 75 6c 74 41 63 74 69 6f 6e 73 5b 24 73 74 61 74 65 5d 29 29 20 7b 0a 24 61 63 74 69 defaultActions[$state])).{.$acti
d9cc0 6f 6e 20 3d 20 24 74 68 69 73 2d 3e 64 65 66 61 75 6c 74 41 63 74 69 6f 6e 73 5b 24 73 74 61 74 on.=.$this->defaultActions[$stat
d9ce0 65 5d 3b 0a 7d 20 65 6c 73 65 20 7b 0a 69 66 20 28 24 73 79 6d 62 6f 6c 20 3d 3d 20 6e 75 6c 6c e];.}.else.{.if.($symbol.==.null
d9d00 29 20 7b 0a 24 73 79 6d 62 6f 6c 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 20 ).{.$symbol.=.$this->lex();.}...
d9d20 24 61 63 74 69 6f 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 $action.=.isset($this->table[$st
d9d40 61 74 65 5d 5b 24 73 79 6d 62 6f 6c 5d 29 20 3f 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 ate][$symbol]).?.$this->table[$s
d9d60 74 61 74 65 5d 5b 24 73 79 6d 62 6f 6c 5d 20 3a 20 66 61 6c 73 65 3b 0a 7d 0a 0a 0a 20 69 66 20 tate][$symbol].:.false;.}....if.
d9d80 28 21 24 61 63 74 69 6f 6e 20 7c 7c 20 21 24 61 63 74 69 6f 6e 5b 30 5d 29 20 7b 0a 69 66 20 28 (!$action.||.!$action[0]).{.if.(
d9da0 21 24 72 65 63 6f 76 65 72 69 6e 67 29 20 7b 0a 0a 20 24 65 78 70 65 63 74 65 64 20 3d 20 61 72 !$recovering).{...$expected.=.ar
d9dc0 72 61 79 28 29 3b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 ray();.foreach.($this->table[$st
d9de0 61 74 65 5d 20 61 73 20 24 70 20 3d 3e 20 24 69 67 6e 6f 72 65 29 20 7b 0a 69 66 20 28 69 73 73 ate].as.$p.=>.$ignore).{.if.(iss
d9e00 65 74 28 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 70 5d 29 20 26 26 20 24 70 20 et($this->terminals_[$p]).&&.$p.
d9e20 3e 20 32 29 20 7b 0a 24 65 78 70 65 63 74 65 64 5b 5d 20 3d 20 22 27 22 20 2e 20 24 74 68 69 73 >.2).{.$expected[].=."'"...$this
d9e40 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 6d 65 ->terminals_[$p]..."'";.}.}..$me
d9e60 73 73 61 67 65 20 3d 20 6e 75 6c 6c 3b 0a 69 66 20 28 69 6e 5f 61 72 72 61 79 28 22 27 53 54 52 ssage.=.null;.if.(in_array("'STR
d9e80 49 4e 47 27 22 2c 20 24 65 78 70 65 63 74 65 64 29 20 26 26 20 69 6e 5f 61 72 72 61 79 28 73 75 ING'",.$expected).&&.in_array(su
d9ea0 62 73 74 72 28 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6d 61 74 63 68 2c 20 30 2c 20 31 29 2c bstr($this->lexer->match,.0,.1),
d9ec0 20 61 72 72 61 79 28 27 22 27 2c 20 22 27 22 29 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 3d 20 .array('"',."'"))).{.$message.=.
d9ee0 22 49 6e 76 61 6c 69 64 20 73 74 72 69 6e 67 22 3b 0a 69 66 20 28 22 27 22 20 3d 3d 3d 20 73 75 "Invalid.string";.if.("'".===.su
d9f00 62 73 74 72 28 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6d 61 74 63 68 2c 20 30 2c 20 31 29 29 bstr($this->lexer->match,.0,.1))
d9f20 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 2c 20 69 74 20 61 70 70 65 61 72 73 20 79 6f 75 .{.$message..=.",.it.appears.you
d9f40 20 75 73 65 64 20 73 69 6e 67 6c 65 20 71 75 6f 74 65 73 20 69 6e 73 74 65 61 64 20 6f 66 20 64 .used.single.quotes.instead.of.d
d9f60 6f 75 62 6c 65 20 71 75 6f 74 65 73 22 3b 0a 7d 20 65 6c 73 65 69 66 20 28 70 72 65 67 5f 6d 61 ouble.quotes";.}.elseif.(preg_ma
d9f80 74 63 68 28 27 7b 22 2e 2b 3f 28 5c 5c 5c 5c 5b 5e 22 62 66 6e 72 74 2f 5c 5c 5c 5c 75 5d 29 7d tch('{".+?(\\\\[^"bfnrt/\\\\u])}
d9fa0 27 2c 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 67 65 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 ',.$this->lexer->getUpcomingInpu
d9fc0 74 28 29 2c 20 24 6d 61 74 63 68 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 2c 20 69 t(),.$match)).{.$message..=.",.i
d9fe0 74 20 61 70 70 65 61 72 73 20 79 6f 75 20 68 61 76 65 20 61 6e 20 75 6e 65 73 63 61 70 65 64 20 t.appears.you.have.an.unescaped.
da000 62 61 63 6b 73 6c 61 73 68 20 61 74 3a 20 22 2e 24 6d 61 74 63 68 5b 31 5d 3b 0a 7d 20 65 6c 73 backslash.at:.".$match[1];.}.els
da020 65 69 66 20 28 70 72 65 67 5f 6d 61 74 63 68 28 27 7b 22 28 3f 3a 5b 5e 22 5d 2b 7c 5c 5c 5c 5c eif.(preg_match('{"(?:[^"]+|\\\\
da040 22 29 2a 24 7d 6d 27 2c 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 67 65 74 55 70 63 6f 6d 69 ")*$}m',.$this->lexer->getUpcomi
da060 6e 67 49 6e 70 75 74 28 29 29 29 20 7b 0a 24 6d 65 73 73 61 67 65 20 2e 3d 20 22 2c 20 69 74 20 ngInput())).{.$message..=.",.it.
da080 61 70 70 65 61 72 73 20 79 6f 75 20 66 6f 72 67 6f 74 20 74 6f 20 74 65 72 6d 69 6e 61 74 65 64 appears.you.forgot.to.terminated
da0a0 20 74 68 65 20 73 74 72 69 6e 67 2c 20 6f 72 20 61 74 74 65 6d 70 74 65 64 20 74 6f 20 77 72 69 .the.string,.or.attempted.to.wri
da0c0 74 65 20 61 20 6d 75 6c 74 69 6c 69 6e 65 20 73 74 72 69 6e 67 20 77 68 69 63 68 20 69 73 20 69 te.a.multiline.string.which.is.i
da0e0 6e 76 61 6c 69 64 22 3b 0a 7d 0a 7d 0a 0a 24 65 72 72 53 74 72 20 3d 20 27 50 61 72 73 65 20 65 nvalid";.}.}..$errStr.=.'Parse.e
da100 72 72 6f 72 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 79 79 6c 69 6e 65 6e 6f 2b 31 29 20 2e rror.on.line.'...($yylineno+1)..
da120 20 22 3a 5c 6e 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d .":\n";.$errStr..=.$this->lexer-
da140 3e 73 68 6f 77 50 6f 73 69 74 69 6f 6e 28 29 20 2e 20 22 5c 6e 22 3b 0a 69 66 20 28 24 6d 65 73 >showPosition()..."\n";.if.($mes
da160 73 61 67 65 29 20 7b 0a 24 65 72 72 53 74 72 20 2e 3d 20 24 6d 65 73 73 61 67 65 3b 0a 7d 20 65 sage).{.$errStr..=.$message;.}.e
da180 6c 73 65 20 7b 0a 24 65 72 72 53 74 72 20 2e 3d 20 28 63 6f 75 6e 74 28 24 65 78 70 65 63 74 65 lse.{.$errStr..=.(count($expecte
da1a0 64 29 20 3e 20 31 29 20 3f 20 22 45 78 70 65 63 74 65 64 20 6f 6e 65 20 6f 66 3a 20 22 20 3a 20 d).>.1).?."Expected.one.of:.".:.
da1c0 22 45 78 70 65 63 74 65 64 3a 20 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 69 6d 70 6c 6f 64 65 "Expected:.";.$errStr..=.implode
da1e0 28 27 2c 20 27 2c 20 24 65 78 70 65 63 74 65 64 29 3b 0a 7d 0a 0a 69 66 20 28 27 2c 27 20 3d 3d (',.',.$expected);.}..if.(','.==
da200 3d 20 73 75 62 73 74 72 28 74 72 69 6d 28 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 67 65 74 50 =.substr(trim($this->lexer->getP
da220 61 73 74 49 6e 70 75 74 28 29 29 2c 20 2d 31 29 29 20 7b 0a 24 65 72 72 53 74 72 20 2e 3d 20 22 astInput()),.-1)).{.$errStr..=."
da240 20 2d 20 49 74 20 61 70 70 65 61 72 73 20 79 6f 75 20 68 61 76 65 20 61 6e 20 65 78 74 72 61 20 .-.It.appears.you.have.an.extra.
da260 74 72 61 69 6c 69 6e 67 20 63 6f 6d 6d 61 22 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 trailing.comma";.}..$this->parse
da280 45 72 72 6f 72 28 24 65 72 72 53 74 72 2c 20 61 72 72 61 79 28 0a 27 74 65 78 74 27 20 3d 3e 20 Error($errStr,.array(.'text'.=>.
da2a0 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6d 61 74 63 68 2c 0a 27 74 6f 6b 65 6e 27 20 3d 3e 20 $this->lexer->match,.'token'.=>.
da2c0 21 65 6d 70 74 79 28 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 73 79 6d 62 6f 6c !empty($this->terminals_[$symbol
da2e0 5d 29 20 3f 20 24 74 68 69 73 2d 3e 74 65 72 6d 69 6e 61 6c 73 5f 5b 24 73 79 6d 62 6f 6c 5d 20 ]).?.$this->terminals_[$symbol].
da300 3a 20 24 73 79 6d 62 6f 6c 2c 0a 27 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 65 78 65 :.$symbol,.'line'.=>.$this->lexe
da320 72 2d 3e 79 79 6c 69 6e 65 6e 6f 2c 0a 27 6c 6f 63 27 20 3d 3e 20 24 79 79 6c 6f 63 2c 0a 27 65 r->yylineno,.'loc'.=>.$yyloc,.'e
da340 78 70 65 63 74 65 64 27 20 3d 3e 20 24 65 78 70 65 63 74 65 64 2c 0a 29 29 3b 0a 7d 0a 0a 0a 20 xpected'.=>.$expected,.));.}....
da360 69 66 20 28 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 3d 20 33 29 20 7b 0a 69 66 20 28 24 73 79 6d if.($recovering.==.3).{.if.($sym
da380 62 6f 6c 20 3d 3d 20 24 45 4f 46 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 6e 67 bol.==.$EOF).{.throw.new.Parsing
da3a0 45 78 63 65 70 74 69 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 Exception($errStr.?:.'Parsing.ha
da3c0 6c 74 65 64 2e 27 29 3b 0a 7d 0a 0a 0a 20 24 79 79 6c 65 6e 67 20 3d 20 24 74 68 69 73 2d 3e 6c lted.');.}....$yyleng.=.$this->l
da3e0 65 78 65 72 2d 3e 79 79 6c 65 6e 67 3b 0a 24 79 79 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6c exer->yyleng;.$yytext.=.$this->l
da400 65 78 65 72 2d 3e 79 79 74 65 78 74 3b 0a 24 79 79 6c 69 6e 65 6e 6f 20 3d 20 24 74 68 69 73 2d exer->yytext;.$yylineno.=.$this-
da420 3e 6c 65 78 65 72 2d 3e 79 79 6c 69 6e 65 6e 6f 3b 0a 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 >lexer->yylineno;.$yyloc.=.$this
da440 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a 24 73 79 6d 62 6f 6c 20 3d 20 24 74 68 69 73 ->lexer->yylloc;.$symbol.=.$this
da460 2d 3e 6c 65 78 28 29 3b 0a 7d 0a 0a 0a 20 77 68 69 6c 65 20 28 74 72 75 65 29 20 7b 0a 0a 20 69 ->lex();.}....while.(true).{...i
da480 66 20 28 61 72 72 61 79 5f 6b 65 79 5f 65 78 69 73 74 73 28 24 54 45 52 52 4f 52 2c 20 24 74 68 f.(array_key_exists($TERROR,.$th
da4a0 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 29 29 20 7b 0a 62 72 65 61 6b 3b 0a 7d 0a 69 is->table[$state])).{.break;.}.i
da4c0 66 20 28 24 73 74 61 74 65 20 3d 3d 20 30 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 f.($state.==.0).{.throw.new.Pars
da4e0 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 53 74 72 20 3f 3a 20 27 50 61 72 73 69 6e 67 ingException($errStr.?:.'Parsing
da500 20 68 61 6c 74 65 64 2e 27 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 6f 70 53 74 61 63 6b 28 31 29 .halted.');.}.$this->popStack(1)
da520 3b 0a 24 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 ;.$state.=.$this->stack[count($t
da540 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 7d 0a 0a 24 70 72 65 45 72 72 6f 72 53 79 6d 62 his->stack)-1];.}..$preErrorSymb
da560 6f 6c 20 3d 20 24 73 79 6d 62 6f 6c 3b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 24 54 45 52 52 4f ol.=.$symbol;...$symbol.=.$TERRO
da580 52 3b 20 0a 20 24 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 R;...$state.=.$this->stack[count
da5a0 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 3b 0a 24 61 63 74 69 6f 6e 20 3d 20 69 73 73 ($this->stack)-1];.$action.=.iss
da5c0 65 74 28 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 54 45 52 52 4f 52 5d et($this->table[$state][$TERROR]
da5e0 29 20 3f 20 24 74 68 69 73 2d 3e 74 61 62 6c 65 5b 24 73 74 61 74 65 5d 5b 24 54 45 52 52 4f 52 ).?.$this->table[$state][$TERROR
da600 5d 20 3a 20 66 61 6c 73 65 3b 0a 24 72 65 63 6f 76 65 72 69 6e 67 20 3d 20 33 3b 20 0a 20 7d 0a ].:.false;.$recovering.=.3;...}.
da620 0a 0a 20 69 66 20 28 69 73 5f 61 72 72 61 79 28 24 61 63 74 69 6f 6e 5b 30 5d 29 20 26 26 20 63 ...if.(is_array($action[0]).&&.c
da640 6f 75 6e 74 28 24 61 63 74 69 6f 6e 29 20 3e 20 31 29 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 ount($action).>.1).{.throw.new.P
da660 61 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 27 50 61 72 73 65 20 45 72 72 6f 72 3a 20 6d 75 arsingException('Parse.Error:.mu
da680 6c 74 69 70 6c 65 20 61 63 74 69 6f 6e 73 20 70 6f 73 73 69 62 6c 65 20 61 74 20 73 74 61 74 65 ltiple.actions.possible.at.state
da6a0 3a 20 27 20 2e 20 24 73 74 61 74 65 20 2e 20 27 2c 20 74 6f 6b 65 6e 3a 20 27 20 2e 20 24 73 79 :.'...$state...',.token:.'...$sy
da6c0 6d 62 6f 6c 29 3b 0a 7d 0a 0a 73 77 69 74 63 68 20 28 24 61 63 74 69 6f 6e 5b 30 5d 29 20 7b 0a mbol);.}..switch.($action[0]).{.
da6e0 63 61 73 65 20 31 3a 20 0a 20 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 5d 20 3d 20 24 73 79 6d 62 case.1:...$this->stack[].=.$symb
da700 6f 6c 3b 0a 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 ol;.$this->vstack[].=.$this->lex
da720 65 72 2d 3e 79 79 74 65 78 74 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 3d 20 24 74 er->yytext;.$this->lstack[].=.$t
da740 68 69 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 73 74 61 63 6b his->lexer->yylloc;.$this->stack
da760 5b 5d 20 3d 20 24 61 63 74 69 6f 6e 5b 31 5d 3b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 6e 75 6c [].=.$action[1];...$symbol.=.nul
da780 6c 3b 0a 69 66 20 28 21 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 29 20 7b 20 0a 20 24 79 79 l;.if.(!$preErrorSymbol).{...$yy
da7a0 6c 65 6e 67 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 65 6e 67 3b 0a 24 79 79 leng.=.$this->lexer->yyleng;.$yy
da7c0 74 65 78 74 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 74 65 78 74 3b 0a 24 79 79 text.=.$this->lexer->yytext;.$yy
da7e0 6c 69 6e 65 6e 6f 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 69 6e 65 6e 6f 3b lineno.=.$this->lexer->yylineno;
da800 0a 24 79 79 6c 6f 63 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 79 79 6c 6c 6f 63 3b 0a .$yyloc.=.$this->lexer->yylloc;.
da820 69 66 20 28 24 72 65 63 6f 76 65 72 69 6e 67 20 3e 20 30 29 20 7b 0a 24 72 65 63 6f 76 65 72 69 if.($recovering.>.0).{.$recoveri
da840 6e 67 2d 2d 3b 0a 7d 0a 7d 20 65 6c 73 65 20 7b 20 0a 20 24 73 79 6d 62 6f 6c 20 3d 20 24 70 72 ng--;.}.}.else.{...$symbol.=.$pr
da860 65 45 72 72 6f 72 53 79 6d 62 6f 6c 3b 0a 24 70 72 65 45 72 72 6f 72 53 79 6d 62 6f 6c 20 3d 20 eErrorSymbol;.$preErrorSymbol.=.
da880 6e 75 6c 6c 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 32 3a 20 0a 20 24 6c 65 6e 20 3d null;.}.break;..case.2:...$len.=
da8a0 20 24 74 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 .$this->productions_[$action[1]]
da8c0 5b 31 5d 3b 0a 0a 0a 20 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 76 [1];....$yyval->token.=.$this->v
da8e0 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 29 20 2d 20 24 6c 65 stack[count($this->vstack).-.$le
da900 6e 5d 3b 20 0a 20 0a 20 24 79 79 76 61 6c 2d 3e 73 74 6f 72 65 20 3d 20 61 72 72 61 79 28 20 0a n];.....$yyval->store.=.array(..
da920 20 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 .'first_line'.=>.$this->lstack[c
da940 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 20 2d 20 28 24 6c 65 6e 20 3f 3a 20 31 ount($this->lstack).-.($len.?:.1
da960 29 5d 5b 27 66 69 72 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 )]['first_line'],.'last_line'.=>
da980 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 .$this->lstack[count($this->lsta
da9a0 63 6b 29 20 2d 20 31 5d 5b 27 6c 61 73 74 5f 6c 69 6e 65 27 5d 2c 0a 27 66 69 72 73 74 5f 63 6f ck).-.1]['last_line'],.'first_co
da9c0 6c 75 6d 6e 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 lumn'.=>.$this->lstack[count($th
da9e0 69 73 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 is->lstack).-.($len.?:.1)]['firs
daa00 74 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 24 74 68 t_column'],.'last_column'.=>.$th
daa20 69 73 2d 3e 6c 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 20 is->lstack[count($this->lstack).
daa40 2d 20 31 5d 5b 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 5d 2c 0a 29 3b 0a 24 72 20 3d 20 24 74 68 -.1]['last_column'],.);.$r.=.$th
daa60 69 73 2d 3e 70 65 72 66 6f 72 6d 41 63 74 69 6f 6e 28 24 79 79 76 61 6c 2c 20 24 79 79 74 65 78 is->performAction($yyval,.$yytex
daa80 74 2c 20 24 79 79 6c 65 6e 67 2c 20 24 79 79 6c 69 6e 65 6e 6f 2c 20 24 61 63 74 69 6f 6e 5b 31 t,.$yyleng,.$yylineno,.$action[1
daaa0 5d 2c 20 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 2c 20 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 29 ],.$this->vstack,.$this->lstack)
daac0 3b 0a 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 ;..if.(!$r.instanceof.Undefined)
daae0 20 7b 0a 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 0a 69 66 20 28 24 6c 65 6e 29 20 7b 0a 24 74 68 .{.return.$r;.}..if.($len).{.$th
dab00 69 73 2d 3e 70 6f 70 53 74 61 63 6b 28 24 6c 65 6e 29 3b 0a 7d 0a 0a 24 74 68 69 73 2d 3e 73 74 is->popStack($len);.}..$this->st
dab20 61 63 6b 5b 5d 20 3d 20 24 74 68 69 73 2d 3e 70 72 6f 64 75 63 74 69 6f 6e 73 5f 5b 24 61 63 74 ack[].=.$this->productions_[$act
dab40 69 6f 6e 5b 31 5d 5d 5b 30 5d 3b 20 0a 20 24 74 68 69 73 2d 3e 76 73 74 61 63 6b 5b 5d 20 3d 20 ion[1]][0];...$this->vstack[].=.
dab60 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 5b 5d 20 3d $yyval->token;.$this->lstack[].=
dab80 20 24 79 79 76 61 6c 2d 3e 73 74 6f 72 65 3b 0a 24 6e 65 77 53 74 61 74 65 20 3d 20 24 74 68 69 .$yyval->store;.$newState.=.$thi
daba0 73 2d 3e 74 61 62 6c 65 5b 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 s->table[$this->stack[count($thi
dabc0 73 2d 3e 73 74 61 63 6b 29 2d 32 5d 5d 5b 24 74 68 69 73 2d 3e 73 74 61 63 6b 5b 63 6f 75 6e 74 s->stack)-2]][$this->stack[count
dabe0 28 24 74 68 69 73 2d 3e 73 74 61 63 6b 29 2d 31 5d 5d 3b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b ($this->stack)-1]];.$this->stack
dac00 5b 5d 20 3d 20 24 6e 65 77 53 74 61 74 65 3b 0a 62 72 65 61 6b 3b 0a 0a 63 61 73 65 20 33 3a 20 [].=.$newState;.break;..case.3:.
dac20 0a 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 74 72 75 65 3b ..return.true;.}.}..return.true;
dac40 0a 7d 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 70 61 72 73 65 45 72 72 6f .}..protected.function.parseErro
dac60 72 28 24 73 74 72 2c 20 24 68 61 73 68 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 72 73 69 r($str,.$hash).{.throw.new.Parsi
dac80 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 73 74 72 2c 20 24 68 61 73 68 29 3b 0a 7d 0a 0a 0a 20 0a ngException($str,.$hash);.}.....
daca0 20 0a 20 70 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 ...private.function.performActio
dacc0 6e 28 73 74 64 43 6c 61 73 73 20 24 79 79 76 61 6c 2c 20 24 79 79 74 65 78 74 2c 20 24 79 79 6c n(stdClass.$yyval,.$yytext,.$yyl
dace0 65 6e 67 2c 20 24 79 79 6c 69 6e 65 6e 6f 2c 20 24 79 79 73 74 61 74 65 2c 20 26 24 74 6f 6b 65 eng,.$yylineno,.$yystate,.&$toke
dad00 6e 73 29 0a 7b 0a 0a 20 24 6c 65 6e 20 3d 20 63 6f 75 6e 74 28 24 74 6f 6b 65 6e 73 29 20 2d 20 ns).{...$len.=.count($tokens).-.
dad20 31 3b 0a 73 77 69 74 63 68 20 28 24 79 79 73 74 61 74 65 29 20 7b 0a 63 61 73 65 20 31 3a 0a 24 1;.switch.($yystate).{.case.1:.$
dad40 79 79 74 65 78 74 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 yytext.=.preg_replace_callback('
dad60 7b 28 3f 3a 5c 5c 5c 5c 5b 22 62 66 6e 72 74 2f 5c 5c 5c 5c 5d 7c 5c 5c 5c 5c 75 5b 61 2d 66 41 {(?:\\\\["bfnrt/\\\\]|\\\\u[a-fA
dad80 2d 46 30 2d 39 5d 7b 34 7d 29 7d 27 2c 20 61 72 72 61 79 28 24 74 68 69 73 2c 20 27 73 74 72 69 -F0-9]{4})}',.array($this,.'stri
dada0 6e 67 49 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 27 29 2c 20 24 79 79 74 65 78 74 29 3b 0a 24 79 79 ngInterpolation'),.$yytext);.$yy
dadc0 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 79 79 74 65 78 74 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 val->token.=.$yytext;.break;.cas
dade0 65 20 32 3a 0a 69 66 20 28 73 74 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 65 27 29 20 21 3d e.2:.if.(strpos($yytext,.'e').!=
dae00 3d 20 66 61 6c 73 65 20 7c 7c 20 73 74 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 45 27 29 20 =.false.||.strpos($yytext,.'E').
dae20 21 3d 3d 20 66 61 6c 73 65 29 20 7b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 66 6c 6f !==.false).{.$yyval->token.=.flo
dae40 61 74 76 61 6c 28 24 79 79 74 65 78 74 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 79 79 76 61 6c 2d atval($yytext);.}.else.{.$yyval-
dae60 3e 74 6f 6b 65 6e 20 3d 20 73 74 72 70 6f 73 28 24 79 79 74 65 78 74 2c 20 27 2e 27 29 20 3d 3d >token.=.strpos($yytext,.'.').==
dae80 3d 20 66 61 6c 73 65 20 3f 20 69 6e 74 76 61 6c 28 24 79 79 74 65 78 74 29 20 3a 20 66 6c 6f 61 =.false.?.intval($yytext).:.floa
daea0 74 76 61 6c 28 24 79 79 74 65 78 74 29 3b 0a 7d 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 33 3a 0a tval($yytext);.}.break;.case.3:.
daec0 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 75 6c 6c 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 $yyval->token.=.null;.break;.cas
daee0 65 20 34 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 74 72 75 65 3b 0a 62 72 65 61 6b e.4:.$yyval->token.=.true;.break
daf00 3b 0a 63 61 73 65 20 35 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 66 61 6c 73 65 3b ;.case.5:.$yyval->token.=.false;
daf20 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 36 3a 0a 72 65 74 75 72 6e 20 24 79 79 76 61 6c 2d 3e 74 .break;.case.6:.return.$yyval->t
daf40 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 63 61 73 65 20 31 33 3a oken.=.$tokens[$len-1];.case.13:
daf60 0a 24 79 79 76 61 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 62 .$yyval->token.=.new.stdClass;.b
daf80 72 65 61 6b 3b 0a 63 61 73 65 20 31 34 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 reak;.case.14:.$yyval->token.=.$
dafa0 74 6f 6b 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 31 35 3a 0a tokens[$len-1];.break;.case.15:.
dafc0 24 79 79 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 $yyval->token.=.array($tokens[$l
dafe0 65 6e 2d 32 5d 2c 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 29 3b 0a 62 72 65 61 6b 3b 0a 63 61 en-2],.$tokens[$len]);.break;.ca
db000 73 65 20 31 36 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 6e 65 77 20 73 74 64 43 6c se.16:.$yyval->token.=.new.stdCl
db020 61 73 73 3b 0a 24 70 72 6f 70 65 72 74 79 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 ass;.$property.=.$tokens[$len][0
db040 5d 20 3d 3d 3d 20 27 27 20 3f 20 27 5f 65 6d 70 74 79 5f 27 20 3a 20 24 74 6f 6b 65 6e 73 5b 24 ].===.''.?.'_empty_'.:.$tokens[$
db060 6c 65 6e 5d 5b 30 5d 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 2d 3e 24 70 72 6f 70 65 72 74 len][0];.$yyval->token->$propert
db080 79 20 3d 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 y.=.$tokens[$len][1];.break;.cas
db0a0 65 20 31 37 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 e.17:.$yyval->token.=.$tokens[$l
db0c0 65 6e 2d 32 5d 3b 0a 24 6b 65 79 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 20 3d en-2];.$key.=.$tokens[$len][0].=
db0e0 3d 3d 20 27 27 20 3f 20 27 5f 65 6d 70 74 79 5f 27 20 3a 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e ==.''.?.'_empty_'.:.$tokens[$len
db100 5d 5b 30 5d 3b 0a 69 66 20 28 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a ][0];.if.(($this->flags.&.self::
db120 44 45 54 45 43 54 5f 4b 45 59 5f 43 4f 4e 46 4c 49 43 54 53 29 20 26 26 20 69 73 73 65 74 28 24 DETECT_KEY_CONFLICTS).&&.isset($
db140 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 7b 24 6b 65 79 7d 29 29 20 7b 0a 24 65 72 72 53 tokens[$len-2]->{$key})).{.$errS
db160 74 72 20 3d 20 27 50 61 72 73 65 20 65 72 72 6f 72 20 6f 6e 20 6c 69 6e 65 20 27 20 2e 20 28 24 tr.=.'Parse.error.on.line.'...($
db180 79 79 6c 69 6e 65 6e 6f 2b 31 29 20 2e 20 22 3a 5c 6e 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 yylineno+1)...":\n";.$errStr..=.
db1a0 24 74 68 69 73 2d 3e 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 $this->lexer->showPosition()..."
db1c0 5c 6e 22 3b 0a 24 65 72 72 53 74 72 20 2e 3d 20 22 44 75 70 6c 69 63 61 74 65 20 6b 65 79 3a 20 \n";.$errStr..=."Duplicate.key:.
db1e0 22 2e 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 30 5d 3b 0a 74 68 72 6f 77 20 6e 65 77 20 50 61 ".$tokens[$len][0];.throw.new.Pa
db200 72 73 69 6e 67 45 78 63 65 70 74 69 6f 6e 28 24 65 72 72 53 74 72 29 3b 0a 7d 20 65 6c 73 65 69 rsingException($errStr);.}.elsei
db220 66 20 28 28 24 74 68 69 73 2d 3e 66 6c 61 67 73 20 26 20 73 65 6c 66 3a 3a 41 4c 4c 4f 57 5f 44 f.(($this->flags.&.self::ALLOW_D
db240 55 50 4c 49 43 41 54 45 5f 4b 45 59 53 29 20 26 26 20 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b UPLICATE_KEYS).&&.isset($tokens[
db260 24 6c 65 6e 2d 32 5d 2d 3e 7b 24 6b 65 79 7d 29 29 20 7b 0a 24 64 75 70 6c 69 63 61 74 65 43 6f $len-2]->{$key})).{.$duplicateCo
db280 75 6e 74 20 3d 20 31 3b 0a 64 6f 20 7b 0a 24 64 75 70 6c 69 63 61 74 65 4b 65 79 20 3d 20 24 6b unt.=.1;.do.{.$duplicateKey.=.$k
db2a0 65 79 20 2e 20 27 2e 27 20 2e 20 24 64 75 70 6c 69 63 61 74 65 43 6f 75 6e 74 2b 2b 3b 0a 7d 20 ey...'.'...$duplicateCount++;.}.
db2c0 77 68 69 6c 65 20 28 69 73 73 65 74 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 24 64 while.(isset($tokens[$len-2]->$d
db2e0 75 70 6c 69 63 61 74 65 4b 65 79 29 29 3b 0a 24 6b 65 79 20 3d 20 24 64 75 70 6c 69 63 61 74 65 uplicateKey));.$key.=.$duplicate
db300 4b 65 79 3b 0a 7d 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 2d 3e 24 6b 65 79 20 3d 20 24 Key;.}.$tokens[$len-2]->$key.=.$
db320 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 5b 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 31 38 3a tokens[$len][1];.break;.case.18:
db340 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 29 3b 0a 62 72 65 61 6b 3b .$yyval->token.=.array();.break;
db360 0a 63 61 73 65 20 31 39 3a 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 24 74 6f 6b 65 6e .case.19:.$yyval->token.=.$token
db380 73 5b 24 6c 65 6e 2d 31 5d 3b 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 30 3a 0a 24 79 79 76 61 s[$len-1];.break;.case.20:.$yyva
db3a0 6c 2d 3e 74 6f 6b 65 6e 20 3d 20 61 72 72 61 79 28 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 29 3b l->token.=.array($tokens[$len]);
db3c0 0a 62 72 65 61 6b 3b 0a 63 61 73 65 20 32 31 3a 0a 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d .break;.case.21:.$tokens[$len-2]
db3e0 5b 5d 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 5d 3b 0a 24 79 79 76 61 6c 2d 3e 74 6f 6b 65 [].=.$tokens[$len];.$yyval->toke
db400 6e 20 3d 20 24 74 6f 6b 65 6e 73 5b 24 6c 65 6e 2d 32 5d 3b 0a 62 72 65 61 6b 3b 0a 7d 0a 0a 72 n.=.$tokens[$len-2];.break;.}..r
db420 65 74 75 72 6e 20 6e 65 77 20 55 6e 64 65 66 69 6e 65 64 28 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 eturn.new.Undefined();.}..privat
db440 65 20 66 75 6e 63 74 69 6f 6e 20 73 74 72 69 6e 67 49 6e 74 65 72 70 6f 6c 61 74 69 6f 6e 28 24 e.function.stringInterpolation($
db460 6d 61 74 63 68 29 0a 7b 0a 73 77 69 74 63 68 20 28 24 6d 61 74 63 68 5b 30 5d 29 20 7b 0a 63 61 match).{.switch.($match[0]).{.ca
db480 73 65 20 27 5c 5c 5c 5c 27 3a 0a 72 65 74 75 72 6e 20 27 5c 5c 27 3b 0a 63 61 73 65 20 27 5c 22 se.'\\\\':.return.'\\';.case.'\"
db4a0 27 3a 0a 72 65 74 75 72 6e 20 27 22 27 3b 0a 63 61 73 65 20 27 5c 62 27 3a 0a 72 65 74 75 72 6e ':.return.'"';.case.'\b':.return
db4c0 20 63 68 72 28 38 29 3b 0a 63 61 73 65 20 27 5c 66 27 3a 0a 72 65 74 75 72 6e 20 63 68 72 28 31 .chr(8);.case.'\f':.return.chr(1
db4e0 32 29 3b 0a 63 61 73 65 20 27 5c 6e 27 3a 0a 72 65 74 75 72 6e 20 22 5c 6e 22 3b 0a 63 61 73 65 2);.case.'\n':.return."\n";.case
db500 20 27 5c 72 27 3a 0a 72 65 74 75 72 6e 20 22 5c 72 22 3b 0a 63 61 73 65 20 27 5c 74 27 3a 0a 72 .'\r':.return."\r";.case.'\t':.r
db520 65 74 75 72 6e 20 22 5c 74 22 3b 0a 63 61 73 65 20 27 5c 2f 27 3a 0a 72 65 74 75 72 6e 20 22 2f eturn."\t";.case.'\/':.return."/
db540 22 3b 0a 64 65 66 61 75 6c 74 3a 0a 72 65 74 75 72 6e 20 68 74 6d 6c 5f 65 6e 74 69 74 79 5f 64 ";.default:.return.html_entity_d
db560 65 63 6f 64 65 28 27 26 23 78 27 2e 6c 74 72 69 6d 28 73 75 62 73 74 72 28 24 6d 61 74 63 68 5b ecode('&#x'.ltrim(substr($match[
db580 30 5d 2c 20 32 29 2c 20 27 30 27 29 2e 27 3b 27 2c 20 30 2c 20 27 55 54 46 2d 38 27 29 3b 0a 7d 0],.2),.'0').';',.0,.'UTF-8');.}
db5a0 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 70 6f 70 53 74 61 63 6b 28 24 6e .}..private.function.popStack($n
db5c0 29 0a 7b 0a 24 74 68 69 73 2d 3e 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 ).{.$this->stack.=.array_slice($
db5e0 74 68 69 73 2d 3e 73 74 61 63 6b 2c 20 30 2c 20 2d 20 28 32 20 2a 20 24 6e 29 29 3b 0a 24 74 68 this->stack,.0,.-.(2.*.$n));.$th
db600 69 73 2d 3e 76 73 74 61 63 6b 20 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e is->vstack.=.array_slice($this->
db620 76 73 74 61 63 6b 2c 20 30 2c 20 2d 20 24 6e 29 3b 0a 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 20 vstack,.0,.-.$n);.$this->lstack.
db640 3d 20 61 72 72 61 79 5f 73 6c 69 63 65 28 24 74 68 69 73 2d 3e 6c 73 74 61 63 6b 2c 20 30 2c 20 =.array_slice($this->lstack,.0,.
db660 2d 20 24 6e 29 3b 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 6c 65 78 28 29 -.$n);.}..private.function.lex()
db680 0a 7b 0a 24 74 6f 6b 65 6e 20 3d 20 24 74 68 69 73 2d 3e 6c 65 78 65 72 2d 3e 6c 65 78 28 29 20 .{.$token.=.$this->lexer->lex().
db6a0 3f 3a 20 31 3b 20 0a 20 0a 20 69 66 20 28 21 69 73 5f 6e 75 6d 65 72 69 63 28 24 74 6f 6b 65 6e ?:.1;.....if.(!is_numeric($token
db6c0 29 29 20 7b 0a 24 74 6f 6b 65 6e 20 3d 20 69 73 73 65 74 28 24 74 68 69 73 2d 3e 73 79 6d 62 6f )).{.$token.=.isset($this->symbo
db6e0 6c 73 5b 24 74 6f 6b 65 6e 5d 29 20 3f 20 24 74 68 69 73 2d 3e 73 79 6d 62 6f 6c 73 5b 24 74 6f ls[$token]).?.$this->symbols[$to
db700 6b 65 6e 5d 20 3a 20 24 74 6f 6b 65 6e 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 6f 6b 65 6e 3b ken].:.$token;.}..return.$token;
db720 0a 7d 0a 0a 70 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 66 61 69 6c 4f 6e 42 4f 4d 28 24 .}..private.function.failOnBOM($
db740 69 6e 70 75 74 29 0a 7b 0a 0a 20 24 62 6f 6d 20 3d 20 22 5c 78 45 46 5c 78 42 42 5c 78 42 46 22 input).{...$bom.=."\xEF\xBB\xBF"
db760 3b 0a 0a 69 66 20 28 73 75 62 73 74 72 28 24 69 6e 70 75 74 2c 20 30 2c 20 33 29 20 3d 3d 3d 20 ;..if.(substr($input,.0,.3).===.
db780 24 62 6f 6d 29 20 7b 0a 24 74 68 69 73 2d 3e 70 61 72 73 65 45 72 72 6f 72 28 22 42 4f 4d 20 64 $bom).{.$this->parseError("BOM.d
db7a0 65 74 65 63 74 65 64 2c 20 6d 61 6b 65 20 73 75 72 65 20 79 6f 75 72 20 69 6e 70 75 74 20 64 6f etected,.make.sure.your.input.do
db7c0 65 73 20 6e 6f 74 20 69 6e 63 6c 75 64 65 20 61 20 55 6e 69 63 6f 64 65 20 42 79 74 65 2d 4f 72 es.not.include.a.Unicode.Byte-Or
db7e0 64 65 72 2d 4d 61 72 6b 22 2c 20 61 72 72 61 79 28 29 29 3b 0a 7d 0a 7d 0a 7d 0a 3c 3f 70 68 70 der-Mark",.array());.}.}.}.<?php
db800 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 6e 61 6d 65 73 70 61 63 65 20 53 65 6c 64 5c 4a 73 6f 6e 4c 69 ...........namespace.Seld\JsonLi
db820 6e 74 3b 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 4c 65 78 65 72 0a 7b 0a 70 72 69 76 61 74 65 20 nt;.......class.Lexer.{.private.
db840 24 45 4f 46 20 3d 20 31 3b 0a 70 72 69 76 61 74 65 20 24 72 75 6c 65 73 20 3d 20 61 72 72 61 79 $EOF.=.1;.private.$rules.=.array
db860 28 0a 30 20 3d 3e 20 27 2f 5e 5c 73 2b 2f 27 2c 0a 31 20 3d 3e 20 27 2f 5e 2d 3f 28 5b 30 2d 39 (.0.=>.'/^\s+/',.1.=>.'/^-?([0-9
db880 5d 7c 5b 31 2d 39 5d 5b 30 2d 39 5d 2b 29 28 5c 2e 5b 30 2d 39 5d 2b 29 3f 28 5b 65 45 5d 5b 2b ]|[1-9][0-9]+)(\.[0-9]+)?([eE][+
db8a0 2d 5d 3f 5b 30 2d 39 5d 2b 29 3f 5c 62 2f 27 2c 0a 32 20 3d 3e 20 27 7b 5e 22 28 5c 5c 5c 5c 5b -]?[0-9]+)?\b/',.2.=>.'{^"(\\\\[
db8c0 22 62 66 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 "bfnrt/\\\\]|\\\\u[a-fA-F0-9]{4}
db8e0 7c 5b 5e 5c 30 2d 5c 78 30 39 5c 78 30 61 2d 5c 78 31 66 5c 5c 5c 5c 22 5d 29 2a 22 7d 27 2c 0a |[^\0-\x09\x0a-\x1f\\\\"])*"}',.
db900 33 20 3d 3e 20 27 2f 5e 5c 7b 2f 27 2c 0a 34 20 3d 3e 20 27 2f 5e 5c 7d 2f 27 2c 0a 35 20 3d 3e 3.=>.'/^\{/',.4.=>.'/^\}/',.5.=>
db920 20 27 2f 5e 5c 5b 2f 27 2c 0a 36 20 3d 3e 20 27 2f 5e 5c 5d 2f 27 2c 0a 37 20 3d 3e 20 27 2f 5e .'/^\[/',.6.=>.'/^\]/',.7.=>.'/^
db940 2c 2f 27 2c 0a 38 20 3d 3e 20 27 2f 5e 3a 2f 27 2c 0a 39 20 3d 3e 20 27 2f 5e 74 72 75 65 5c 62 ,/',.8.=>.'/^:/',.9.=>.'/^true\b
db960 2f 27 2c 0a 31 30 20 3d 3e 20 27 2f 5e 66 61 6c 73 65 5c 62 2f 27 2c 0a 31 31 20 3d 3e 20 27 2f /',.10.=>.'/^false\b/',.11.=>.'/
db980 5e 6e 75 6c 6c 5c 62 2f 27 2c 0a 31 32 20 3d 3e 20 27 2f 5e 24 2f 27 2c 0a 31 33 20 3d 3e 20 27 ^null\b/',.12.=>.'/^$/',.13.=>.'
db9a0 2f 5e 2e 2f 27 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 64 69 74 69 6f 6e 73 20 3d /^./',.);..private.$conditions.=
db9c0 20 61 72 72 61 79 28 0a 22 49 4e 49 54 49 41 4c 22 20 3d 3e 20 61 72 72 61 79 28 0a 22 72 75 6c .array(."INITIAL".=>.array(."rul
db9e0 65 73 22 20 3d 3e 20 61 72 72 61 79 28 30 2c 31 2c 32 2c 33 2c 34 2c 35 2c 36 2c 37 2c 38 2c 39 es".=>.array(0,1,2,3,4,5,6,7,8,9
dba00 2c 31 30 2c 31 31 2c 31 32 2c 31 33 29 2c 0a 22 69 6e 63 6c 75 73 69 76 65 22 20 3d 3e 20 74 72 ,10,11,12,13),."inclusive".=>.tr
dba20 75 65 2c 0a 29 2c 0a 29 3b 0a 0a 70 72 69 76 61 74 65 20 24 63 6f 6e 64 69 74 69 6f 6e 53 74 61 ue,.),.);..private.$conditionSta
dba40 63 6b 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 6d 6f 72 ck;.private.$input;.private.$mor
dba60 65 3b 0a 70 72 69 76 61 74 65 20 24 64 6f 6e 65 3b 0a 70 72 69 76 61 74 65 20 24 6d 61 74 63 68 e;.private.$done;.private.$match
dba80 65 64 3b 0a 0a 70 75 62 6c 69 63 20 24 6d 61 74 63 68 3b 0a 70 75 62 6c 69 63 20 24 79 79 6c 69 ed;..public.$match;.public.$yyli
dbaa0 6e 65 6e 6f 3b 0a 70 75 62 6c 69 63 20 24 79 79 6c 65 6e 67 3b 0a 70 75 62 6c 69 63 20 24 79 79 neno;.public.$yyleng;.public.$yy
dbac0 74 65 78 74 3b 0a 70 75 62 6c 69 63 20 24 79 79 6c 6c 6f 63 3b 0a 0a 70 75 62 6c 69 63 20 66 75 text;.public.$yylloc;..public.fu
dbae0 6e 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 nction.lex().{.$r.=.$this->next(
dbb00 29 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 );.if.(!$r.instanceof.Undefined)
dbb20 20 7b 0a 72 65 74 75 72 6e 20 24 72 3b 0a 7d 0a 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 6c .{.return.$r;.}..return.$this->l
dbb40 65 78 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 ex();.}..public.function.setInpu
dbb60 74 28 24 69 6e 70 75 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 t($input).{.$this->input.=.$inpu
dbb80 74 3b 0a 24 74 68 69 73 2d 3e 6d 6f 72 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 64 t;.$this->more.=.false;.$this->d
dbba0 6f 6e 65 20 3d 20 66 61 6c 73 65 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 69 6e 65 6e 6f 20 3d 20 24 one.=.false;.$this->yylineno.=.$
dbbc0 74 68 69 73 2d 3e 79 79 6c 65 6e 67 20 3d 20 30 3b 0a 24 74 68 69 73 2d 3e 79 79 74 65 78 74 20 this->yyleng.=.0;.$this->yytext.
dbbe0 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 65 64 20 3d 20 24 74 68 69 73 2d 3e 6d 61 74 63 68 20 =.$this->matched.=.$this->match.
dbc00 3d 20 27 27 3b 0a 24 74 68 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 20 3d 20 61 72 =.'';.$this->conditionStack.=.ar
dbc20 72 61 79 28 27 49 4e 49 54 49 41 4c 27 29 3b 0a 24 74 68 69 73 2d 3e 79 79 6c 6c 6f 63 20 3d 20 ray('INITIAL');.$this->yylloc.=.
dbc40 61 72 72 61 79 28 27 66 69 72 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 31 2c 20 27 66 69 72 73 74 5f array('first_line'.=>.1,.'first_
dbc60 63 6f 6c 75 6d 6e 27 20 3d 3e 20 30 2c 20 27 6c 61 73 74 5f 6c 69 6e 65 27 20 3d 3e 20 31 2c 20 column'.=>.0,.'last_line'.=>.1,.
dbc80 27 6c 61 73 74 5f 63 6f 6c 75 6d 6e 27 20 3d 3e 20 30 29 3b 0a 0a 72 65 74 75 72 6e 20 24 74 68 'last_column'.=>.0);..return.$th
dbca0 69 73 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 68 6f 77 50 6f 73 69 74 is;.}..public.function.showPosit
dbcc0 69 6f 6e 28 29 0a 7b 0a 24 70 72 65 20 3d 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e 22 2c ion().{.$pre.=.str_replace("\n",
dbce0 20 27 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 50 61 73 74 49 6e 70 75 74 28 29 29 3b 0a 24 63 20 .'',.$this->getPastInput());.$c.
dbd00 3d 20 73 74 72 5f 72 65 70 65 61 74 28 27 2d 27 2c 20 73 74 72 6c 65 6e 28 24 70 72 65 29 29 3b =.str_repeat('-',.strlen($pre));
dbd20 20 0a 0a 72 65 74 75 72 6e 20 24 70 72 65 20 2e 20 73 74 72 5f 72 65 70 6c 61 63 65 28 22 5c 6e ...return.$pre...str_replace("\n
dbd40 22 2c 20 27 27 2c 20 24 74 68 69 73 2d 3e 67 65 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 ",.'',.$this->getUpcomingInput()
dbd60 29 20 2e 20 22 5c 6e 22 20 2e 20 24 63 20 2e 20 22 5e 22 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 )..."\n"...$c..."^";.}..public.f
dbd80 75 6e 63 74 69 6f 6e 20 67 65 74 50 61 73 74 49 6e 70 75 74 28 29 0a 7b 0a 24 70 61 73 74 20 3d unction.getPastInput().{.$past.=
dbda0 20 73 75 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 .substr($this->matched,.0,.strle
dbdc0 6e 28 24 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 n($this->matched).-.strlen($this
dbde0 2d 3e 6d 61 74 63 68 29 29 3b 0a 0a 72 65 74 75 72 6e 20 28 73 74 72 6c 65 6e 28 24 70 61 73 74 ->match));..return.(strlen($past
dbe00 29 20 3e 20 32 30 20 3f 20 27 2e 2e 2e 27 20 3a 20 27 27 29 20 2e 20 73 75 62 73 74 72 28 24 70 ).>.20.?.'...'.:.'')...substr($p
dbe20 61 73 74 2c 20 2d 32 30 29 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 ast,.-20);.}..public.function.ge
dbe40 74 55 70 63 6f 6d 69 6e 67 49 6e 70 75 74 28 29 0a 7b 0a 24 6e 65 78 74 20 3d 20 24 74 68 69 73 tUpcomingInput().{.$next.=.$this
dbe60 2d 3e 6d 61 74 63 68 3b 0a 69 66 20 28 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 20 3c 20 32 30 29 ->match;.if.(strlen($next).<.20)
dbe80 20 7b 0a 24 6e 65 78 74 20 2e 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e 69 6e 70 75 74 2c .{.$next..=.substr($this->input,
dbea0 20 30 2c 20 32 30 20 2d 20 73 74 72 6c 65 6e 28 24 6e 65 78 74 29 29 3b 0a 7d 0a 0a 72 65 74 75 .0,.20.-.strlen($next));.}..retu
dbec0 72 6e 20 73 75 62 73 74 72 28 24 6e 65 78 74 2c 20 30 2c 20 32 30 29 20 2e 20 28 73 74 72 6c 65 rn.substr($next,.0,.20)...(strle
dbee0 6e 28 24 6e 65 78 74 29 20 3e 20 32 30 20 3f 20 27 2e 2e 2e 27 20 3a 20 27 27 29 3b 0a 7d 0a 0a n($next).>.20.?.'...'.:.'');.}..
dbf00 70 72 6f 74 65 63 74 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 protected.function.parseError($s
dbf20 74 72 2c 20 24 68 61 73 68 29 0a 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 45 78 63 65 70 74 69 6f tr,.$hash).{.throw.new.\Exceptio
dbf40 6e 28 24 73 74 72 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 n($str);.}..private.function.nex
dbf60 74 28 29 0a 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 t().{.if.($this->done).{.return.
dbf80 24 74 68 69 73 2d 3e 45 4f 46 3b 0a 7d 0a 69 66 20 28 21 24 74 68 69 73 2d 3e 69 6e 70 75 74 29 $this->EOF;.}.if.(!$this->input)
dbfa0 20 7b 0a 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 .{.$this->done.=.true;.}..$token
dbfc0 20 3d 20 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 .=.null;.$match.=.null;.$col.=.n
dbfe0 75 6c 6c 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 ull;.$lines.=.null;..if.(!$this-
dc000 3e 6d 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 >more).{.$this->yytext.=.'';.$th
dc020 69 73 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 is->match.=.'';.}..$rules.=.$thi
dc040 73 2d 3e 67 65 74 43 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 s->getCurrentRules();.$rulesLen.
dc060 3d 20 63 6f 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 =.count($rules);..for.($i=0;.$i.
dc080 3c 20 24 72 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 <.$rulesLen;.$i++).{.if.(preg_ma
dc0a0 74 63 68 28 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 tch($this->rules[$rules[$i]],.$t
dc0c0 68 69 73 2d 3e 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 his->input,.$match)).{.preg_matc
dc0e0 68 5f 61 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 h_all('/\n.*/',.$match[0],.$line
dc100 73 29 3b 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 s);.$lines.=.$lines[0];.if.($lin
dc120 65 73 29 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 es).{.$this->yylineno.+=.count($
dc140 6c 69 6e 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 lines);.}..$this->yylloc.=.array
dc160 28 0a 27 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 (.'first_line'.=>.$this->yylloc[
dc180 27 6c 61 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 'last_line'],.'last_line'.=>.$th
dc1a0 69 73 2d 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 is->yylineno+1,.'first_column'.=
dc1c0 3e 20 24 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 >.$this->yylloc['last_column'],.
dc1e0 27 6c 61 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 'last_column'.=>.$lines.?.strlen
dc200 28 24 6c 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 ($lines[count($lines).-.1]).-.1.
dc220 3a 20 24 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 :.$this->yylloc['last_column'].+
dc240 20 73 74 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 .strlen($match[0]),.);.$this->yy
dc260 74 65 78 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 text..=.$match[0];.$this->match.
dc280 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 65 73 20 3d 20 24 .=.$match[0];.$this->matches.=.$
dc2a0 6d 61 74 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 match;.$this->yyleng.=.strlen($t
dc2c0 68 69 73 2d 3e 79 79 74 65 78 74 29 3b 0a 24 74 68 69 73 2d 3e 6d 6f 72 65 20 3d 20 66 61 6c 73 his->yytext);.$this->more.=.fals
dc2e0 65 3b 0a 24 74 68 69 73 2d 3e 69 6e 70 75 74 20 3d 20 73 75 62 73 74 72 28 24 74 68 69 73 2d 3e e;.$this->input.=.substr($this->
dc300 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
dc320 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.=
dc340 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]
dc360 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
dc380 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
dc3a0 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 0a 72 65 74 75 72 6e oken).{.return.$token;.}..return
dc3c0 20 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 .new.Undefined();.}.}..if.($this
dc3e0 2d 3e 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->
dc400 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
dc420 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
dc440 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
dc460 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
dc480 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
dc4a0 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,.)
dc4c0 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
dc4e0 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
dc500 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
dc520 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_
dc540 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
dc560 72 69 76 61 74 65 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 43 75 72 72 65 6e 74 52 75 6c 65 73 28 rivate.function.getCurrentRules(
dc580 29 0a 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 ).{.return.$this->conditions[$th
dc5a0 69 73 2d 3e 63 6f 6e 64 69 74 69 6f 6e 53 74 61 63 6b 5b 63 6f 75 6e 74 28 24 74 68 69 73 2d 3e is->conditionStack[count($this->
dc5c0 63 6f 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 conditionStack)-1]]['rules'];.}.
dc5e0 0a 70 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 .private.function.performAction(
dc600 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 2c 20 24 59 59 5f 53 $avoiding_name_collisions,.$YY_S
dc620 54 41 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 TART).{.$YYSTATE.=.$YY_START;.sw
dc640 69 74 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 itch.($avoiding_name_collisions)
dc660 20 7b 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 .{.case.0:.break;.case.1:.return
dc680 20 36 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 .6;.break;.case.2:.$this->yytext
dc6a0 20 3d 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 .=.substr($this->yytext,.1,.$thi
dc6c0 73 2d 3e 79 79 6c 65 6e 67 2d 32 29 3b 0a 0a 72 65 74 75 72 6e 20 34 3b 0a 63 61 73 65 20 33 3a s->yyleng-2);..return.4;.case.3:
dc6e0 0a 72 65 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 .return.17;.case.4:.return.18;.c
dc700 61 73 65 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 ase.5:.return.23;.case.6:.return
dc720 20 32 34 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 .24;.case.7:.return.22;.case.8:.
dc740 72 65 74 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 return.21;.case.9:.return.10;.ca
dc760 73 65 20 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 se.10:.return.11;.case.11:.retur
dc780 6e 20 38 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 n.8;.case.12:.return.14;.case.13
dc7a0 3a 0a 72 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 :.return.'INVALID';.}.}.}.<?php.
dc7c0 0a 0a 0a 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 ..........namespace.Seld\JsonLin
dc7e0 74 3b 0a 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 t;..class.ParsingException.exten
dc800 64 73 20 5c 45 78 63 65 70 74 69 6f 6e 0a 7b 0a 70 72 6f 74 65 63 74 65 64 20 24 64 65 74 61 69 ds.\Exception.{.protected.$detai
dc820 6c 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 75 63 74 ls;..public.function.__construct
dc840 28 24 6d 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 ($message,.$details.=.array()).{
dc860 0a 24 74 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 .$this->details.=.$details;.pare
dc880 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
dc8a0 62 6c 69 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 blic.function.getDetails().{.ret
dc8c0 75 72 6e 20 24 74 68 69 73 2d 3e 64 65 74 61 69 6c 73 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a 0a 6e urn.$this->details;.}.}.<?php..n
dc8e0 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;
dc900 0a 0a 0a 0a 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 ........class.Undefined.extends.
dc920 43 6f 6e 73 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 Constraint.{....function.check($
dc940 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
dc960 75 6c 6c 2c 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 ull,.$i.=.null).{.if.(!is_object
dc980 28 24 73 63 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 ($schema)).{.return;.}..$path.=.
dc9a0 24 74 68 69 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 $this->incrementPath($path,.$i);
dc9c0 0a 0a 0a 20 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 ....$this->validateCommonPropert
dc9e0 69 65 73 28 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 ies($value,.$schema,.$path);....
dca00 24 74 68 69 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 $this->validateTypes($value,.$sc
dca20 68 65 6d 61 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 hema,.$path,.$i);...}..........p
dca40 75 62 6c 69 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 ublic.function.validateTypes($va
dca60 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c lue,.$schema.=.null,.$path.=.nul
dca80 6c 2c 20 24 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 l,.$i.=.null).{...if.(is_array($
dcaa0 76 61 6c 75 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 value)).{.$this->checkArray($val
dcac0 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 7d 0a 0a 0a 20 69 66 ue,.$schema,.$path,.$i);.}....if
dcae0 20 28 69 73 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 .(is_object($value).&&.isset($sc
dcb00 68 65 6d 61 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 hema->properties)).{.$this->chec
dcb20 6b 4f 62 6a 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 kObject($value,.$schema->propert
dcb40 69 65 73 2c 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 ies,.$path,.isset($schema->addit
dcb60 69 6f 6e 61 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 ionalProperties).?.$schema->addi
dcb80 74 69 6f 6e 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 tionalProperties.:.null);.}....i
dcba0 66 20 28 69 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 f.(is_string($value)).{.$this->c
dcbc0 68 65 63 6b 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 heckString($value,.$schema,.$pat
dcbe0 68 2c 20 24 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 h,.$i);.}....if.(is_numeric($val
dcc00 75 65 29 29 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 ue)).{.$this->checkNumber($value
dcc20 2c 20 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 ,.$schema,.$path,.$i);.}....if.(
dcc40 69 73 73 65 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 isset($schema->enum)).{.$this->c
dcc60 68 65 63 6b 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 heckEnum($value,.$schema,.$path,
dcc80 20 24 69 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e .$i);.}.}..........protected.fun
dcca0 63 74 69 6f 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 ction.validateCommonProperties($
dccc0 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
dcce0 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 ull,.$i.=.null).{...if.(isset($s
dcd00 63 68 65 6d 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 chema->extends)).{.$this->checkU
dcd20 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 65 78 74 65 6e 64 ndefined($value,.$schema->extend
dcd40 73 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 5f 6f 62 6a 65 63 s,.$path,.$i);.}....if.(is_objec
dcd60 74 28 24 76 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 t($value).&&.$value.instanceOf.U
dcd80 6e 64 65 66 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 ndefined).{.if.(isset($schema->r
dcda0 65 71 75 69 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 equired).&&.$schema->required).{
dcdc0 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 69 73 20 6d 69 73 73 .$this->addError($path,."is.miss
dcde0 69 6e 67 20 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 ing.and.it.is.required");.}.}.el
dce00 73 65 20 7b 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 se.{.$this->checkType($value,.$s
dce20 63 68 65 6d 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 chema,.$path);.}....if.(isset($s
dce40 63 68 65 6d 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 chema->disallow)).{.$initErrors.
dce60 3d 20 24 74 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 =.$this->getErrors();..$this->ch
dce80 65 63 6b 55 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 eckUndefined($value,.$schema->di
dcea0 73 61 6c 6c 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 sallow,.$path);....if.(count($th
dcec0 69 73 2d 3e 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 is->getErrors()).==.count($initE
dcee0 72 72 6f 72 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 rrors)).{.$this->addError($path,
dcf00 20 22 20 64 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 .".disallowed.value.was.matched"
dcf20 29 3b 0a 7d 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 );.}.else.{.$this->errors.=.$ini
dcf40 74 45 72 72 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 tErrors;.}.}.}.}<?php..namespace
dcf60 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a .JsonSchema\Constraints;........
dcf80 63 6c 61 73 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 class.Type.extends.Constraint.{.
dcfa0 0a 0a 0a 66 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 ...function.check($value.=.null,
dcfc0 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,.$
dcfe0 69 20 3d 20 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 i.=.null).{.$type.=.isset($schem
dd000 61 2d 3e 74 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 a->type).?.$schema->type.:.null;
dd020 0a 24 69 73 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 .$isValid.=.true;..if.(is_array(
dd040 24 74 79 70 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 $type)).{...$validatedOneType.=.
dd060 66 61 6c 73 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 false;.$errors.=.array();.foreac
dd080 68 20 28 24 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 h.($type.as.$tp).{.$validator.=.
dd0a0 6e 65 77 20 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 new.Type($this->checkMode);.$sub
dd0c0 53 63 68 65 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 Schema.=.new.\stdClass();.$subSc
dd0e0 68 65 6d 61 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 hema->type.=.$tp;.$validator->ch
dd100 65 63 6b 28 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 eck($value,.$subSchema,.$path,.n
dd120 75 6c 6c 29 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 ull);.$error.=.$validator->getEr
dd140 72 6f 72 73 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 rors();..if.(!count($error)).{.$
dd160 76 61 6c 69 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 validatedOneType.=.true;.break;.
dd180 7d 20 65 6c 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 }.else.{.$errors.=.$error;.}.}.i
dd1a0 66 20 28 21 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 f.(!$validatedOneType).{.return.
dd1c0 24 74 68 69 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 $this->addErrors($errors);.}.}.e
dd1e0 6c 73 65 69 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 lseif.(is_object($type)).{.$this
dd200 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 74 79 70 65 2c 20 ->checkUndefined($value,.$type,.
dd220 24 70 61 74 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 $path);.}.else.{.$isValid.=.$thi
dd240 73 2d 3e 76 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 s->validateType($value,.$type);.
dd260 7d 0a 0a 69 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 }..if.($isValid.===.false).{.$th
dd280 69 73 2d 3e 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 is->addError($path,.gettype($val
dd2a0 75 65 29 20 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 ue)...".value.found,.but.a."...$
dd2c0 74 79 70 65 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 type...".is.required");.}.}.....
dd2e0 0a 0a 0a 0a 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 .....protected.function.validate
dd300 54 79 70 65 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 Type($value,.$type).{...if.(!$ty
dd320 70 65 29 20 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 pe).{.return.true;.}..switch.($t
dd340 79 70 65 29 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 ype).{.case.'integer'.:.return.(
dd360 69 6e 74 65 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 integer)$value.==.$value.?.true.
dd380 3a 20 69 73 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 :.is_int($value);.case.'number'.
dd3a0 3a 0a 72 65 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 :.return.is_numeric($value);.cas
dd3c0 65 20 27 62 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 e.'boolean'.:.return.is_bool($va
dd3e0 6c 75 65 29 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 lue);.case.'object'.:.return.is_
dd400 6f 62 6a 65 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 object($value);...case.'array'.:
dd420 0a 72 65 74 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 .return.is_array($value);.case.'
dd440 73 74 72 69 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 string'.:.return.is_string($valu
dd460 65 29 3b 0a 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 e);.case.'null'.:.return.is_null
dd480 28 24 76 61 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 ($value);.case.'any'.:.return.tr
dd4a0 75 65 3b 0a 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 ue;.default:.throw.new.\InvalidA
dd4c0 72 67 75 6d 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 rgumentException((is_object($val
dd4e0 75 65 29 20 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 ue).?.'object'.:.$value)...'.is.
dd500 61 20 69 6e 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 a.invalid.type.for.'...$type);.}
dd520 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c .}.}<?php..namespace.JsonSchema\
dd540 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 53 63 68 65 6d 61 Constraints;........class.Schema
dd560 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 70 75 62 6c 69 63 20 .extends.Constraint.{....public.
dd580 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 73 63 68 65 6d 61 function.check($element,.$schema
dd5a0 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
dd5c0 29 0a 7b 0a 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 ).{.if.($schema.!==.null).{...$t
dd5e0 68 69 73 2d 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 his->checkUndefined($element,.$s
dd600 63 68 65 6d 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 chema,.'',.'');.}.elseif.(isset(
dd620 24 65 6c 65 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 $element->{$this->inlineSchemaPr
dd640 6f 70 65 72 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 operty})).{...$this->checkUndefi
dd660 6e 65 64 28 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 ned($element,.$element->{$this->
dd680 69 6e 6c 69 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 inlineSchemaProperty},.'',.'');.
dd6a0 7d 20 65 6c 73 65 20 7b 0a 74 68 72 6f 77 20 6e 65 77 20 5c 49 6e 76 61 6c 69 64 41 72 67 75 6d }.else.{.throw.new.\InvalidArgum
dd6c0 65 6e 74 45 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 entException('no.schema.found.to
dd6e0 20 76 65 72 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 .verify.against');.}.}.}<?php..n
dd700 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;
dd720 0a 0a 0a 0a 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 ........class.Number.extends.Con
dd740 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 straint.{....public.function.che
dd760 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 ck($element,.$schema.=.null,.$pa
dd780 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 th.=.null,.$i.=.null).{...if.(is
dd7a0 73 65 74 28 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 set($schema->minimum).&&.$elemen
dd7c0 74 20 3c 20 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 t.<.$schema->minimum).{.$this->a
dd7e0 64 64 45 72 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 ddError($path,."must.have.a.mini
dd800 6d 75 6d 20 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 mum.value.of."...$schema->minimu
dd820 6d 29 3b 0a 7d 0a 0a 0a 20 69 66 20 28 69 73 73 65 74 28 24 73 63 68 65 6d 61 2d 3e 6d 61 78 69 m);.}....if.(isset($schema->maxi
dd840 6d 75 6d 29 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 mum).&&.$element.>.$schema->maxi
dd860 6d 75 6d 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 mum).{.$this->addError($path,."m
dd880 75 73 74 20 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 ust.have.a.maximum.value.of."...
dd8a0 24 73 63 68 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 $schema->maximum);.}....if.(isse
dd8c0 74 28 24 73 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 t($schema->divisibleBy).&&.$elem
dd8e0 65 6e 74 20 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 ent.%.$schema->divisibleBy.!=.0)
dd900 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 69 73 20 6e 6f .{.$this->addError($path,."is.no
dd920 74 20 64 69 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 t.divisible.by."...$schema->divi
dd940 73 69 62 6c 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 sibleBy);.}.}.}<?php..namespace.
dd960 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a 0a 0a 63 JsonSchema\Constraints;........c
dd980 6c 61 73 73 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 lass.Object.extends.Constraint.{
dd9a0 0a 0a 0a 0a 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 ....function.check($element,.$de
dd9c0 66 69 6e 69 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 finition.=.null,.$path.=.null,.$
dd9e0 61 64 64 69 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 additionalProp.=.null).{...$this
dda00 2d 3e 76 61 6c 69 64 61 74 65 44 65 66 69 6e 69 74 69 6f 6e 28 24 65 6c 65 6d 65 6e 74 2c 20 24 ->validateDefinition($element,.$
dda20 64 65 66 69 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 definition,.$path);....$this->va
dda40 6c 69 64 61 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 lidateElement($element,.$definit
dda60 69 6f 6e 2c 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 ion,.$path,.$additionalProp);.}.
dda80 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 76 61 6c 69 64 61 74 .........public.function.validat
ddaa0 65 45 6c 65 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 eElement($element,.$objectDefini
ddac0 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
ddae0 74 69 6f 6e 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 tionalProp.=.null).{.foreach.($e
ddb00 6c 65 6d 65 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 lement.as.$i.=>.$value).{..$prop
ddb20 65 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 erty.=.$this->getProperty($eleme
ddb40 6e 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 nt,.$i,.new.Undefined());.$defin
ddb60 69 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 ition.=.$this->getProperty($obje
ddb80 63 74 44 65 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 ctDefinition,.$i);....if.($this-
ddba0 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 64 65 66 69 6e 69 74 69 6f 6e 2c 20 27 72 65 71 75 69 >getProperty($definition,.'requi
ddbc0 72 65 64 27 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 red').&&.!$property).{.$this->ad
ddbe0 64 45 72 72 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 dError($path,."the.property."...
ddc00 24 69 20 2e 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 $i...".is.required");.}....if.($
ddc20 61 64 64 69 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 additionalProp.===.false.&&.$thi
ddc40 73 2d 3e 69 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 s->inlineSchemaProperty.!==.$i.&
ddc60 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 61 64 64 45 72 72 6f &.!$definition).{.$this->addErro
ddc80 72 28 24 70 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 r($path,."The.property."...$i...
ddca0 22 20 69 73 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 ".is.not.defined.and.the.definit
ddcc0 69 6f 6e 20 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 ion.does.not.allow.additional.pr
ddce0 6f 70 65 72 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 operties");.}....if.($additional
ddd00 50 72 6f 70 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 Prop.&&.!$definition).{.$this->c
ddd20 68 65 63 6b 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 heckUndefined($value,.$additiona
ddd40 6c 50 72 6f 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 lProp,.$path,.$i);.}....$require
ddd60 20 3d 20 24 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 .=.$this->getProperty($definitio
ddd80 6e 2c 20 27 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 n,.'requires');.if.($require.&&.
ddda0 21 24 74 68 69 73 2d 3e 67 65 74 50 72 6f 70 65 72 74 79 28 24 65 6c 65 6d 65 6e 74 2c 20 24 72 !$this->getProperty($element,.$r
dddc0 65 71 75 69 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 equire)).{.$this->addError($path
ddde0 2c 20 22 74 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 ,."the.presence.of.the.property.
dde00 22 20 2e 20 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 "...$i...".requires.that."...$re
dde20 71 75 69 72 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 quire...".also.be.present");.}..
dde40 0a 20 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 61 6c 75 65 2c 20 ..$this->checkUndefined($value,.
dde60 24 64 65 66 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 $definition.?.:.new.\stdClass(),
dde80 20 24 70 61 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 .$path,.$i);.}.}.........public.
ddea0 66 75 6e 63 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 function.validateDefinition($ele
ddec0 6d 65 6e 74 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 ment,.$objectDefinition.=.null,.
ddee0 24 70 61 74 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 $path.=.null).{.foreach.($object
ddf00 44 65 66 69 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 Definition.as.$i.=>.$value).{.$p
ddf20 72 6f 70 65 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 roperty.=.$this->getProperty($el
ddf40 65 6d 65 6e 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 ement,.$i,.new.Undefined());.$de
ddf60 66 69 6e 69 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 finition.=.$this->getProperty($o
ddf80 62 6a 65 63 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 bjectDefinition,.$i);.$this->che
ddfa0 63 6b 55 6e 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 ckUndefined($property,.$definiti
ddfc0 6f 6e 2c 20 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 on,.$path,.$i);.}.}..........pro
ddfe0 74 65 63 74 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 tected.function.getProperty($ele
de000 6d 65 6e 74 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 ment,.$property,.$fallback.=.nul
de020 6c 29 0a 7b 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 l).{.if.(is_array($element).).{.
de040 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 70 72 6f 70 65 72 74 return.array_key_exists($propert
de060 79 2c 20 24 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 y,.$element).?.$element[$propert
de080 79 5d 20 3a 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 y].:.$fallback;.}.else.{.return.
de0a0 69 73 73 65 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 isset($element->$property).?.$el
de0c0 65 6d 65 6e 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 ement->$property.:.$fallback;.}.
de0e0 7d 0a 7d 3c 3f 70 68 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 }.}<?php..namespace.JsonSchema\C
de100 6f 6e 73 74 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 onstraints;.......interface.Cons
de120 74 72 61 69 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 traintInterface.{......function.
de140 67 65 74 45 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 getErrors();.......function.addE
de160 72 72 6f 72 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 rrors(array.$errors);........fun
de180 63 74 69 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 3b ction.addError($path,.$message);
de1a0 0a 0a 0a 0a 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 .......function.isValid();......
de1c0 0a 0a 0a 0a 0a 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 .....function.check($value,.$sch
de1e0 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e ema.=.null,.$path.=.null,.$i.=.n
de200 75 6c 6c 29 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 ull);.}<?php..namespace.JsonSche
de220 6d 61 5c 43 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 ma\Constraints;........abstract.
de240 63 6c 61 73 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 class.Constraint.implements.Cons
de260 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 63 68 65 traintInterface.{.protected.$che
de280 63 6b 4d 6f 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 ckMode.=.self::CHECK_MODE_NORMAL
de2a0 3b 0a 70 72 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 ;.protected.$errors.=.array();.p
de2c0 72 6f 74 65 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 rotected.$inlineSchemaProperty.=
de2e0 20 27 24 73 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 .'$schema';..const.CHECK_MODE_NO
de300 52 4d 41 4c 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 RMAL.=.1;.const.CHECK_MODE_TYPE_
de320 43 41 53 54 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 CAST.=.2;.....public.function.__
de340 63 6f 6e 73 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 construct($checkMode.=.self::CHE
de360 43 4b 5f 4d 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 CK_MODE_NORMAL).{.$this->checkMo
de380 64 65 20 3d 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 de.=.$checkMode;.}.....public.fu
de3a0 6e 63 74 69 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 nction.addError($path,.$message)
de3c0 0a 7b 0a 24 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 .{.$this->errors[].=.array(.'pro
de3e0 70 65 72 74 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 perty'.=>.$path,.'message'.=>.$m
de400 65 73 73 61 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 essage.);.}.....public.function.
de420 61 64 64 45 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 addErrors(array.$errors).{.$this
de440 2d 3e 65 72 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 ->errors.=.array_merge($this->er
de460 72 6f 72 73 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 rors,.$errors);.}.....public.fun
de480 63 74 69 6f 6e 20 67 65 74 45 72 72 6f 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 61 72 72 61 79 ction.getErrors().{.return.array
de4a0 5f 75 6e 69 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 _unique($this->errors,.SORT_REGU
de4c0 4c 41 52 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 LAR);.}.........protected.functi
de4e0 6f 6e 20 69 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 on.incrementPath($path,.$i).{.if
de500 20 28 24 70 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 .($path.!==.'').{.if.(is_int($i)
de520 29 20 7b 0a 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 ).{.$path..=.'['...$i...']';.}.e
de540 6c 73 65 20 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 lse.if.($i.==.'').{.$path..=.'';
de560 0a 7d 20 65 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 .}.else.{.$path..=.'.'...$i;.}.}
de580 20 65 6c 73 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 .else.{.$path.=.$i;.}..return.$p
de5a0 61 74 68 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 69 ath;.}..........protected.functi
de5c0 6f 6e 20 63 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 on.checkArray($value,.$schema.=.
de5e0 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 0a 7b null,.$path.=.null,.$i.=.null).{
de600 0a 24 76 61 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 .$validator.=.new.Collection($th
de620 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 65 63 is->checkMode);.$validator->chec
de640 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b 0a 0a k($value,.$schema,.$path,.$i);..
de660 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 $this->addErrors($validator->get
de680 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 Errors());.}..........protected.
de6a0 66 75 6e 63 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 function.checkObject($value,.$sc
de6c0 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.=.
de6e0 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 4f 62 6a 65 63 74 28 null).{.$validator.=.new.Object(
de700 24 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 $this->checkMode);.$validator->c
de720 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 heck($value,.$schema,.$path,.$i)
de740 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e ;..$this->addErrors($validator->
de760 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 getErrors());.}..........protect
de780 65 64 20 66 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 ed.function.checkType($value,.$s
de7a0 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.=
de7c0 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 54 79 70 65 28 24 .null).{.$validator.=.new.Type($
de7e0 74 68 69 73 2d 3e 63 68 65 63 6b 4d 6f 64 65 29 3b 0a 24 76 61 6c 69 64 61 74 6f 72 2d 3e 63 68 this->checkMode);.$validator->ch
de800 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 61 74 68 2c 20 24 69 29 3b eck($value,.$schema,.$path,.$i);
de820 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 ..$this->addErrors($validator->g
de840 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 etErrors());.}..........protecte
de860 64 20 66 75 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 d.function.checkUndefined($value
de880 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c 6c 2c 20 ,.$schema.=.null,.$path.=.null,.
de8a0 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 55 6e $i.=.null).{.$validator.=.new.Un
de8c0 64 65 66 69 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 defined($this->checkMode);.$vali
de8e0 64 61 74 6f 72 2d 3e 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 2c 20 24 70 dator->check($value,.$schema,.$p
de900 61 74 68 2c 20 24 69 29 3b 0a 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c ath,.$i);..$this->addErrors($val
de920 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a 0a 0a 0a 0a 0a 0a idator->getErrors());.}.........
de940 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 53 74 72 69 6e 67 28 .protected.function.checkString(
de960 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.=.
de980 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.=.
de9a0 6e 65 77 20 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 new.String($this->checkMode);.$v
de9c0 61 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 alidator->check($value,.$schema,
de9e0 20 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 .$path,.$i);..$this->addErrors($
dea00 76 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 validator->getErrors());.}......
dea20 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 4e 75 6d 62 ....protected.function.checkNumb
dea40 65 72 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 er($value,.$schema.=.null,.$path
dea60 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 .=.null,.$i.=.null).{.$validator
dea80 20 3d 20 6e 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 .=.new.Number($this->checkMode);
deaa0 0a 24 76 61 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 .$validator->check($value,.$sche
deac0 6d 61 2c 20 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 ma,.$path,.$i);..$this->addError
deae0 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 6f 72 73 28 29 29 3b 0a 7d 0a 0a 0a s($validator->getErrors());.}...
deb00 0a 0a 0a 0a 0a 0a 0a 70 72 6f 74 65 63 74 65 64 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 45 .......protected.function.checkE
deb20 6e 75 6d 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 num($value,.$schema.=.null,.$pat
deb40 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f h.=.null,.$i.=.null).{.$validato
deb60 72 20 3d 20 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 r.=.new.Enum($this->checkMode);.
deb80 24 76 61 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 $validator->check($value,.$schem
deba0 61 2c 20 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 a,.$path,.$i);..$this->addErrors
debc0 28 24 76 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 ($validator->getErrors());.}....
debe0 0a 70 75 62 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 .public.function.isValid().{.ret
dec00 75 72 6e 20 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 urn.!$this->getErrors();.}.}<?ph
dec20 70 0a 0a 6e 61 6d 65 73 70 61 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 p..namespace.JsonSchema\Constrai
dec40 6e 74 73 3b 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 nts;........class.Collection.ext
dec60 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
dec80 74 69 6f 6e 20 63 68 65 63 6b 28 24 76 61 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c tion.check($value,.$schema.=.nul
deca0 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 0a 20 l,.$path.=.null,.$i.=.null).{...
decc0 69 66 20 28 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 if.(isset($schema->minItems).&&.
dece0 63 6f 75 6e 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 count($value).<.$schema->minItem
ded00 73 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 54 68 65 s).{.$this->addError($path,."The
ded20 72 65 20 6d 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 re.must.be.a.minimum.of."...$sch
ded40 65 6d 61 2d 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 ema->minItems...".in.the.array")
ded60 3b 0a 7d 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 49 74 65 6d ;.}...if.(isset($schema->maxItem
ded80 73 29 20 26 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 s).&&.count($value).>.$schema->m
deda0 61 78 49 74 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 axItems).{.$this->addError($path
dedc0 2c 20 22 54 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 ,."There.must.be.a.maximum.of.".
dede0 2e 20 24 73 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 ..$schema->maxItems...".in.the.a
dee00 72 72 61 79 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 rray");.}.....if.(isset($schema-
dee20 3e 75 6e 69 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 >uniqueItems).&&.array_unique($v
dee40 61 6c 75 65 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 alue).!=.$value).{.$this->addErr
dee60 6f 72 28 24 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 or($path,."There.are.no.duplicat
dee80 65 73 20 61 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 es.allowed.in.the.array");.}....
deea0 69 66 20 28 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 if.(isset($schema->items)).{.$th
deec0 69 73 2d 3e 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 is->validateItems($value,.$schem
deee0 61 2c 20 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 a,.$path,.$i);.}.}..........prot
def00 65 63 74 65 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 ected.function.validateItems($va
def20 6c 75 65 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c lue,.$schema.=.null,.$path.=.nul
def40 6c 2c 20 24 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 l,.$i.=.null).{.if.(!is_array($s
def60 63 68 65 6d 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 chema->items)).{...foreach.($val
def80 75 65 20 61 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 ue.as.$k.=>.$v).{.$initErrors.=.
defa0 24 74 68 69 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 $this->getErrors();....if.(!isse
defc0 74 28 24 73 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 t($schema->additionalItems).||.$
defe0 73 63 68 65 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 schema->additionalItems.===.fals
df000 65 29 20 7b 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 e).{.$this->checkUndefined($v,.$
df020 73 63 68 65 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 schema->items,.$path,.$k);.}....
df040 69 66 20 28 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 if.(count($initErrors).<.count($
df060 74 68 69 73 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 this->getErrors()).&&.(isset($sc
df080 68 65 6d 61 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 hema->additionalItems).&&.$schem
df0a0 61 2d 3e 61 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 a->additionalItems.!==.false)).{
df0c0 0a 24 73 65 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 .$secondErrors.=.$this->getError
df0e0 73 28 29 3b 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 s();.$this->checkUndefined($v,.$
df100 73 63 68 65 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 schema->additionalItems,.$path,.
df120 24 6b 29 3b 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 $k);.}....if.(isset($secondError
df140 73 29 20 26 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 s).&&.count($secondErrors).<.$th
df160 69 73 2d 3e 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 is->getErrors()).{.$this->errors
df180 20 3d 20 24 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 .=.$secondErrors;.}.elseif.(isse
df1a0 74 28 24 73 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 t($secondErrors).&&.count($secon
df1c0 64 45 72 72 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 dErrors).==.count($this->getErro
df1e0 72 73 28 29 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 rs())).{.$this->errors.=.$initEr
df200 72 6f 72 73 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 rors;.}.}.}.else.{...foreach.($v
df220 61 6c 75 65 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 alue.as.$k.=>.$v).{.if.(array_ke
df240 79 5f 65 78 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 y_exists($k,.$schema->items)).{.
df260 24 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 63 68 65 6d $this->checkUndefined($v,.$schem
df280 61 2d 3e 69 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 a->items[$k],.$path,.$k);.}.else
df2a0 20 7b 0a 0a 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 .{...if.(array_key_exists('addit
df2c0 69 6f 6e 61 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 ionalItems',.$schema).&&.$schema
df2e0 2d 3e 61 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 20 7b 0a 24 ->additionalItems.!==.false).{.$
df300 74 68 69 73 2d 3e 63 68 65 63 6b 55 6e 64 65 66 69 6e 65 64 28 24 76 2c 20 24 73 63 68 65 6d 61 this->checkUndefined($v,.$schema
df320 2d 3e 61 64 64 69 74 69 6f 6e 61 6c 49 74 65 6d 73 2c 20 24 70 61 74 68 2c 20 24 6b 29 3b 0a 7d ->additionalItems,.$path,.$k);.}
df340 20 65 6c 73 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 .else.{.$this->addError(.$path,.
df360 27 54 68 65 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 'The.item.'...$i...'['...$k...']
df380 20 69 73 20 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 .is.not.defined.in.the.objTypeDe
df3a0 66 20 61 6e 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 f.and.the.objTypeDef.does.not.al
df3c0 6c 6f 77 20 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 low.additional.properties'.);.}.
df3e0 7d 0a 7d 0a 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 }.}....for.($k.=.count($value);.
df400 24 6b 20 3c 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 $k.<.count($schema->items);.$k++
df420 29 20 7b 0a 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 ).{.$this->checkUndefined(new.Un
df440 64 65 66 69 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 defined(),.$schema->items[$k],.$
df460 70 61 74 68 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 path,.$k);.}.}.}.}<?php..namespa
df480 63 65 20 4a 73 6f 6e 53 63 68 65 6d 61 5c 43 6f 6e 73 74 72 61 69 6e 74 73 3b 0a 0a 0a 0a 0a 0a ce.JsonSchema\Constraints;......
df4a0 0a 0a 63 6c 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 ..class.Enum.extends.Constraint.
df4c0 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 63 6b 28 24 65 6c 65 6d {....public.function.check($elem
df4e0 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 74 68 20 3d 20 6e 75 6c ent,.$schema.=.null,.$path.=.nul
df500 6c 2c 20 24 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 l,.$i.=.null).{.foreach.($schema
df520 2d 3e 65 6e 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 ->enum.as.$possibleValue).{.if.(
df540 24 70 6f 73 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 $possibleValue.==.$element).{.$f
df560 6f 75 6e 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 21 69 73 ound.=.true;.break;.}.}..if.(!is
df580 73 65 74 28 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 set($found)).{.$this->addError($
df5a0 70 61 74 68 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 path,."does.not.have.a.value.in.
df5c0 74 68 65 20 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 the.enumeration."...implode(',.'
df5e0 2c 20 24 73 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 ,.$schema->enum));.}.}.}<?php..n
df600 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;
df620 0a 0a 0a 0a 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 ........class.String.extends.Con
df640 73 74 72 61 69 6e 74 0a 7b 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 63 68 65 straint.{....public.function.che
df660 63 6b 28 24 65 6c 65 6d 65 6e 74 2c 20 24 73 63 68 65 6d 61 20 3d 20 6e 75 6c 6c 2c 20 24 70 61 ck($element,.$schema.=.null,.$pa
df680 74 68 20 3d 20 6e 75 6c 6c 2c 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 0a 20 69 66 20 28 69 73 th.=.null,.$i.=.null).{...if.(is
df6a0 73 65 74 28 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 set($schema->maxLength).&&.strle
df6c0 6e 28 24 65 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 n($element).>.$schema->maxLength
df6e0 29 20 7b 0a 24 74 68 69 73 2d 3e 61 64 64 45 72 72 6f 72 28 24 70 61 74 68 2c 20 22 6d 75 73 74 ).{.$this->addError($path,."must
df700 20 62 65 20 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 .be.at.most."...$schema->maxLeng
df720 74 68 20 2e 20 22 20 63 68 61 72 61 63 74 65 72 73 20 6c 6f 6e 67 22 29 3b 0a 7d 0a 0a 0a 20 69 th...".characters.long");.}....i
df740 66 20 28 69 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 f.(isset($schema->minLength).&&.
df760 73 74 72 6c 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 strlen($element).<.$schema->minL
df780 65 6e 67 74 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 ength).{.$this->addError($path,.
df7a0 22 6d 75 73 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 "must.be.at.least."...$schema->m
df7c0 69 6e 4c 65 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 inLength...".characters.long");.
df7e0 7d 0a 0a 0a 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 }....if.(isset($schema->pattern)
df800 20 26 26 20 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 .&&.!preg_match('/'...$schema->p
df820 61 74 74 65 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 attern...'/',.$element)).{.$this
df840 2d 3e 61 64 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 ->addError($path,."does.not.matc
df860 68 20 74 68 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 h.the.regex.pattern."...$schema-
df880 3e 70 61 74 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 >pattern);.}.}.}<?php..namespace
df8a0 20 4a 73 6f 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 .JsonSchema;..use.JsonSchema\Con
df8c0 73 74 72 61 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 straints\Schema;.use.JsonSchema\
df8e0 43 6f 6e 73 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 Constraints\Constraint;.........
df900 63 6c 61 73 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 class.Validator.extends.Constrai
df920 6e 74 0a 7b 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 nt.{........function.check($valu
df940 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,
df960 20 24 69 20 3d 20 6e 75 6c 6c 29 0a 7b 0a 24 76 61 6c 69 64 61 74 6f 72 20 3d 20 6e 65 77 20 53 .$i.=.null).{.$validator.=.new.S
df980 63 68 65 6d 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 chema($this->checkMode);.$valida
df9a0 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 29 3b 0a 24 74 68 tor->check($value,.$schema);.$th
df9c0 69 73 2d 3e 61 64 64 45 72 72 6f 72 73 28 24 76 61 6c 69 64 61 74 6f 72 2d 3e 67 65 74 45 72 72 is->addErrors($validator->getErr
df9e0 6f 72 73 28 29 29 3b 0a 7d 0a 7d 3c 3f 70 68 70 0a 0a 0a 0a 72 65 71 75 69 72 65 5f 6f 6e 63 65 ors());.}.}<?php....require_once
dfa00 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 63 6f 6d 70 6f 73 65 72 27 20 2e 20 27 2f 61 75 74 6f 6c .__DIR__...'/composer'...'/autol
dfa20 6f 61 64 5f 72 65 61 6c 2e 70 68 70 27 3b 0a 0a 72 65 74 75 72 6e 20 43 6f 6d 70 6f 73 65 72 41 oad_real.php';..return.ComposerA
dfa40 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 39 65 37 64 38 36 36 64 63 36 36 64 39 32 31 39 65 66 38 utoloaderInit9e7d866dc66d9219ef8
dfa60 36 35 32 63 61 38 36 38 39 61 63 39 35 3a 3a 67 65 74 4c 6f 61 64 65 72 28 29 3b 0a 3c 3f 70 68 652ca8689ac95::getLoader();.<?ph
dfa80 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 64 69 72 6e 61 6d p....$vendorDir.=.dirname(dirnam
dfaa0 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 e(__FILE__));.$baseDir.=.dirname
dfac0 28 24 76 65 6e 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 ($vendorDir);..return.array(.'Sy
dfae0 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 59 61 6d 6c 5c 5c 27 20 3d 3e 20 61 72 72 mfony\\Component\\Yaml\\'.=>.arr
dfb00 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 27 29 ay($vendorDir...'/symfony/yaml')
dfb20 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 50 72 6f 63 65 73 73 5c 5c ,.'Symfony\\Component\\Process\\
dfb40 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e '.=>.array($vendorDir...'/symfon
dfb60 79 2f 70 72 6f 63 65 73 73 27 29 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c 43 6f 6d 70 6f 6e 65 6e 74 y/process'),.'Symfony\\Component
dfb80 5c 5c 46 69 6e 64 65 72 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 \\Finder\\'.=>.array($vendorDir.
dfba0 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 66 69 6e 64 65 72 27 29 2c 0a 27 53 79 6d 66 6f 6e 79 5c 5c ..'/symfony/finder'),.'Symfony\\
dfbc0 43 6f 6d 70 6f 6e 65 6e 74 5c 5c 43 6f 6e 73 6f 6c 65 5c 5c 27 20 3d 3e 20 61 72 72 61 79 28 24 Component\\Console\\'.=>.array($
dfbe0 76 65 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 27 29 2c vendorDir...'/symfony/console'),
dfc00 0a 27 53 65 6c 64 5c 5c 4a 73 6f 6e 4c 69 6e 74 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 .'Seld\\JsonLint'.=>.array($vend
dfc20 6f 72 44 69 72 20 2e 20 27 2f 73 65 6c 64 2f 6a 73 6f 6e 6c 69 6e 74 2f 73 72 63 27 29 2c 0a 27 orDir...'/seld/jsonlint/src'),.'
dfc40 4a 73 6f 6e 53 63 68 65 6d 61 27 20 3d 3e 20 61 72 72 61 79 28 24 76 65 6e 64 6f 72 44 69 72 20 JsonSchema'.=>.array($vendorDir.
dfc60 2e 20 27 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 ..'/justinrainbow/json-schema/sr
dfc80 63 27 29 2c 0a 27 43 6f 6d 70 6f 73 65 72 27 20 3d 3e 20 61 72 72 61 79 28 24 62 61 73 65 44 69 c'),.'Composer'.=>.array($baseDi
dfca0 72 20 2e 20 27 2f 73 72 63 27 29 2c 0a 29 3b 0a 3c 3f 70 68 70 0a 0a 0a 0a 24 76 65 6e 64 6f 72 r...'/src'),.);.<?php....$vendor
dfcc0 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 Dir.=.dirname(dirname(__FILE__))
dfce0 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 72 29 ;.$baseDir.=.dirname($vendorDir)
dfd00 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 24 76 65 ;..return.array(.);.<?php....$ve
dfd20 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 ndorDir.=.dirname(dirname(__FILE
dfd40 5f 5f 29 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 __));.$baseDir.=.dirname($vendor
dfd60 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 72 61 79 28 0a 27 46 69 6c 65 5f 49 74 65 72 61 Dir);..return.array(.'File_Itera
dfd80 74 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 tor'.=>.$vendorDir...'/phpunit/p
dfda0 68 70 2d 66 69 6c 65 2d 69 74 65 72 61 74 6f 72 2f 46 69 6c 65 2f 49 74 65 72 61 74 6f 72 2e 70 hp-file-iterator/File/Iterator.p
dfdc0 68 70 27 2c 0a 27 46 69 6c 65 5f 49 74 65 72 61 74 6f 72 5f 46 61 63 61 64 65 27 20 3d 3e 20 24 hp',.'File_Iterator_Facade'.=>.$
dfde0 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 66 69 6c 65 2d 69 vendorDir...'/phpunit/php-file-i
dfe00 74 65 72 61 74 6f 72 2f 46 69 6c 65 2f 49 74 65 72 61 74 6f 72 2f 46 61 63 61 64 65 2e 70 68 70 terator/File/Iterator/Facade.php
dfe20 27 2c 0a 27 46 69 6c 65 5f 49 74 65 72 61 74 6f 72 5f 46 61 63 74 6f 72 79 27 20 3d 3e 20 24 76 ',.'File_Iterator_Factory'.=>.$v
dfe40 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 66 69 6c 65 2d 69 74 endorDir...'/phpunit/php-file-it
dfe60 65 72 61 74 6f 72 2f 46 69 6c 65 2f 49 74 65 72 61 74 6f 72 2f 46 61 63 74 6f 72 79 2e 70 68 70 erator/File/Iterator/Factory.php
dfe80 27 2c 0a 27 50 48 50 55 6e 69 74 5f 45 78 74 65 6e 73 69 6f 6e 73 5f 47 72 6f 75 70 54 65 73 74 ',.'PHPUnit_Extensions_GroupTest
dfea0 53 75 69 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 Suite'.=>.$vendorDir...'/phpunit
dfec0 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 45 78 74 65 6e 73 69 6f 6e 73 2f 47 72 6f 75 /phpunit/PHPUnit/Extensions/Grou
dfee0 70 54 65 73 74 53 75 69 74 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 45 78 74 65 6e 73 pTestSuite.php',.'PHPUnit_Extens
dff00 69 6f 6e 73 5f 50 68 70 74 54 65 73 74 43 61 73 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 ions_PhptTestCase'.=>.$vendorDir
dff20 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 45 78 74 ...'/phpunit/phpunit/PHPUnit/Ext
dff40 65 6e 73 69 6f 6e 73 2f 50 68 70 74 54 65 73 74 43 61 73 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 ensions/PhptTestCase.php',.'PHPU
dff60 6e 69 74 5f 45 78 74 65 6e 73 69 6f 6e 73 5f 50 68 70 74 54 65 73 74 43 61 73 65 5f 4c 6f 67 67 nit_Extensions_PhptTestCase_Logg
dff80 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 er'.=>.$vendorDir...'/phpunit/ph
dffa0 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 45 78 74 65 6e 73 69 6f 6e 73 2f 50 68 70 74 54 65 73 punit/PHPUnit/Extensions/PhptTes
dffc0 74 43 61 73 65 2f 4c 6f 67 67 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 45 78 74 65 tCase/Logger.php',.'PHPUnit_Exte
dffe0 6e 73 69 6f 6e 73 5f 50 68 70 74 54 65 73 74 53 75 69 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 nsions_PhptTestSuite'.=>.$vendor
e0000 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f Dir...'/phpunit/phpunit/PHPUnit/
e0020 45 78 74 65 6e 73 69 6f 6e 73 2f 50 68 70 74 54 65 73 74 53 75 69 74 65 2e 70 68 70 27 2c 0a 27 Extensions/PhptTestSuite.php',.'
e0040 50 48 50 55 6e 69 74 5f 45 78 74 65 6e 73 69 6f 6e 73 5f 52 65 70 65 61 74 65 64 54 65 73 74 27 PHPUnit_Extensions_RepeatedTest'
e0060 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e .=>.$vendorDir...'/phpunit/phpun
e0080 69 74 2f 50 48 50 55 6e 69 74 2f 45 78 74 65 6e 73 69 6f 6e 73 2f 52 65 70 65 61 74 65 64 54 65 it/PHPUnit/Extensions/RepeatedTe
e00a0 73 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 45 78 74 65 6e 73 69 6f 6e 73 5f 54 65 73 st.php',.'PHPUnit_Extensions_Tes
e00c0 74 44 65 63 6f 72 61 74 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 tDecorator'.=>.$vendorDir...'/ph
e00e0 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 45 78 74 65 6e 73 69 6f 6e 73 punit/phpunit/PHPUnit/Extensions
e0100 2f 54 65 73 74 44 65 63 6f 72 61 74 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 45 78 /TestDecorator.php',.'PHPUnit_Ex
e0120 74 65 6e 73 69 6f 6e 73 5f 54 69 63 6b 65 74 4c 69 73 74 65 6e 65 72 27 20 3d 3e 20 24 76 65 6e tensions_TicketListener'.=>.$ven
e0140 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e dorDir...'/phpunit/phpunit/PHPUn
e0160 69 74 2f 45 78 74 65 6e 73 69 6f 6e 73 2f 54 69 63 6b 65 74 4c 69 73 74 65 6e 65 72 2e 70 68 70 it/Extensions/TicketListener.php
e0180 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 41 73 73 65 72 74 27 20 3d 3e ',.'PHPUnit_Framework_Assert'.=>
e01a0 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f .$vendorDir...'/phpunit/phpunit/
e01c0 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 41 73 73 65 72 74 2e 70 68 70 27 2c 0a 27 PHPUnit/Framework/Assert.php',.'
e01e0 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 41 73 73 65 72 74 69 6f 6e 46 61 69 6c 65 PHPUnit_Framework_AssertionFaile
e0200 64 45 72 72 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 dError'.=>.$vendorDir...'/phpuni
e0220 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 41 73 73 65 t/phpunit/PHPUnit/Framework/Asse
e0240 72 74 69 6f 6e 46 61 69 6c 65 64 45 72 72 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f rtionFailedError.php',.'PHPUnit_
e0260 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 Framework_Comparator'.=>.$vendor
e0280 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f Dir...'/phpunit/phpunit/PHPUnit/
e02a0 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 Framework/Comparator.php',.'PHPU
e02c0 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 46 61 63 74 6f 72 79 27 nit_Framework_ComparatorFactory'
e02e0 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e .=>.$vendorDir...'/phpunit/phpun
e0300 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 46 it/PHPUnit/Framework/ComparatorF
e0320 61 63 74 6f 72 79 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f actory.php',.'PHPUnit_Framework_
e0340 43 6f 6d 70 61 72 61 74 6f 72 5f 41 72 72 61 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 Comparator_Array'.=>.$vendorDir.
e0360 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d ..'/phpunit/phpunit/PHPUnit/Fram
e0380 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 41 72 72 61 79 2e 70 68 70 27 2c 0a 27 50 48 ework/Comparator/Array.php',.'PH
e03a0 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 44 4f 4d 44 6f PUnit_Framework_Comparator_DOMDo
e03c0 63 75 6d 65 6e 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 cument'.=>.$vendorDir...'/phpuni
e03e0 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 t/phpunit/PHPUnit/Framework/Comp
e0400 61 72 61 74 6f 72 2f 44 4f 4d 44 6f 63 75 6d 65 6e 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 arator/DOMDocument.php',.'PHPUni
e0420 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 44 6f 75 62 6c 65 27 20 3d t_Framework_Comparator_Double'.=
e0440 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 >.$vendorDir...'/phpunit/phpunit
e0460 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 44 6f /PHPUnit/Framework/Comparator/Do
e0480 75 62 6c 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f uble.php',.'PHPUnit_Framework_Co
e04a0 6d 70 61 72 61 74 6f 72 5f 45 78 63 65 70 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 mparator_Exception'.=>.$vendorDi
e04c0 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 r...'/phpunit/phpunit/PHPUnit/Fr
e04e0 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 amework/Comparator/Exception.php
e0500 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 ',.'PHPUnit_Framework_Comparator
e0520 5f 4d 6f 63 6b 4f 62 6a 65 63 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 _MockObject'.=>.$vendorDir...'/p
e0540 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b hpunit/phpunit/PHPUnit/Framework
e0560 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2e 70 68 70 27 2c 0a 27 50 48 /Comparator/MockObject.php',.'PH
e0580 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 4e 75 6d 65 72 PUnit_Framework_Comparator_Numer
e05a0 69 63 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 ic'.=>.$vendorDir...'/phpunit/ph
e05c0 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 punit/PHPUnit/Framework/Comparat
e05e0 6f 72 2f 4e 75 6d 65 72 69 63 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 or/Numeric.php',.'PHPUnit_Framew
e0600 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 4f 62 6a 65 63 74 27 20 3d 3e 20 24 76 65 6e 64 6f ork_Comparator_Object'.=>.$vendo
e0620 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 rDir...'/phpunit/phpunit/PHPUnit
e0640 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 4f 62 6a 65 63 74 2e 70 68 70 /Framework/Comparator/Object.php
e0660 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 ',.'PHPUnit_Framework_Comparator
e0680 5f 52 65 73 6f 75 72 63 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 _Resource'.=>.$vendorDir...'/php
e06a0 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 unit/phpunit/PHPUnit/Framework/C
e06c0 6f 6d 70 61 72 61 74 6f 72 2f 52 65 73 6f 75 72 63 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 omparator/Resource.php',.'PHPUni
e06e0 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 53 63 61 6c 61 72 27 20 3d t_Framework_Comparator_Scalar'.=
e0700 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 >.$vendorDir...'/phpunit/phpunit
e0720 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 53 63 /PHPUnit/Framework/Comparator/Sc
e0740 61 6c 61 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f alar.php',.'PHPUnit_Framework_Co
e0760 6d 70 61 72 61 74 6f 72 5f 53 70 6c 4f 62 6a 65 63 74 53 74 6f 72 61 67 65 27 20 3d 3e 20 24 76 mparator_SplObjectStorage'.=>.$v
e0780 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 endorDir...'/phpunit/phpunit/PHP
e07a0 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 53 70 6c 4f 62 6a Unit/Framework/Comparator/SplObj
e07c0 65 63 74 53 74 6f 72 61 67 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 ectStorage.php',.'PHPUnit_Framew
e07e0 6f 72 6b 5f 43 6f 6d 70 61 72 61 74 6f 72 5f 54 79 70 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 ork_Comparator_Type'.=>.$vendorD
e0800 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 ir...'/phpunit/phpunit/PHPUnit/F
e0820 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 61 74 6f 72 2f 54 79 70 65 2e 70 68 70 27 2c 0a 27 ramework/Comparator/Type.php',.'
e0840 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6d 70 61 72 69 73 6f 6e 46 61 69 6c PHPUnit_Framework_ComparisonFail
e0860 75 72 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 ure'.=>.$vendorDir...'/phpunit/p
e0880 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6d 70 61 72 69 hpunit/PHPUnit/Framework/Compari
e08a0 73 6f 6e 46 61 69 6c 75 72 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 sonFailure.php',.'PHPUnit_Framew
e08c0 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 ork_Constraint'.=>.$vendorDir...
e08e0 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 '/phpunit/phpunit/PHPUnit/Framew
e0900 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 ork/Constraint.php',.'PHPUnit_Fr
e0920 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 41 6e 64 27 20 3d 3e 20 24 76 65 6e 64 amework_Constraint_And'.=>.$vend
e0940 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
e0960 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 41 6e 64 2e 70 68 70 27 2c t/Framework/Constraint/And.php',
e0980 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 41 .'PHPUnit_Framework_Constraint_A
e09a0 72 72 61 79 48 61 73 4b 65 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 rrayHasKey'.=>.$vendorDir...'/ph
e09c0 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f punit/phpunit/PHPUnit/Framework/
e09e0 43 6f 6e 73 74 72 61 69 6e 74 2f 41 72 72 61 79 48 61 73 4b 65 79 2e 70 68 70 27 2c 0a 27 50 48 Constraint/ArrayHasKey.php',.'PH
e0a00 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 41 74 74 72 69 PUnit_Framework_Constraint_Attri
e0a20 62 75 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f bute'.=>.$vendorDir...'/phpunit/
e0a40 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 phpunit/PHPUnit/Framework/Constr
e0a60 61 69 6e 74 2f 41 74 74 72 69 62 75 74 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 aint/Attribute.php',.'PHPUnit_Fr
e0a80 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 43 61 6c 6c 62 61 63 6b 27 20 3d 3e 20 amework_Constraint_Callback'.=>.
e0aa0 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 $vendorDir...'/phpunit/phpunit/P
e0ac0 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 43 61 6c 6c HPUnit/Framework/Constraint/Call
e0ae0 62 61 63 6b 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f back.php',.'PHPUnit_Framework_Co
e0b00 6e 73 74 72 61 69 6e 74 5f 43 6c 61 73 73 48 61 73 41 74 74 72 69 62 75 74 65 27 20 3d 3e 20 24 nstraint_ClassHasAttribute'.=>.$
e0b20 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 vendorDir...'/phpunit/phpunit/PH
e0b40 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 43 6c 61 73 73 PUnit/Framework/Constraint/Class
e0b60 48 61 73 41 74 74 72 69 62 75 74 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d HasAttribute.php',.'PHPUnit_Fram
e0b80 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 43 6c 61 73 73 48 61 73 53 74 61 74 69 63 41 ework_Constraint_ClassHasStaticA
e0ba0 74 74 72 69 62 75 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 ttribute'.=>.$vendorDir...'/phpu
e0bc0 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f nit/phpunit/PHPUnit/Framework/Co
e0be0 6e 73 74 72 61 69 6e 74 2f 43 6c 61 73 73 48 61 73 53 74 61 74 69 63 41 74 74 72 69 62 75 74 65 nstraint/ClassHasStaticAttribute
e0c00 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 .php',.'PHPUnit_Framework_Constr
e0c20 61 69 6e 74 5f 43 6f 6d 70 6f 73 69 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 aint_Composite'.=>.$vendorDir...
e0c40 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 '/phpunit/phpunit/PHPUnit/Framew
e0c60 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 43 6f 6d 70 6f 73 69 74 65 2e 70 68 70 27 2c 0a 27 ork/Constraint/Composite.php',.'
e0c80 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 43 6f 75 PHPUnit_Framework_Constraint_Cou
e0ca0 6e 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 nt'.=>.$vendorDir...'/phpunit/ph
e0cc0 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 punit/PHPUnit/Framework/Constrai
e0ce0 6e 74 2f 43 6f 75 6e 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 nt/Count.php',.'PHPUnit_Framewor
e0d00 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 45 78 63 65 70 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 k_Constraint_Exception'.=>.$vend
e0d20 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
e0d40 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 45 78 63 65 70 74 69 6f 6e t/Framework/Constraint/Exception
e0d60 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 .php',.'PHPUnit_Framework_Constr
e0d80 61 69 6e 74 5f 45 78 63 65 70 74 69 6f 6e 43 6f 64 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 aint_ExceptionCode'.=>.$vendorDi
e0da0 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 r...'/phpunit/phpunit/PHPUnit/Fr
e0dc0 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 45 78 63 65 70 74 69 6f 6e 43 6f 64 65 amework/Constraint/ExceptionCode
e0de0 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 .php',.'PHPUnit_Framework_Constr
e0e00 61 69 6e 74 5f 45 78 63 65 70 74 69 6f 6e 4d 65 73 73 61 67 65 27 20 3d 3e 20 24 76 65 6e 64 6f aint_ExceptionMessage'.=>.$vendo
e0e20 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 rDir...'/phpunit/phpunit/PHPUnit
e0e40 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 45 78 63 65 70 74 69 6f 6e 4d /Framework/Constraint/ExceptionM
e0e60 65 73 73 61 67 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f essage.php',.'PHPUnit_Framework_
e0e80 43 6f 6e 73 74 72 61 69 6e 74 5f 46 69 6c 65 45 78 69 73 74 73 27 20 3d 3e 20 24 76 65 6e 64 6f Constraint_FileExists'.=>.$vendo
e0ea0 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 rDir...'/phpunit/phpunit/PHPUnit
e0ec0 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 46 69 6c 65 45 78 69 73 74 73 /Framework/Constraint/FileExists
e0ee0 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 .php',.'PHPUnit_Framework_Constr
e0f00 61 69 6e 74 5f 47 72 65 61 74 65 72 54 68 61 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 aint_GreaterThan'.=>.$vendorDir.
e0f20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d ..'/phpunit/phpunit/PHPUnit/Fram
e0f40 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 47 72 65 61 74 65 72 54 68 61 6e 2e 70 68 70 ework/Constraint/GreaterThan.php
e0f60 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 ',.'PHPUnit_Framework_Constraint
e0f80 5f 49 73 41 6e 79 74 68 69 6e 67 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 _IsAnything'.=>.$vendorDir...'/p
e0fa0 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b hpunit/phpunit/PHPUnit/Framework
e0fc0 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 41 6e 79 74 68 69 6e 67 2e 70 68 70 27 2c 0a 27 50 48 /Constraint/IsAnything.php',.'PH
e0fe0 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 49 73 45 6d 70 PUnit_Framework_Constraint_IsEmp
e1000 74 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 ty'.=>.$vendorDir...'/phpunit/ph
e1020 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 punit/PHPUnit/Framework/Constrai
e1040 6e 74 2f 49 73 45 6d 70 74 79 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 nt/IsEmpty.php',.'PHPUnit_Framew
e1060 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 49 73 45 71 75 61 6c 27 20 3d 3e 20 24 76 65 6e 64 ork_Constraint_IsEqual'.=>.$vend
e1080 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
e10a0 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 45 71 75 61 6c 2e 70 t/Framework/Constraint/IsEqual.p
e10c0 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 hp',.'PHPUnit_Framework_Constrai
e10e0 6e 74 5f 49 73 46 61 6c 73 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 nt_IsFalse'.=>.$vendorDir...'/ph
e1100 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f punit/phpunit/PHPUnit/Framework/
e1120 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 46 61 6c 73 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 Constraint/IsFalse.php',.'PHPUni
e1140 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 49 73 49 64 65 6e 74 69 63 t_Framework_Constraint_IsIdentic
e1160 61 6c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 al'.=>.$vendorDir...'/phpunit/ph
e1180 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 punit/PHPUnit/Framework/Constrai
e11a0 6e 74 2f 49 73 49 64 65 6e 74 69 63 61 6c 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 nt/IsIdentical.php',.'PHPUnit_Fr
e11c0 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 49 73 49 6e 73 74 61 6e 63 65 4f 66 27 amework_Constraint_IsInstanceOf'
e11e0 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e .=>.$vendorDir...'/phpunit/phpun
e1200 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f it/PHPUnit/Framework/Constraint/
e1220 49 73 49 6e 73 74 61 6e 63 65 4f 66 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d IsInstanceOf.php',.'PHPUnit_Fram
e1240 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 49 73 4a 73 6f 6e 27 20 3d 3e 20 24 76 65 6e ework_Constraint_IsJson'.=>.$ven
e1260 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e dorDir...'/phpunit/phpunit/PHPUn
e1280 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 4a 73 6f 6e 2e 70 it/Framework/Constraint/IsJson.p
e12a0 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 hp',.'PHPUnit_Framework_Constrai
e12c0 6e 74 5f 49 73 4e 75 6c 6c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 nt_IsNull'.=>.$vendorDir...'/php
e12e0 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 unit/phpunit/PHPUnit/Framework/C
e1300 6f 6e 73 74 72 61 69 6e 74 2f 49 73 4e 75 6c 6c 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f onstraint/IsNull.php',.'PHPUnit_
e1320 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 49 73 54 72 75 65 27 20 3d 3e 20 Framework_Constraint_IsTrue'.=>.
e1340 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 $vendorDir...'/phpunit/phpunit/P
e1360 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 54 72 HPUnit/Framework/Constraint/IsTr
e1380 75 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 ue.php',.'PHPUnit_Framework_Cons
e13a0 74 72 61 69 6e 74 5f 49 73 54 79 70 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 traint_IsType'.=>.$vendorDir...'
e13c0 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f /phpunit/phpunit/PHPUnit/Framewo
e13e0 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 49 73 54 79 70 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 rk/Constraint/IsType.php',.'PHPU
e1400 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 4a 73 6f 6e 4d 61 74 nit_Framework_Constraint_JsonMat
e1420 63 68 65 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f ches'.=>.$vendorDir...'/phpunit/
e1440 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 phpunit/PHPUnit/Framework/Constr
e1460 61 69 6e 74 2f 4a 73 6f 6e 4d 61 74 63 68 65 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f aint/JsonMatches.php',.'PHPUnit_
e1480 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 4a 73 6f 6e 4d 61 74 63 68 65 73 Framework_Constraint_JsonMatches
e14a0 5f 45 72 72 6f 72 4d 65 73 73 61 67 65 50 72 6f 76 69 64 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f _ErrorMessageProvider'.=>.$vendo
e14c0 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 rDir...'/phpunit/phpunit/PHPUnit
e14e0 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 4a 73 6f 6e 4d 61 74 63 68 65 /Framework/Constraint/JsonMatche
e1500 73 2f 45 72 72 6f 72 4d 65 73 73 61 67 65 50 72 6f 76 69 64 65 72 2e 70 68 70 27 2c 0a 27 50 48 s/ErrorMessageProvider.php',.'PH
e1520 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 4c 65 73 73 54 PUnit_Framework_Constraint_LessT
e1540 68 61 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 han'.=>.$vendorDir...'/phpunit/p
e1560 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 hpunit/PHPUnit/Framework/Constra
e1580 69 6e 74 2f 4c 65 73 73 54 68 61 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d int/LessThan.php',.'PHPUnit_Fram
e15a0 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 4e 6f 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 ework_Constraint_Not'.=>.$vendor
e15c0 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f Dir...'/phpunit/phpunit/PHPUnit/
e15e0 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 4e 6f 74 2e 70 68 70 27 2c 0a 27 Framework/Constraint/Not.php',.'
e1600 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 4f 62 6a PHPUnit_Framework_Constraint_Obj
e1620 65 63 74 48 61 73 41 74 74 72 69 62 75 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e ectHasAttribute'.=>.$vendorDir..
e1640 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 .'/phpunit/phpunit/PHPUnit/Frame
e1660 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 4f 62 6a 65 63 74 48 61 73 41 74 74 72 69 62 75 work/Constraint/ObjectHasAttribu
e1680 74 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 te.php',.'PHPUnit_Framework_Cons
e16a0 74 72 61 69 6e 74 5f 4f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 traint_Or'.=>.$vendorDir...'/php
e16c0 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 unit/phpunit/PHPUnit/Framework/C
e16e0 6f 6e 73 74 72 61 69 6e 74 2f 4f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d onstraint/Or.php',.'PHPUnit_Fram
e1700 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 50 43 52 45 4d 61 74 63 68 27 20 3d 3e 20 24 ework_Constraint_PCREMatch'.=>.$
e1720 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 vendorDir...'/phpunit/phpunit/PH
e1740 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 50 43 52 45 4d PUnit/Framework/Constraint/PCREM
e1760 61 74 63 68 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f atch.php',.'PHPUnit_Framework_Co
e1780 6e 73 74 72 61 69 6e 74 5f 53 61 6d 65 53 69 7a 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 nstraint_SameSize'.=>.$vendorDir
e17a0 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 ...'/phpunit/phpunit/PHPUnit/Fra
e17c0 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 53 61 6d 65 53 69 7a 65 2e 70 68 70 27 2c mework/Constraint/SameSize.php',
e17e0 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 53 .'PHPUnit_Framework_Constraint_S
e1800 74 72 69 6e 67 43 6f 6e 74 61 69 6e 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 tringContains'.=>.$vendorDir...'
e1820 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f /phpunit/phpunit/PHPUnit/Framewo
e1840 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 53 74 72 69 6e 67 43 6f 6e 74 61 69 6e 73 2e 70 68 70 rk/Constraint/StringContains.php
e1860 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 ',.'PHPUnit_Framework_Constraint
e1880 5f 53 74 72 69 6e 67 45 6e 64 73 57 69 74 68 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e _StringEndsWith'.=>.$vendorDir..
e18a0 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 .'/phpunit/phpunit/PHPUnit/Frame
e18c0 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 53 74 72 69 6e 67 45 6e 64 73 57 69 74 68 2e 70 work/Constraint/StringEndsWith.p
e18e0 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 hp',.'PHPUnit_Framework_Constrai
e1900 6e 74 5f 53 74 72 69 6e 67 4d 61 74 63 68 65 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 nt_StringMatches'.=>.$vendorDir.
e1920 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d ..'/phpunit/phpunit/PHPUnit/Fram
e1940 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 53 74 72 69 6e 67 4d 61 74 63 68 65 73 2e 70 ework/Constraint/StringMatches.p
e1960 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 hp',.'PHPUnit_Framework_Constrai
e1980 6e 74 5f 53 74 72 69 6e 67 53 74 61 72 74 73 57 69 74 68 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 nt_StringStartsWith'.=>.$vendorD
e19a0 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 ir...'/phpunit/phpunit/PHPUnit/F
e19c0 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 53 74 72 69 6e 67 53 74 61 72 74 73 ramework/Constraint/StringStarts
e19e0 57 69 74 68 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f With.php',.'PHPUnit_Framework_Co
e1a00 6e 73 74 72 61 69 6e 74 5f 54 72 61 76 65 72 73 61 62 6c 65 43 6f 6e 74 61 69 6e 73 27 20 3d 3e nstraint_TraversableContains'.=>
e1a20 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f .$vendorDir...'/phpunit/phpunit/
e1a40 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 54 72 61 PHPUnit/Framework/Constraint/Tra
e1a60 76 65 72 73 61 62 6c 65 43 6f 6e 74 61 69 6e 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f versableContains.php',.'PHPUnit_
e1a80 46 72 61 6d 65 77 6f 72 6b 5f 43 6f 6e 73 74 72 61 69 6e 74 5f 54 72 61 76 65 72 73 61 62 6c 65 Framework_Constraint_Traversable
e1aa0 43 6f 6e 74 61 69 6e 73 4f 6e 6c 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f ContainsOnly'.=>.$vendorDir...'/
e1ac0 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 phpunit/phpunit/PHPUnit/Framewor
e1ae0 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 54 72 61 76 65 72 73 61 62 6c 65 43 6f 6e 74 61 69 6e 73 k/Constraint/TraversableContains
e1b00 4f 6e 6c 79 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 43 6f Only.php',.'PHPUnit_Framework_Co
e1b20 6e 73 74 72 61 69 6e 74 5f 58 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f nstraint_Xor'.=>.$vendorDir...'/
e1b40 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 phpunit/phpunit/PHPUnit/Framewor
e1b60 6b 2f 43 6f 6e 73 74 72 61 69 6e 74 2f 58 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f k/Constraint/Xor.php',.'PHPUnit_
e1b80 46 72 61 6d 65 77 6f 72 6b 5f 45 72 72 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e Framework_Error'.=>.$vendorDir..
e1ba0 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 .'/phpunit/phpunit/PHPUnit/Frame
e1bc0 77 6f 72 6b 2f 45 72 72 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 work/Error.php',.'PHPUnit_Framew
e1be0 6f 72 6b 5f 45 72 72 6f 72 5f 44 65 70 72 65 63 61 74 65 64 27 20 3d 3e 20 24 76 65 6e 64 6f 72 ork_Error_Deprecated'.=>.$vendor
e1c00 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f Dir...'/phpunit/phpunit/PHPUnit/
e1c20 46 72 61 6d 65 77 6f 72 6b 2f 45 72 72 6f 72 2f 44 65 70 72 65 63 61 74 65 64 2e 70 68 70 27 2c Framework/Error/Deprecated.php',
e1c40 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 45 72 72 6f 72 5f 4e 6f 74 69 63 65 .'PHPUnit_Framework_Error_Notice
e1c60 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 '.=>.$vendorDir...'/phpunit/phpu
e1c80 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 45 72 72 6f 72 2f 4e 6f 74 69 nit/PHPUnit/Framework/Error/Noti
e1ca0 63 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 45 72 72 6f ce.php',.'PHPUnit_Framework_Erro
e1cc0 72 5f 57 61 72 6e 69 6e 67 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 r_Warning'.=>.$vendorDir...'/php
e1ce0 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 45 unit/phpunit/PHPUnit/Framework/E
e1d00 72 72 6f 72 2f 57 61 72 6e 69 6e 67 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d rror/Warning.php',.'PHPUnit_Fram
e1d20 65 77 6f 72 6b 5f 45 78 63 65 70 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e ework_Exception'.=>.$vendorDir..
e1d40 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 .'/phpunit/phpunit/PHPUnit/Frame
e1d60 77 6f 72 6b 2f 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 work/Exception.php',.'PHPUnit_Fr
e1d80 61 6d 65 77 6f 72 6b 5f 45 78 70 65 63 74 61 74 69 6f 6e 46 61 69 6c 65 64 45 78 63 65 70 74 69 amework_ExpectationFailedExcepti
e1da0 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 on'.=>.$vendorDir...'/phpunit/ph
e1dc0 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 45 78 70 65 63 74 61 74 punit/PHPUnit/Framework/Expectat
e1de0 69 6f 6e 46 61 69 6c 65 64 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 ionFailedException.php',.'PHPUni
e1e00 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 49 6e 63 6f 6d 70 6c 65 74 65 54 65 73 74 27 20 3d 3e 20 24 t_Framework_IncompleteTest'.=>.$
e1e20 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 vendorDir...'/phpunit/phpunit/PH
e1e40 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 49 6e 63 6f 6d 70 6c 65 74 65 54 65 73 74 2e 70 PUnit/Framework/IncompleteTest.p
e1e60 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 49 6e 63 6f 6d 70 6c 65 hp',.'PHPUnit_Framework_Incomple
e1e80 74 65 54 65 73 74 45 72 72 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 teTestError'.=>.$vendorDir...'/p
e1ea0 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b hpunit/phpunit/PHPUnit/Framework
e1ec0 2f 49 6e 63 6f 6d 70 6c 65 74 65 54 65 73 74 45 72 72 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 /IncompleteTestError.php',.'PHPU
e1ee0 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 42 75 69 6c 64 65 72 nit_Framework_MockObject_Builder
e1f00 5f 49 64 65 6e 74 69 74 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 _Identity'.=>.$vendorDir...'/php
e1f20 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 unit/phpunit-mock-objects/PHPUni
e1f40 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 42 75 69 6c 64 65 72 2f 49 t/Framework/MockObject/Builder/I
e1f60 64 65 6e 74 69 74 79 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b dentity.php',.'PHPUnit_Framework
e1f80 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 42 75 69 6c 64 65 72 5f 49 6e 76 6f 63 61 74 69 6f 6e 4d 6f _MockObject_Builder_InvocationMo
e1fa0 63 6b 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f cker'.=>.$vendorDir...'/phpunit/
e1fc0 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 phpunit-mock-objects/PHPUnit/Fra
e1fe0 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 42 75 69 6c 64 65 72 2f 49 6e 76 6f 63 61 mework/MockObject/Builder/Invoca
e2000 74 69 6f 6e 4d 6f 63 6b 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 tionMocker.php',.'PHPUnit_Framew
e2020 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 42 75 69 6c 64 65 72 5f 4d 61 74 63 68 27 20 3d 3e ork_MockObject_Builder_Match'.=>
e2040 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d .$vendorDir...'/phpunit/phpunit-
e2060 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d mock-objects/PHPUnit/Framework/M
e2080 6f 63 6b 4f 62 6a 65 63 74 2f 42 75 69 6c 64 65 72 2f 4d 61 74 63 68 2e 70 68 70 27 2c 0a 27 50 ockObject/Builder/Match.php',.'P
e20a0 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 42 75 69 6c HPUnit_Framework_MockObject_Buil
e20c0 64 65 72 5f 4d 65 74 68 6f 64 4e 61 6d 65 4d 61 74 63 68 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 der_MethodNameMatch'.=>.$vendorD
e20e0 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 ir...'/phpunit/phpunit-mock-obje
e2100 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 cts/PHPUnit/Framework/MockObject
e2120 2f 42 75 69 6c 64 65 72 2f 4d 65 74 68 6f 64 4e 61 6d 65 4d 61 74 63 68 2e 70 68 70 27 2c 0a 27 /Builder/MethodNameMatch.php',.'
e2140 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 42 75 69 PHPUnit_Framework_MockObject_Bui
e2160 6c 64 65 72 5f 4e 61 6d 65 73 70 61 63 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 lder_Namespace'.=>.$vendorDir...
e2180 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 '/phpunit/phpunit-mock-objects/P
e21a0 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 42 75 69 6c HPUnit/Framework/MockObject/Buil
e21c0 64 65 72 2f 4e 61 6d 65 73 70 61 63 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 der/Namespace.php',.'PHPUnit_Fra
e21e0 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 42 75 69 6c 64 65 72 5f 50 61 72 61 6d 65 mework_MockObject_Builder_Parame
e2200 74 65 72 73 4d 61 74 63 68 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 tersMatch'.=>.$vendorDir...'/php
e2220 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 unit/phpunit-mock-objects/PHPUni
e2240 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 42 75 69 6c 64 65 72 2f 50 t/Framework/MockObject/Builder/P
e2260 61 72 61 6d 65 74 65 72 73 4d 61 74 63 68 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 arametersMatch.php',.'PHPUnit_Fr
e2280 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 42 75 69 6c 64 65 72 5f 53 74 75 62 27 amework_MockObject_Builder_Stub'
e22a0 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e .=>.$vendorDir...'/phpunit/phpun
e22c0 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 it-mock-objects/PHPUnit/Framewor
e22e0 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 42 75 69 6c 64 65 72 2f 53 74 75 62 2e 70 68 70 27 2c 0a k/MockObject/Builder/Stub.php',.
e2300 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 47 65 'PHPUnit_Framework_MockObject_Ge
e2320 6e 65 72 61 74 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e nerator'.=>.$vendorDir...'/phpun
e2340 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f it/phpunit-mock-objects/PHPUnit/
e2360 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 47 65 6e 65 72 61 74 6f 72 2e 70 Framework/MockObject/Generator.p
e2380 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 hp',.'PHPUnit_Framework_MockObje
e23a0 63 74 5f 49 6e 76 6f 63 61 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 ct_Invocation'.=>.$vendorDir...'
e23c0 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 /phpunit/phpunit-mock-objects/PH
e23e0 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 49 6e 76 6f 63 PUnit/Framework/MockObject/Invoc
e2400 61 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d ation.php',.'PHPUnit_Framework_M
e2420 6f 63 6b 4f 62 6a 65 63 74 5f 49 6e 76 6f 63 61 74 69 6f 6e 4d 6f 63 6b 65 72 27 20 3d 3e 20 24 ockObject_InvocationMocker'.=>.$
e2440 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f vendorDir...'/phpunit/phpunit-mo
e2460 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 ck-objects/PHPUnit/Framework/Moc
e2480 6b 4f 62 6a 65 63 74 2f 49 6e 76 6f 63 61 74 69 6f 6e 4d 6f 63 6b 65 72 2e 70 68 70 27 2c 0a 27 kObject/InvocationMocker.php',.'
e24a0 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 49 6e 76 PHPUnit_Framework_MockObject_Inv
e24c0 6f 63 61 74 69 6f 6e 5f 4f 62 6a 65 63 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 ocation_Object'.=>.$vendorDir...
e24e0 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 '/phpunit/phpunit-mock-objects/P
e2500 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 49 6e 76 6f HPUnit/Framework/MockObject/Invo
e2520 63 61 74 69 6f 6e 2f 4f 62 6a 65 63 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 cation/Object.php',.'PHPUnit_Fra
e2540 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 49 6e 76 6f 63 61 74 69 6f 6e 5f 53 74 61 mework_MockObject_Invocation_Sta
e2560 74 69 63 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 tic'.=>.$vendorDir...'/phpunit/p
e2580 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d hpunit-mock-objects/PHPUnit/Fram
e25a0 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 49 6e 76 6f 63 61 74 69 6f 6e 2f 53 74 61 74 ework/MockObject/Invocation/Stat
e25c0 69 63 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b ic.php',.'PHPUnit_Framework_Mock
e25e0 4f 62 6a 65 63 74 5f 49 6e 76 6f 6b 61 62 6c 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 Object_Invokable'.=>.$vendorDir.
e2600 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 ..'/phpunit/phpunit-mock-objects
e2620 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 49 6e /PHPUnit/Framework/MockObject/In
e2640 76 6f 6b 61 62 6c 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b vokable.php',.'PHPUnit_Framework
e2660 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 68 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 _MockObject_Matcher'.=>.$vendorD
e2680 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 ir...'/phpunit/phpunit-mock-obje
e26a0 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 cts/PHPUnit/Framework/MockObject
e26c0 2f 4d 61 74 63 68 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 /Matcher.php',.'PHPUnit_Framewor
e26e0 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 68 65 72 5f 41 6e 79 49 6e 76 6f 6b 65 64 43 k_MockObject_Matcher_AnyInvokedC
e2700 6f 75 6e 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f ount'.=>.$vendorDir...'/phpunit/
e2720 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 phpunit-mock-objects/PHPUnit/Fra
e2740 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 65 72 2f 41 6e 79 49 6e 76 mework/MockObject/Matcher/AnyInv
e2760 6f 6b 65 64 43 6f 75 6e 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f okedCount.php',.'PHPUnit_Framewo
e2780 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 68 65 72 5f 41 6e 79 50 61 72 61 6d 65 74 rk_MockObject_Matcher_AnyParamet
e27a0 65 72 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 ers'.=>.$vendorDir...'/phpunit/p
e27c0 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d hpunit-mock-objects/PHPUnit/Fram
e27e0 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 65 72 2f 41 6e 79 50 61 72 61 ework/MockObject/Matcher/AnyPara
e2800 6d 65 74 65 72 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f meters.php',.'PHPUnit_Framework_
e2820 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 68 65 72 5f 49 6e 76 6f 63 61 74 69 6f 6e 27 20 3d MockObject_Matcher_Invocation'.=
e2840 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 >.$vendorDir...'/phpunit/phpunit
e2860 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f -mock-objects/PHPUnit/Framework/
e2880 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 65 72 2f 49 6e 76 6f 63 61 74 69 6f 6e 2e 70 68 MockObject/Matcher/Invocation.ph
e28a0 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 p',.'PHPUnit_Framework_MockObjec
e28c0 74 5f 4d 61 74 63 68 65 72 5f 49 6e 76 6f 6b 65 64 41 74 49 6e 64 65 78 27 20 3d 3e 20 24 76 65 t_Matcher_InvokedAtIndex'.=>.$ve
e28e0 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b ndorDir...'/phpunit/phpunit-mock
e2900 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f -objects/PHPUnit/Framework/MockO
e2920 62 6a 65 63 74 2f 4d 61 74 63 68 65 72 2f 49 6e 76 6f 6b 65 64 41 74 49 6e 64 65 78 2e 70 68 70 bject/Matcher/InvokedAtIndex.php
e2940 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 ',.'PHPUnit_Framework_MockObject
e2960 5f 4d 61 74 63 68 65 72 5f 49 6e 76 6f 6b 65 64 41 74 4c 65 61 73 74 4f 6e 63 65 27 20 3d 3e 20 _Matcher_InvokedAtLeastOnce'.=>.
e2980 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d $vendorDir...'/phpunit/phpunit-m
e29a0 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f ock-objects/PHPUnit/Framework/Mo
e29c0 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 65 72 2f 49 6e 76 6f 6b 65 64 41 74 4c 65 61 73 74 4f ckObject/Matcher/InvokedAtLeastO
e29e0 6e 63 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 nce.php',.'PHPUnit_Framework_Moc
e2a00 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 68 65 72 5f 49 6e 76 6f 6b 65 64 43 6f 75 6e 74 27 20 3d 3e kObject_Matcher_InvokedCount'.=>
e2a20 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d .$vendorDir...'/phpunit/phpunit-
e2a40 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d mock-objects/PHPUnit/Framework/M
e2a60 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 65 72 2f 49 6e 76 6f 6b 65 64 43 6f 75 6e 74 2e 70 ockObject/Matcher/InvokedCount.p
e2a80 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 hp',.'PHPUnit_Framework_MockObje
e2aa0 63 74 5f 4d 61 74 63 68 65 72 5f 49 6e 76 6f 6b 65 64 52 65 63 6f 72 64 65 72 27 20 3d 3e 20 24 ct_Matcher_InvokedRecorder'.=>.$
e2ac0 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f vendorDir...'/phpunit/phpunit-mo
e2ae0 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 ck-objects/PHPUnit/Framework/Moc
e2b00 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 65 72 2f 49 6e 76 6f 6b 65 64 52 65 63 6f 72 64 65 72 2e kObject/Matcher/InvokedRecorder.
e2b20 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a php',.'PHPUnit_Framework_MockObj
e2b40 65 63 74 5f 4d 61 74 63 68 65 72 5f 4d 65 74 68 6f 64 4e 61 6d 65 27 20 3d 3e 20 24 76 65 6e 64 ect_Matcher_MethodName'.=>.$vend
e2b60 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f orDir...'/phpunit/phpunit-mock-o
e2b80 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a bjects/PHPUnit/Framework/MockObj
e2ba0 65 63 74 2f 4d 61 74 63 68 65 72 2f 4d 65 74 68 6f 64 4e 61 6d 65 2e 70 68 70 27 2c 0a 27 50 48 ect/Matcher/MethodName.php',.'PH
e2bc0 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 68 PUnit_Framework_MockObject_Match
e2be0 65 72 5f 50 61 72 61 6d 65 74 65 72 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 er_Parameters'.=>.$vendorDir...'
e2c00 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 /phpunit/phpunit-mock-objects/PH
e2c20 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 PUnit/Framework/MockObject/Match
e2c40 65 72 2f 50 61 72 61 6d 65 74 65 72 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 er/Parameters.php',.'PHPUnit_Fra
e2c60 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 61 74 63 68 65 72 5f 53 74 61 74 65 6c mework_MockObject_Matcher_Statel
e2c80 65 73 73 49 6e 76 6f 63 61 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 essInvocation'.=>.$vendorDir...'
e2ca0 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 /phpunit/phpunit-mock-objects/PH
e2cc0 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 61 74 63 68 PUnit/Framework/MockObject/Match
e2ce0 65 72 2f 53 74 61 74 65 6c 65 73 73 49 6e 76 6f 63 61 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 er/StatelessInvocation.php',.'PH
e2d00 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 4d 6f 63 6b 42 PUnit_Framework_MockObject_MockB
e2d20 75 69 6c 64 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 uilder'.=>.$vendorDir...'/phpuni
e2d40 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 t/phpunit-mock-objects/PHPUnit/F
e2d60 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 6f 63 6b 42 75 69 6c 64 65 72 2e ramework/MockObject/MockBuilder.
e2d80 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a php',.'PHPUnit_Framework_MockObj
e2da0 65 63 74 5f 4d 6f 63 6b 4f 62 6a 65 63 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 ect_MockObject'.=>.$vendorDir...
e2dc0 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 '/phpunit/phpunit-mock-objects/P
e2de0 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 4d 6f 63 6b HPUnit/Framework/MockObject/Mock
e2e00 4f 62 6a 65 63 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f Object.php',.'PHPUnit_Framework_
e2e20 4d 6f 63 6b 4f 62 6a 65 63 74 5f 53 74 75 62 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e MockObject_Stub'.=>.$vendorDir..
e2e40 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f .'/phpunit/phpunit-mock-objects/
e2e60 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 75 PHPUnit/Framework/MockObject/Stu
e2e80 62 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f b.php',.'PHPUnit_Framework_MockO
e2ea0 62 6a 65 63 74 5f 53 74 75 62 5f 43 6f 6e 73 65 63 75 74 69 76 65 43 61 6c 6c 73 27 20 3d 3e 20 bject_Stub_ConsecutiveCalls'.=>.
e2ec0 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d $vendorDir...'/phpunit/phpunit-m
e2ee0 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f ock-objects/PHPUnit/Framework/Mo
e2f00 63 6b 4f 62 6a 65 63 74 2f 53 74 75 62 2f 43 6f 6e 73 65 63 75 74 69 76 65 43 61 6c 6c 73 2e 70 ckObject/Stub/ConsecutiveCalls.p
e2f20 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 hp',.'PHPUnit_Framework_MockObje
e2f40 63 74 5f 53 74 75 62 5f 45 78 63 65 70 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 ct_Stub_Exception'.=>.$vendorDir
e2f60 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 ...'/phpunit/phpunit-mock-object
e2f80 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 s/PHPUnit/Framework/MockObject/S
e2fa0 74 75 62 2f 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 tub/Exception.php',.'PHPUnit_Fra
e2fc0 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 53 74 75 62 5f 4d 61 74 63 68 65 72 43 6f mework_MockObject_Stub_MatcherCo
e2fe0 6c 6c 65 63 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 llection'.=>.$vendorDir...'/phpu
e3000 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 nit/phpunit-mock-objects/PHPUnit
e3020 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 75 62 2f 4d 61 74 63 68 /Framework/MockObject/Stub/Match
e3040 65 72 43 6f 6c 6c 65 63 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d erCollection.php',.'PHPUnit_Fram
e3060 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 53 74 75 62 5f 52 65 74 75 72 6e 27 20 3d 3e ework_MockObject_Stub_Return'.=>
e3080 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d .$vendorDir...'/phpunit/phpunit-
e30a0 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d mock-objects/PHPUnit/Framework/M
e30c0 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 75 62 2f 52 65 74 75 72 6e 2e 70 68 70 27 2c 0a 27 50 48 50 ockObject/Stub/Return.php',.'PHP
e30e0 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 53 74 75 62 5f 52 Unit_Framework_MockObject_Stub_R
e3100 65 74 75 72 6e 41 72 67 75 6d 65 6e 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 eturnArgument'.=>.$vendorDir...'
e3120 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 /phpunit/phpunit-mock-objects/PH
e3140 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 75 62 2f PUnit/Framework/MockObject/Stub/
e3160 52 65 74 75 72 6e 41 72 67 75 6d 65 6e 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 ReturnArgument.php',.'PHPUnit_Fr
e3180 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 53 74 75 62 5f 52 65 74 75 72 6e 43 61 amework_MockObject_Stub_ReturnCa
e31a0 6c 6c 62 61 63 6b 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 llback'.=>.$vendorDir...'/phpuni
e31c0 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 t/phpunit-mock-objects/PHPUnit/F
e31e0 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 75 62 2f 52 65 74 75 72 6e 43 ramework/MockObject/Stub/ReturnC
e3200 61 6c 6c 62 61 63 6b 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b allback.php',.'PHPUnit_Framework
e3220 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 53 74 75 62 5f 52 65 74 75 72 6e 53 65 6c 66 27 20 3d 3e 20 _MockObject_Stub_ReturnSelf'.=>.
e3240 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d $vendorDir...'/phpunit/phpunit-m
e3260 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f ock-objects/PHPUnit/Framework/Mo
e3280 63 6b 4f 62 6a 65 63 74 2f 53 74 75 62 2f 52 65 74 75 72 6e 53 65 6c 66 2e 70 68 70 27 2c 0a 27 ckObject/Stub/ReturnSelf.php',.'
e32a0 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 53 74 75 PHPUnit_Framework_MockObject_Stu
e32c0 62 5f 52 65 74 75 72 6e 56 61 6c 75 65 4d 61 70 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 b_ReturnValueMap'.=>.$vendorDir.
e32e0 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 ..'/phpunit/phpunit-mock-objects
e3300 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 53 74 /PHPUnit/Framework/MockObject/St
e3320 75 62 2f 52 65 74 75 72 6e 56 61 6c 75 65 4d 61 70 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 ub/ReturnValueMap.php',.'PHPUnit
e3340 5f 46 72 61 6d 65 77 6f 72 6b 5f 4d 6f 63 6b 4f 62 6a 65 63 74 5f 56 65 72 69 66 69 61 62 6c 65 _Framework_MockObject_Verifiable
e3360 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 '.=>.$vendorDir...'/phpunit/phpu
e3380 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f nit-mock-objects/PHPUnit/Framewo
e33a0 72 6b 2f 4d 6f 63 6b 4f 62 6a 65 63 74 2f 56 65 72 69 66 69 61 62 6c 65 2e 70 68 70 27 2c 0a 27 rk/MockObject/Verifiable.php',.'
e33c0 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 4f 75 74 70 75 74 45 72 72 6f 72 27 20 3d PHPUnit_Framework_OutputError'.=
e33e0 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 >.$vendorDir...'/phpunit/phpunit
e3400 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 4f 75 74 70 75 74 45 72 72 6f 72 2e 70 /PHPUnit/Framework/OutputError.p
e3420 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 53 65 6c 66 44 65 73 63 hp',.'PHPUnit_Framework_SelfDesc
e3440 72 69 62 69 6e 67 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 ribing'.=>.$vendorDir...'/phpuni
e3460 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 53 65 6c 66 t/phpunit/PHPUnit/Framework/Self
e3480 44 65 73 63 72 69 62 69 6e 67 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 Describing.php',.'PHPUnit_Framew
e34a0 6f 72 6b 5f 53 6b 69 70 70 65 64 54 65 73 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e ork_SkippedTest'.=>.$vendorDir..
e34c0 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 .'/phpunit/phpunit/PHPUnit/Frame
e34e0 77 6f 72 6b 2f 53 6b 69 70 70 65 64 54 65 73 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f work/SkippedTest.php',.'PHPUnit_
e3500 46 72 61 6d 65 77 6f 72 6b 5f 53 6b 69 70 70 65 64 54 65 73 74 45 72 72 6f 72 27 20 3d 3e 20 24 Framework_SkippedTestError'.=>.$
e3520 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 vendorDir...'/phpunit/phpunit/PH
e3540 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 53 6b 69 70 70 65 64 54 65 73 74 45 72 72 6f 72 PUnit/Framework/SkippedTestError
e3560 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 53 6b 69 70 70 65 .php',.'PHPUnit_Framework_Skippe
e3580 64 54 65 73 74 53 75 69 74 65 45 72 72 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e dTestSuiteError'.=>.$vendorDir..
e35a0 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 .'/phpunit/phpunit/PHPUnit/Frame
e35c0 77 6f 72 6b 2f 53 6b 69 70 70 65 64 54 65 73 74 53 75 69 74 65 45 72 72 6f 72 2e 70 68 70 27 2c work/SkippedTestSuiteError.php',
e35e0 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 53 79 6e 74 68 65 74 69 63 45 72 72 .'PHPUnit_Framework_SyntheticErr
e3600 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 or'.=>.$vendorDir...'/phpunit/ph
e3620 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 53 79 6e 74 68 65 74 69 punit/PHPUnit/Framework/Syntheti
e3640 63 45 72 72 6f 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f cError.php',.'PHPUnit_Framework_
e3660 54 65 73 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f Test'.=>.$vendorDir...'/phpunit/
e3680 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 54 65 73 74 2e 70 phpunit/PHPUnit/Framework/Test.p
e36a0 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 54 65 73 74 43 61 73 65 hp',.'PHPUnit_Framework_TestCase
e36c0 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 '.=>.$vendorDir...'/phpunit/phpu
e36e0 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 54 65 73 74 43 61 73 65 2e 70 nit/PHPUnit/Framework/TestCase.p
e3700 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 54 65 73 74 46 61 69 6c hp',.'PHPUnit_Framework_TestFail
e3720 75 72 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 ure'.=>.$vendorDir...'/phpunit/p
e3740 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 54 65 73 74 46 61 69 hpunit/PHPUnit/Framework/TestFai
e3760 6c 75 72 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 54 65 lure.php',.'PHPUnit_Framework_Te
e3780 73 74 4c 69 73 74 65 6e 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 stListener'.=>.$vendorDir...'/ph
e37a0 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f punit/phpunit/PHPUnit/Framework/
e37c0 54 65 73 74 4c 69 73 74 65 6e 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 61 6d TestListener.php',.'PHPUnit_Fram
e37e0 65 77 6f 72 6b 5f 54 65 73 74 52 65 73 75 6c 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 ework_TestResult'.=>.$vendorDir.
e3800 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d ..'/phpunit/phpunit/PHPUnit/Fram
e3820 65 77 6f 72 6b 2f 54 65 73 74 52 65 73 75 6c 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f ework/TestResult.php',.'PHPUnit_
e3840 46 72 61 6d 65 77 6f 72 6b 5f 54 65 73 74 53 75 69 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 Framework_TestSuite'.=>.$vendorD
e3860 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 ir...'/phpunit/phpunit/PHPUnit/F
e3880 72 61 6d 65 77 6f 72 6b 2f 54 65 73 74 53 75 69 74 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 ramework/TestSuite.php',.'PHPUni
e38a0 74 5f 46 72 61 6d 65 77 6f 72 6b 5f 54 65 73 74 53 75 69 74 65 5f 44 61 74 61 50 72 6f 76 69 64 t_Framework_TestSuite_DataProvid
e38c0 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 er'.=>.$vendorDir...'/phpunit/ph
e38e0 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 77 6f 72 6b 2f 54 65 73 74 53 75 69 74 punit/PHPUnit/Framework/TestSuit
e3900 65 2f 44 61 74 61 50 72 6f 76 69 64 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 46 72 e/DataProvider.php',.'PHPUnit_Fr
e3920 61 6d 65 77 6f 72 6b 5f 57 61 72 6e 69 6e 67 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e amework_Warning'.=>.$vendorDir..
e3940 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 46 72 61 6d 65 .'/phpunit/phpunit/PHPUnit/Frame
e3960 77 6f 72 6b 2f 57 61 72 6e 69 6e 67 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 52 75 6e 6e work/Warning.php',.'PHPUnit_Runn
e3980 65 72 5f 42 61 73 65 54 65 73 74 52 75 6e 6e 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 er_BaseTestRunner'.=>.$vendorDir
e39a0 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 52 75 6e ...'/phpunit/phpunit/PHPUnit/Run
e39c0 6e 65 72 2f 42 61 73 65 54 65 73 74 52 75 6e 6e 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 ner/BaseTestRunner.php',.'PHPUni
e39e0 74 5f 52 75 6e 6e 65 72 5f 53 74 61 6e 64 61 72 64 54 65 73 74 53 75 69 74 65 4c 6f 61 64 65 72 t_Runner_StandardTestSuiteLoader
e3a00 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 '.=>.$vendorDir...'/phpunit/phpu
e3a20 6e 69 74 2f 50 48 50 55 6e 69 74 2f 52 75 6e 6e 65 72 2f 53 74 61 6e 64 61 72 64 54 65 73 74 53 nit/PHPUnit/Runner/StandardTestS
e3a40 75 69 74 65 4c 6f 61 64 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 52 75 6e 6e 65 72 uiteLoader.php',.'PHPUnit_Runner
e3a60 5f 54 65 73 74 53 75 69 74 65 4c 6f 61 64 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 _TestSuiteLoader'.=>.$vendorDir.
e3a80 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 52 75 6e 6e ..'/phpunit/phpunit/PHPUnit/Runn
e3aa0 65 72 2f 54 65 73 74 53 75 69 74 65 4c 6f 61 64 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 er/TestSuiteLoader.php',.'PHPUni
e3ac0 74 5f 52 75 6e 6e 65 72 5f 56 65 72 73 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 t_Runner_Version'.=>.$vendorDir.
e3ae0 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 52 75 6e 6e ..'/phpunit/phpunit/PHPUnit/Runn
e3b00 65 72 2f 56 65 72 73 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 54 65 78 74 55 49 er/Version.php',.'PHPUnit_TextUI
e3b20 5f 43 6f 6d 6d 61 6e 64 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 _Command'.=>.$vendorDir...'/phpu
e3b40 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 54 65 78 74 55 49 2f 43 6f 6d 6d 61 nit/phpunit/PHPUnit/TextUI/Comma
e3b60 6e 64 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 54 65 78 74 55 49 5f 52 65 73 75 6c 74 50 nd.php',.'PHPUnit_TextUI_ResultP
e3b80 72 69 6e 74 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 rinter'.=>.$vendorDir...'/phpuni
e3ba0 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 54 65 78 74 55 49 2f 52 65 73 75 6c 74 50 t/phpunit/PHPUnit/TextUI/ResultP
e3bc0 72 69 6e 74 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 54 65 78 74 55 49 5f 54 65 73 rinter.php',.'PHPUnit_TextUI_Tes
e3be0 74 52 75 6e 6e 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e tRunner'.=>.$vendorDir...'/phpun
e3c00 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 54 65 78 74 55 49 2f 54 65 73 74 52 75 it/phpunit/PHPUnit/TextUI/TestRu
e3c20 6e 6e 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 43 6c 61 73 73 27 20 nner.php',.'PHPUnit_Util_Class'.
e3c40 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 =>.$vendorDir...'/phpunit/phpuni
e3c60 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 43 6c 61 73 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 t/PHPUnit/Util/Class.php',.'PHPU
e3c80 6e 69 74 5f 55 74 69 6c 5f 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 nit_Util_Configuration'.=>.$vend
e3ca0 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
e3cc0 74 2f 55 74 69 6c 2f 43 6f 6e 66 69 67 75 72 61 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 55 t/Util/Configuration.php',.'PHPU
e3ce0 6e 69 74 5f 55 74 69 6c 5f 44 65 70 72 65 63 61 74 65 64 46 65 61 74 75 72 65 27 20 3d 3e 20 24 nit_Util_DeprecatedFeature'.=>.$
e3d00 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 vendorDir...'/phpunit/phpunit/PH
e3d20 50 55 6e 69 74 2f 55 74 69 6c 2f 44 65 70 72 65 63 61 74 65 64 46 65 61 74 75 72 65 2e 70 68 70 PUnit/Util/DeprecatedFeature.php
e3d40 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 44 65 70 72 65 63 61 74 65 64 46 65 61 74 75 ',.'PHPUnit_Util_DeprecatedFeatu
e3d60 72 65 5f 4c 6f 67 67 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 re_Logger'.=>.$vendorDir...'/php
e3d80 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 44 65 70 72 65 63 unit/phpunit/PHPUnit/Util/Deprec
e3da0 61 74 65 64 46 65 61 74 75 72 65 2f 4c 6f 67 67 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 atedFeature/Logger.php',.'PHPUni
e3dc0 74 5f 55 74 69 6c 5f 44 69 66 66 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 t_Util_Diff'.=>.$vendorDir...'/p
e3de0 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 44 69 66 66 hpunit/phpunit/PHPUnit/Util/Diff
e3e00 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 45 72 72 6f 72 48 61 6e 64 6c 65 .php',.'PHPUnit_Util_ErrorHandle
e3e20 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 r'.=>.$vendorDir...'/phpunit/php
e3e40 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 45 72 72 6f 72 48 61 6e 64 6c 65 72 2e 70 unit/PHPUnit/Util/ErrorHandler.p
e3e60 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 46 69 6c 65 6c 6f 61 64 65 72 27 20 3d hp',.'PHPUnit_Util_Fileloader'.=
e3e80 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 >.$vendorDir...'/phpunit/phpunit
e3ea0 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 46 69 6c 65 6c 6f 61 64 65 72 2e 70 68 70 27 2c 0a 27 /PHPUnit/Util/Fileloader.php',.'
e3ec0 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 46 69 6c 65 73 79 73 74 65 6d 27 20 3d 3e 20 24 76 65 6e PHPUnit_Util_Filesystem'.=>.$ven
e3ee0 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e dorDir...'/phpunit/phpunit/PHPUn
e3f00 69 74 2f 55 74 69 6c 2f 46 69 6c 65 73 79 73 74 65 6d 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 it/Util/Filesystem.php',.'PHPUni
e3f20 74 5f 55 74 69 6c 5f 46 69 6c 74 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 t_Util_Filter'.=>.$vendorDir...'
e3f40 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 46 69 /phpunit/phpunit/PHPUnit/Util/Fi
e3f60 6c 74 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 47 65 74 6f 70 74 27 lter.php',.'PHPUnit_Util_Getopt'
e3f80 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e .=>.$vendorDir...'/phpunit/phpun
e3fa0 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 47 65 74 6f 70 74 2e 70 68 70 27 2c 0a 27 50 48 it/PHPUnit/Util/Getopt.php',.'PH
e3fc0 50 55 6e 69 74 5f 55 74 69 6c 5f 47 6c 6f 62 61 6c 53 74 61 74 65 27 20 3d 3e 20 24 76 65 6e 64 PUnit_Util_GlobalState'.=>.$vend
e3fe0 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
e4000 74 2f 55 74 69 6c 2f 47 6c 6f 62 61 6c 53 74 61 74 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 t/Util/GlobalState.php',.'PHPUni
e4020 74 5f 55 74 69 6c 5f 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 48 65 6c 70 65 72 27 20 3d 3e t_Util_InvalidArgumentHelper'.=>
e4040 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f .$vendorDir...'/phpunit/phpunit/
e4060 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 48 65 6c 70 PHPUnit/Util/InvalidArgumentHelp
e4080 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 4c 6f 67 5f 4a 53 4f 4e 27 er.php',.'PHPUnit_Util_Log_JSON'
e40a0 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e .=>.$vendorDir...'/phpunit/phpun
e40c0 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 4c 6f 67 2f 4a 53 4f 4e 2e 70 68 70 27 2c 0a 27 it/PHPUnit/Util/Log/JSON.php',.'
e40e0 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 4c 6f 67 5f 4a 55 6e 69 74 27 20 3d 3e 20 24 76 65 6e 64 PHPUnit_Util_Log_JUnit'.=>.$vend
e4100 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 orDir...'/phpunit/phpunit/PHPUni
e4120 74 2f 55 74 69 6c 2f 4c 6f 67 2f 4a 55 6e 69 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f t/Util/Log/JUnit.php',.'PHPUnit_
e4140 55 74 69 6c 5f 4c 6f 67 5f 54 41 50 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f Util_Log_TAP'.=>.$vendorDir...'/
e4160 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 4c 6f 67 phpunit/phpunit/PHPUnit/Util/Log
e4180 2f 54 41 50 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 50 48 50 27 20 3d 3e /TAP.php',.'PHPUnit_Util_PHP'.=>
e41a0 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f .$vendorDir...'/phpunit/phpunit/
e41c0 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 50 48 50 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f PHPUnit/Util/PHP.php',.'PHPUnit_
e41e0 55 74 69 6c 5f 50 48 50 5f 44 65 66 61 75 6c 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 Util_PHP_Default'.=>.$vendorDir.
e4200 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c ..'/phpunit/phpunit/PHPUnit/Util
e4220 2f 50 48 50 2f 44 65 66 61 75 6c 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c /PHP/Default.php',.'PHPUnit_Util
e4240 5f 50 48 50 5f 57 69 6e 64 6f 77 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f _PHP_Windows'.=>.$vendorDir...'/
e4260 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 50 48 50 phpunit/phpunit/PHPUnit/Util/PHP
e4280 2f 57 69 6e 64 6f 77 73 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 50 72 69 /Windows.php',.'PHPUnit_Util_Pri
e42a0 6e 74 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f nter'.=>.$vendorDir...'/phpunit/
e42c0 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 50 72 69 6e 74 65 72 2e 70 68 70 phpunit/PHPUnit/Util/Printer.php
e42e0 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 53 74 72 69 6e 67 27 20 3d 3e 20 24 76 65 6e ',.'PHPUnit_Util_String'.=>.$ven
e4300 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e dorDir...'/phpunit/phpunit/PHPUn
e4320 69 74 2f 55 74 69 6c 2f 53 74 72 69 6e 67 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 it/Util/String.php',.'PHPUnit_Ut
e4340 69 6c 5f 54 65 73 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e il_Test'.=>.$vendorDir...'/phpun
e4360 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 54 65 73 74 2e 70 68 70 it/phpunit/PHPUnit/Util/Test.php
e4380 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 54 65 73 74 44 6f 78 5f 4e 61 6d 65 50 72 65 ',.'PHPUnit_Util_TestDox_NamePre
e43a0 74 74 69 66 69 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e ttifier'.=>.$vendorDir...'/phpun
e43c0 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 54 65 73 74 44 6f 78 2f it/phpunit/PHPUnit/Util/TestDox/
e43e0 4e 61 6d 65 50 72 65 74 74 69 66 69 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 NamePrettifier.php',.'PHPUnit_Ut
e4400 69 6c 5f 54 65 73 74 44 6f 78 5f 52 65 73 75 6c 74 50 72 69 6e 74 65 72 27 20 3d 3e 20 24 76 65 il_TestDox_ResultPrinter'.=>.$ve
e4420 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 ndorDir...'/phpunit/phpunit/PHPU
e4440 6e 69 74 2f 55 74 69 6c 2f 54 65 73 74 44 6f 78 2f 52 65 73 75 6c 74 50 72 69 6e 74 65 72 2e 70 nit/Util/TestDox/ResultPrinter.p
e4460 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 54 65 73 74 44 6f 78 5f 52 65 73 75 6c hp',.'PHPUnit_Util_TestDox_Resul
e4480 74 50 72 69 6e 74 65 72 5f 48 54 4d 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 tPrinter_HTML'.=>.$vendorDir...'
e44a0 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 54 65 /phpunit/phpunit/PHPUnit/Util/Te
e44c0 73 74 44 6f 78 2f 52 65 73 75 6c 74 50 72 69 6e 74 65 72 2f 48 54 4d 4c 2e 70 68 70 27 2c 0a 27 stDox/ResultPrinter/HTML.php',.'
e44e0 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 54 65 73 74 44 6f 78 5f 52 65 73 75 6c 74 50 72 69 6e 74 PHPUnit_Util_TestDox_ResultPrint
e4500 65 72 5f 54 65 78 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e er_Text'.=>.$vendorDir...'/phpun
e4520 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 54 65 73 74 44 6f 78 2f it/phpunit/PHPUnit/Util/TestDox/
e4540 52 65 73 75 6c 74 50 72 69 6e 74 65 72 2f 54 65 78 74 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 ResultPrinter/Text.php',.'PHPUni
e4560 74 5f 55 74 69 6c 5f 54 65 73 74 53 75 69 74 65 49 74 65 72 61 74 6f 72 27 20 3d 3e 20 24 76 65 t_Util_TestSuiteIterator'.=>.$ve
e4580 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 ndorDir...'/phpunit/phpunit/PHPU
e45a0 6e 69 74 2f 55 74 69 6c 2f 54 65 73 74 53 75 69 74 65 49 74 65 72 61 74 6f 72 2e 70 68 70 27 2c nit/Util/TestSuiteIterator.php',
e45c0 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 54 79 70 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 .'PHPUnit_Util_Type'.=>.$vendorD
e45e0 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 ir...'/phpunit/phpunit/PHPUnit/U
e4600 74 69 6c 2f 54 79 70 65 2e 70 68 70 27 2c 0a 27 50 48 50 55 6e 69 74 5f 55 74 69 6c 5f 58 4d 4c til/Type.php',.'PHPUnit_Util_XML
e4620 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 '.=>.$vendorDir...'/phpunit/phpu
e4640 6e 69 74 2f 50 48 50 55 6e 69 74 2f 55 74 69 6c 2f 58 4d 4c 2e 70 68 70 27 2c 0a 27 50 48 50 5f nit/PHPUnit/Util/XML.php',.'PHP_
e4660 43 6f 64 65 43 6f 76 65 72 61 67 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f CodeCoverage'.=>.$vendorDir...'/
e4680 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f phpunit/php-code-coverage/PHP/Co
e46a0 64 65 43 6f 76 65 72 61 67 65 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 deCoverage.php',.'PHP_CodeCovera
e46c0 67 65 5f 44 72 69 76 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 ge_Driver'.=>.$vendorDir...'/php
e46e0 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 unit/php-code-coverage/PHP/CodeC
e4700 6f 76 65 72 61 67 65 2f 44 72 69 76 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f overage/Driver.php',.'PHP_CodeCo
e4720 76 65 72 61 67 65 5f 44 72 69 76 65 72 5f 58 64 65 62 75 67 27 20 3d 3e 20 24 76 65 6e 64 6f 72 verage_Driver_Xdebug'.=>.$vendor
e4740 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 Dir...'/phpunit/php-code-coverag
e4760 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 44 72 69 76 65 72 2f 58 64 65 62 75 67 e/PHP/CodeCoverage/Driver/Xdebug
e4780 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 45 78 63 65 70 74 69 .php',.'PHP_CodeCoverage_Excepti
e47a0 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 on'.=>.$vendorDir...'/phpunit/ph
e47c0 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 p-code-coverage/PHP/CodeCoverage
e47e0 2f 45 78 63 65 70 74 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 /Exception.php',.'PHP_CodeCovera
e4800 67 65 5f 46 69 6c 74 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 ge_Filter'.=>.$vendorDir...'/php
e4820 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 unit/php-code-coverage/PHP/CodeC
e4840 6f 76 65 72 61 67 65 2f 46 69 6c 74 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f overage/Filter.php',.'PHP_CodeCo
e4860 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 43 6c 6f 76 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 verage_Report_Clover'.=>.$vendor
e4880 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 Dir...'/phpunit/php-code-coverag
e48a0 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 43 6c 6f 76 65 72 e/PHP/CodeCoverage/Report/Clover
e48c0 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f .php',.'PHP_CodeCoverage_Report_
e48e0 46 61 63 74 6f 72 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e Factory'.=>.$vendorDir...'/phpun
e4900 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 it/php-code-coverage/PHP/CodeCov
e4920 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 46 61 63 74 6f 72 79 2e 70 68 70 27 2c 0a 27 50 48 50 5f erage/Report/Factory.php',.'PHP_
e4940 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 48 54 4d 4c 27 20 3d 3e 20 24 76 65 CodeCoverage_Report_HTML'.=>.$ve
e4960 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 ndorDir...'/phpunit/php-code-cov
e4980 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 48 54 erage/PHP/CodeCoverage/Report/HT
e49a0 4d 4c 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 ML.php',.'PHP_CodeCoverage_Repor
e49c0 74 5f 48 54 4d 4c 5f 52 65 6e 64 65 72 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e t_HTML_Renderer'.=>.$vendorDir..
e49e0 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 .'/phpunit/php-code-coverage/PHP
e4a00 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 48 54 4d 4c 2f 52 65 6e 64 65 72 /CodeCoverage/Report/HTML/Render
e4a20 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 er.php',.'PHP_CodeCoverage_Repor
e4a40 74 5f 48 54 4d 4c 5f 52 65 6e 64 65 72 65 72 5f 44 61 73 68 62 6f 61 72 64 27 20 3d 3e 20 24 76 t_HTML_Renderer_Dashboard'.=>.$v
e4a60 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f endorDir...'/phpunit/php-code-co
e4a80 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 48 verage/PHP/CodeCoverage/Report/H
e4aa0 54 4d 4c 2f 52 65 6e 64 65 72 65 72 2f 44 61 73 68 62 6f 61 72 64 2e 70 68 70 27 2c 0a 27 50 48 TML/Renderer/Dashboard.php',.'PH
e4ac0 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 48 54 4d 4c 5f 52 65 6e 64 65 P_CodeCoverage_Report_HTML_Rende
e4ae0 72 65 72 5f 44 69 72 65 63 74 6f 72 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 rer_Directory'.=>.$vendorDir...'
e4b00 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 /phpunit/php-code-coverage/PHP/C
e4b20 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 48 54 4d 4c 2f 52 65 6e 64 65 72 65 72 odeCoverage/Report/HTML/Renderer
e4b40 2f 44 69 72 65 63 74 6f 72 79 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 /Directory.php',.'PHP_CodeCovera
e4b60 67 65 5f 52 65 70 6f 72 74 5f 48 54 4d 4c 5f 52 65 6e 64 65 72 65 72 5f 46 69 6c 65 27 20 3d 3e ge_Report_HTML_Renderer_File'.=>
e4b80 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 .$vendorDir...'/phpunit/php-code
e4ba0 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 -coverage/PHP/CodeCoverage/Repor
e4bc0 74 2f 48 54 4d 4c 2f 52 65 6e 64 65 72 65 72 2f 46 69 6c 65 2e 70 68 70 27 2c 0a 27 50 48 50 5f t/HTML/Renderer/File.php',.'PHP_
e4be0 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 4e 6f 64 65 27 20 3d 3e 20 24 76 65 CodeCoverage_Report_Node'.=>.$ve
e4c00 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 ndorDir...'/phpunit/php-code-cov
e4c20 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 4e 6f erage/PHP/CodeCoverage/Report/No
e4c40 64 65 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 de.php',.'PHP_CodeCoverage_Repor
e4c60 74 5f 4e 6f 64 65 5f 44 69 72 65 63 74 6f 72 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 t_Node_Directory'.=>.$vendorDir.
e4c80 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 ..'/phpunit/php-code-coverage/PH
e4ca0 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 4e 6f 64 65 2f 44 69 72 65 63 P/CodeCoverage/Report/Node/Direc
e4cc0 74 6f 72 79 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 tory.php',.'PHP_CodeCoverage_Rep
e4ce0 6f 72 74 5f 4e 6f 64 65 5f 46 69 6c 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 ort_Node_File'.=>.$vendorDir...'
e4d00 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 /phpunit/php-code-coverage/PHP/C
e4d20 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 4e 6f 64 65 2f 46 69 6c 65 2e 70 68 70 odeCoverage/Report/Node/File.php
e4d40 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 4e 6f 64 65 ',.'PHP_CodeCoverage_Report_Node
e4d60 5f 49 74 65 72 61 74 6f 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 _Iterator'.=>.$vendorDir...'/php
e4d80 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 unit/php-code-coverage/PHP/CodeC
e4da0 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 4e 6f 64 65 2f 49 74 65 72 61 74 6f 72 2e 70 68 70 overage/Report/Node/Iterator.php
e4dc0 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 52 65 70 6f 72 74 5f 50 48 50 27 ',.'PHP_CodeCoverage_Report_PHP'
e4de0 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 .=>.$vendorDir...'/phpunit/php-c
e4e00 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 52 65 ode-coverage/PHP/CodeCoverage/Re
e4e20 70 6f 72 74 2f 50 48 50 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 port/PHP.php',.'PHP_CodeCoverage
e4e40 5f 52 65 70 6f 72 74 5f 54 65 78 74 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f _Report_Text'.=>.$vendorDir...'/
e4e60 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f phpunit/php-code-coverage/PHP/Co
e4e80 64 65 43 6f 76 65 72 61 67 65 2f 52 65 70 6f 72 74 2f 54 65 78 74 2e 70 68 70 27 2c 0a 27 50 48 deCoverage/Report/Text.php',.'PH
e4ea0 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 55 74 69 6c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 P_CodeCoverage_Util'.=>.$vendorD
e4ec0 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 ir...'/phpunit/php-code-coverage
e4ee0 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 2f 55 74 69 6c 2e 70 68 70 27 2c 0a 27 50 48 /PHP/CodeCoverage/Util.php',.'PH
e4f00 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 55 74 69 6c 5f 49 6e 76 61 6c 69 64 41 72 67 75 6d P_CodeCoverage_Util_InvalidArgum
e4f20 65 6e 74 48 65 6c 70 65 72 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 entHelper'.=>.$vendorDir...'/php
e4f40 75 6e 69 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 unit/php-code-coverage/PHP/CodeC
e4f60 6f 76 65 72 61 67 65 2f 55 74 69 6c 2f 49 6e 76 61 6c 69 64 41 72 67 75 6d 65 6e 74 48 65 6c 70 overage/Util/InvalidArgumentHelp
e4f80 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 5f 43 6f 64 65 43 6f 76 65 72 61 67 65 5f 56 65 72 73 69 er.php',.'PHP_CodeCoverage_Versi
e4fa0 6f 6e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 on'.=>.$vendorDir...'/phpunit/ph
e4fc0 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 2f 50 48 50 2f 43 6f 64 65 43 6f 76 65 72 61 67 65 p-code-coverage/PHP/CodeCoverage
e4fe0 2f 56 65 72 73 69 6f 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 69 6d 65 72 27 20 3d 3e 20 24 76 /Version.php',.'PHP_Timer'.=>.$v
e5000 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 69 6d 65 72 2f 50 endorDir...'/phpunit/php-timer/P
e5020 48 50 2f 54 69 6d 65 72 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 27 20 3d 3e 20 24 76 HP/Timer.php',.'PHP_Token'.=>.$v
e5040 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 endorDir...'/phpunit/php-token-s
e5060 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e tream/PHP/Token.php',.'PHP_Token
e5080 57 69 74 68 53 63 6f 70 65 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 WithScope'.=>.$vendorDir...'/php
e50a0 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e unit/php-token-stream/PHP/Token.
e50c0 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 57 69 74 68 53 63 6f 70 65 41 6e 64 56 69 73 69 php',.'PHP_TokenWithScopeAndVisi
e50e0 62 69 6c 69 74 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 bility'.=>.$vendorDir...'/phpuni
e5100 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 t/php-token-stream/PHP/Token.php
e5120 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 41 42 53 54 52 41 43 54 27 20 3d 3e 20 24 76 65 6e 64 ',.'PHP_Token_ABSTRACT'.=>.$vend
e5140 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 orDir...'/phpunit/php-token-stre
e5160 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 41 4d am/PHP/Token.php',.'PHP_Token_AM
e5180 50 45 52 53 41 4e 44 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e PERSAND'.=>.$vendorDir...'/phpun
e51a0 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
e51c0 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 41 4e 44 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 p',.'PHP_Token_AND_EQUAL'.=>.$ve
e51e0 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 ndorDir...'/phpunit/php-token-st
e5200 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f ream/PHP/Token.php',.'PHP_Token_
e5220 41 52 52 41 59 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 ARRAY'.=>.$vendorDir...'/phpunit
e5240 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 /php-token-stream/PHP/Token.php'
e5260 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 41 52 52 41 59 5f 43 41 53 54 27 20 3d 3e 20 24 76 65 6e ,.'PHP_Token_ARRAY_CAST'.=>.$ven
e5280 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 dorDir...'/phpunit/php-token-str
e52a0 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 41 eam/PHP/Token.php',.'PHP_Token_A
e52c0 53 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 S'.=>.$vendorDir...'/phpunit/php
e52e0 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
e5300 48 50 5f 54 6f 6b 65 6e 5f 41 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 HP_Token_AT'.=>.$vendorDir...'/p
e5320 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 hpunit/php-token-stream/PHP/Toke
e5340 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 42 41 43 4b 54 49 43 4b 27 20 3d 3e 20 n.php',.'PHP_Token_BACKTICK'.=>.
e5360 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
e5380 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
e53a0 65 6e 5f 42 41 44 5f 43 48 41 52 41 43 54 45 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 en_BAD_CHARACTER'.=>.$vendorDir.
e53c0 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 ..'/phpunit/php-token-stream/PHP
e53e0 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 42 4f 4f 4c 45 41 4e 5f /Token.php',.'PHP_Token_BOOLEAN_
e5400 41 4e 44 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 AND'.=>.$vendorDir...'/phpunit/p
e5420 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a hp-token-stream/PHP/Token.php',.
e5440 27 50 48 50 5f 54 6f 6b 65 6e 5f 42 4f 4f 4c 45 41 4e 5f 4f 52 27 20 3d 3e 20 24 76 65 6e 64 6f 'PHP_Token_BOOLEAN_OR'.=>.$vendo
e5460 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 rDir...'/phpunit/php-token-strea
e5480 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 42 4f 4f m/PHP/Token.php',.'PHP_Token_BOO
e54a0 4c 5f 43 41 53 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 L_CAST'.=>.$vendorDir...'/phpuni
e54c0 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 t/php-token-stream/PHP/Token.php
e54e0 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 42 52 45 41 4b 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 ',.'PHP_Token_BREAK'.=>.$vendorD
e5500 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
e5520 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 41 4c 4c 41 PHP/Token.php',.'PHP_Token_CALLA
e5540 42 4c 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 BLE'.=>.$vendorDir...'/phpunit/p
e5560 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a hp-token-stream/PHP/Token.php',.
e5580 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 41 52 45 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 'PHP_Token_CARET'.=>.$vendorDir.
e55a0 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 ..'/phpunit/php-token-stream/PHP
e55c0 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 41 53 45 27 20 3d 3e /Token.php',.'PHP_Token_CASE'.=>
e55e0 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 .$vendorDir...'/phpunit/php-toke
e5600 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f n-stream/PHP/Token.php',.'PHP_To
e5620 6b 65 6e 5f 43 41 54 43 48 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 ken_CATCH'.=>.$vendorDir...'/php
e5640 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e unit/php-token-stream/PHP/Token.
e5660 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 48 41 52 41 43 54 45 52 27 20 3d 3e 20 24 php',.'PHP_Token_CHARACTER'.=>.$
e5680 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d vendorDir...'/phpunit/php-token-
e56a0 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 stream/PHP/Token.php',.'PHP_Toke
e56c0 6e 5f 43 4c 41 53 53 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e n_CLASS'.=>.$vendorDir...'/phpun
e56e0 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
e5700 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4c 41 53 53 5f 43 27 20 3d 3e 20 24 76 65 6e 64 p',.'PHP_Token_CLASS_C'.=>.$vend
e5720 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 orDir...'/phpunit/php-token-stre
e5740 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4c am/PHP/Token.php',.'PHP_Token_CL
e5760 41 53 53 5f 4e 41 4d 45 5f 43 4f 4e 53 54 41 4e 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 ASS_NAME_CONSTANT'.=>.$vendorDir
e5780 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
e57a0 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4c 4f 4e 45 27 20 P/Token.php',.'PHP_Token_CLONE'.
e57c0 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f =>.$vendorDir...'/phpunit/php-to
e57e0 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f ken-stream/PHP/Token.php',.'PHP_
e5800 54 6f 6b 65 6e 5f 43 4c 4f 53 45 5f 42 52 41 43 4b 45 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 Token_CLOSE_BRACKET'.=>.$vendorD
e5820 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
e5840 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4c 4f 53 45 PHP/Token.php',.'PHP_Token_CLOSE
e5860 5f 43 55 52 4c 59 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 _CURLY'.=>.$vendorDir...'/phpuni
e5880 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 t/php-token-stream/PHP/Token.php
e58a0 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4c 4f 53 45 5f 53 51 55 41 52 45 27 20 3d 3e 20 24 ',.'PHP_Token_CLOSE_SQUARE'.=>.$
e58c0 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d vendorDir...'/phpunit/php-token-
e58e0 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 stream/PHP/Token.php',.'PHP_Toke
e5900 6e 5f 43 4c 4f 53 45 5f 54 41 47 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 n_CLOSE_TAG'.=>.$vendorDir...'/p
e5920 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 hpunit/php-token-stream/PHP/Toke
e5940 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4f 4c 4f 4e 27 20 3d 3e 20 24 76 65 n.php',.'PHP_Token_COLON'.=>.$ve
e5960 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 ndorDir...'/phpunit/php-token-st
e5980 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f ream/PHP/Token.php',.'PHP_Token_
e59a0 43 4f 4d 4d 41 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 COMMA'.=>.$vendorDir...'/phpunit
e59c0 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 /php-token-stream/PHP/Token.php'
e59e0 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4f 4d 4d 45 4e 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 ,.'PHP_Token_COMMENT'.=>.$vendor
e5a00 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d Dir...'/phpunit/php-token-stream
e5a20 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4f 4e 43 /PHP/Token.php',.'PHP_Token_CONC
e5a40 41 54 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 AT_EQUAL'.=>.$vendorDir...'/phpu
e5a60 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 nit/php-token-stream/PHP/Token.p
e5a80 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4f 4e 53 54 27 20 3d 3e 20 24 76 65 6e 64 6f hp',.'PHP_Token_CONST'.=>.$vendo
e5aa0 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 rDir...'/phpunit/php-token-strea
e5ac0 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4f 4e m/PHP/Token.php',.'PHP_Token_CON
e5ae0 53 54 41 4e 54 5f 45 4e 43 41 50 53 45 44 5f 53 54 52 49 4e 47 27 20 3d 3e 20 24 76 65 6e 64 6f STANT_ENCAPSED_STRING'.=>.$vendo
e5b00 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 rDir...'/phpunit/php-token-strea
e5b20 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 4f 4e m/PHP/Token.php',.'PHP_Token_CON
e5b40 54 49 4e 55 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 TINUE'.=>.$vendorDir...'/phpunit
e5b60 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 /php-token-stream/PHP/Token.php'
e5b80 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 43 55 52 4c 59 5f 4f 50 45 4e 27 20 3d 3e 20 24 76 65 6e ,.'PHP_Token_CURLY_OPEN'.=>.$ven
e5ba0 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 dorDir...'/phpunit/php-token-str
e5bc0 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 eam/PHP/Token.php',.'PHP_Token_D
e5be0 45 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 EC'.=>.$vendorDir...'/phpunit/ph
e5c00 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 p-token-stream/PHP/Token.php',.'
e5c20 50 48 50 5f 54 6f 6b 65 6e 5f 44 45 43 4c 41 52 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 PHP_Token_DECLARE'.=>.$vendorDir
e5c40 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
e5c60 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 45 46 41 55 4c 54 P/Token.php',.'PHP_Token_DEFAULT
e5c80 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
e5ca0 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 token-stream/PHP/Token.php',.'PH
e5cc0 50 5f 54 6f 6b 65 6e 5f 44 49 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 P_Token_DIR'.=>.$vendorDir...'/p
e5ce0 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 hpunit/php-token-stream/PHP/Toke
e5d00 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 49 56 27 20 3d 3e 20 24 76 65 6e 64 n.php',.'PHP_Token_DIV'.=>.$vend
e5d20 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 orDir...'/phpunit/php-token-stre
e5d40 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 49 am/PHP/Token.php',.'PHP_Token_DI
e5d60 56 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e V_EQUAL'.=>.$vendorDir...'/phpun
e5d80 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
e5da0 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4e 55 4d 42 45 52 27 20 3d 3e 20 24 76 65 6e 64 p',.'PHP_Token_DNUMBER'.=>.$vend
e5dc0 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 orDir...'/phpunit/php-token-stre
e5de0 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4f am/PHP/Token.php',.'PHP_Token_DO
e5e00 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
e5e20 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 token-stream/PHP/Token.php',.'PH
e5e40 50 5f 54 6f 6b 65 6e 5f 44 4f 43 5f 43 4f 4d 4d 45 4e 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 P_Token_DOC_COMMENT'.=>.$vendorD
e5e60 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
e5e80 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4f 4c 4c 41 PHP/Token.php',.'PHP_Token_DOLLA
e5ea0 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 R'.=>.$vendorDir...'/phpunit/php
e5ec0 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
e5ee0 48 50 5f 54 6f 6b 65 6e 5f 44 4f 4c 4c 41 52 5f 4f 50 45 4e 5f 43 55 52 4c 59 5f 42 52 41 43 45 HP_Token_DOLLAR_OPEN_CURLY_BRACE
e5f00 53 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 S'.=>.$vendorDir...'/phpunit/php
e5f20 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
e5f40 48 50 5f 54 6f 6b 65 6e 5f 44 4f 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f HP_Token_DOT'.=>.$vendorDir...'/
e5f60 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b phpunit/php-token-stream/PHP/Tok
e5f80 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4f 55 42 4c 45 5f 41 52 52 4f 57 en.php',.'PHP_Token_DOUBLE_ARROW
e5fa0 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
e5fc0 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 token-stream/PHP/Token.php',.'PH
e5fe0 50 5f 54 6f 6b 65 6e 5f 44 4f 55 42 4c 45 5f 43 41 53 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 P_Token_DOUBLE_CAST'.=>.$vendorD
e6000 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
e6020 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4f 55 42 4c PHP/Token.php',.'PHP_Token_DOUBL
e6040 45 5f 43 4f 4c 4f 4e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e E_COLON'.=>.$vendorDir...'/phpun
e6060 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
e6080 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 44 4f 55 42 4c 45 5f 51 55 4f 54 45 53 27 20 3d 3e p',.'PHP_Token_DOUBLE_QUOTES'.=>
e60a0 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 .$vendorDir...'/phpunit/php-toke
e60c0 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f n-stream/PHP/Token.php',.'PHP_To
e60e0 6b 65 6e 5f 45 43 48 4f 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 ken_ECHO'.=>.$vendorDir...'/phpu
e6100 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 nit/php-token-stream/PHP/Token.p
e6120 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4c 53 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 hp',.'PHP_Token_ELSE'.=>.$vendor
e6140 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d Dir...'/phpunit/php-token-stream
e6160 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4c 53 45 /PHP/Token.php',.'PHP_Token_ELSE
e6180 49 46 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 IF'.=>.$vendorDir...'/phpunit/ph
e61a0 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 p-token-stream/PHP/Token.php',.'
e61c0 50 48 50 5f 54 6f 6b 65 6e 5f 45 4d 50 54 59 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e PHP_Token_EMPTY'.=>.$vendorDir..
e61e0 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f .'/phpunit/php-token-stream/PHP/
e6200 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4e 43 41 50 53 45 44 5f Token.php',.'PHP_Token_ENCAPSED_
e6220 41 4e 44 5f 57 48 49 54 45 53 50 41 43 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 AND_WHITESPACE'.=>.$vendorDir...
e6240 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 '/phpunit/php-token-stream/PHP/T
e6260 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4e 44 44 45 43 4c 41 52 45 oken.php',.'PHP_Token_ENDDECLARE
e6280 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
e62a0 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 token-stream/PHP/Token.php',.'PH
e62c0 50 5f 54 6f 6b 65 6e 5f 45 4e 44 46 4f 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 P_Token_ENDFOR'.=>.$vendorDir...
e62e0 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 '/phpunit/php-token-stream/PHP/T
e6300 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4e 44 46 4f 52 45 41 43 48 oken.php',.'PHP_Token_ENDFOREACH
e6320 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
e6340 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 token-stream/PHP/Token.php',.'PH
e6360 50 5f 54 6f 6b 65 6e 5f 45 4e 44 49 46 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 P_Token_ENDIF'.=>.$vendorDir...'
e6380 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
e63a0 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4e 44 53 57 49 54 43 48 27 20 ken.php',.'PHP_Token_ENDSWITCH'.
e63c0 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f =>.$vendorDir...'/phpunit/php-to
e63e0 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f ken-stream/PHP/Token.php',.'PHP_
e6400 54 6f 6b 65 6e 5f 45 4e 44 57 48 49 4c 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 Token_ENDWHILE'.=>.$vendorDir...
e6420 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 '/phpunit/php-token-stream/PHP/T
e6440 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 4e 44 5f 48 45 52 45 44 4f oken.php',.'PHP_Token_END_HEREDO
e6460 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 C'.=>.$vendorDir...'/phpunit/php
e6480 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
e64a0 48 50 5f 54 6f 6b 65 6e 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 HP_Token_EQUAL'.=>.$vendorDir...
e64c0 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 '/phpunit/php-token-stream/PHP/T
e64e0 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 56 41 4c 27 20 3d 3e 20 24 oken.php',.'PHP_Token_EVAL'.=>.$
e6500 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d vendorDir...'/phpunit/php-token-
e6520 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 stream/PHP/Token.php',.'PHP_Toke
e6540 6e 5f 45 58 43 4c 41 4d 41 54 49 4f 4e 5f 4d 41 52 4b 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 n_EXCLAMATION_MARK'.=>.$vendorDi
e6560 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 r...'/phpunit/php-token-stream/P
e6580 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 45 58 49 54 27 20 HP/Token.php',.'PHP_Token_EXIT'.
e65a0 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f =>.$vendorDir...'/phpunit/php-to
e65c0 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f ken-stream/PHP/Token.php',.'PHP_
e65e0 54 6f 6b 65 6e 5f 45 58 54 45 4e 44 53 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 Token_EXTENDS'.=>.$vendorDir...'
e6600 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
e6620 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 46 49 4c 45 27 20 3d 3e 20 24 76 ken.php',.'PHP_Token_FILE'.=>.$v
e6640 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 endorDir...'/phpunit/php-token-s
e6660 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e tream/PHP/Token.php',.'PHP_Token
e6680 5f 46 49 4e 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 _FINAL'.=>.$vendorDir...'/phpuni
e66a0 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 t/php-token-stream/PHP/Token.php
e66c0 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 46 49 4e 41 4c 4c 59 27 20 3d 3e 20 24 76 65 6e 64 6f ',.'PHP_Token_FINALLY'.=>.$vendo
e66e0 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 rDir...'/phpunit/php-token-strea
e6700 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 46 4f 52 m/PHP/Token.php',.'PHP_Token_FOR
e6720 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
e6740 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 token-stream/PHP/Token.php',.'PH
e6760 50 5f 54 6f 6b 65 6e 5f 46 4f 52 45 41 43 48 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e P_Token_FOREACH'.=>.$vendorDir..
e6780 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f .'/phpunit/php-token-stream/PHP/
e67a0 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 46 55 4e 43 54 49 4f 4e 27 Token.php',.'PHP_Token_FUNCTION'
e67c0 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 .=>.$vendorDir...'/phpunit/php-t
e67e0 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 oken-stream/PHP/Token.php',.'PHP
e6800 5f 54 6f 6b 65 6e 5f 46 55 4e 43 5f 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 _Token_FUNC_C'.=>.$vendorDir...'
e6820 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
e6840 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 47 4c 4f 42 41 4c 27 20 3d 3e 20 ken.php',.'PHP_Token_GLOBAL'.=>.
e6860 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
e6880 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
e68a0 65 6e 5f 47 4f 54 4f 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e en_GOTO'.=>.$vendorDir...'/phpun
e68c0 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
e68e0 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 47 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 p',.'PHP_Token_GT'.=>.$vendorDir
e6900 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
e6920 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 48 41 4c 54 5f 43 4f P/Token.php',.'PHP_Token_HALT_CO
e6940 4d 50 49 4c 45 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 MPILER'.=>.$vendorDir...'/phpuni
e6960 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 t/php-token-stream/PHP/Token.php
e6980 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 46 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 ',.'PHP_Token_IF'.=>.$vendorDir.
e69a0 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 ..'/phpunit/php-token-stream/PHP
e69c0 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 4d 50 4c 45 4d 45 4e /Token.php',.'PHP_Token_IMPLEMEN
e69e0 54 53 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 TS'.=>.$vendorDir...'/phpunit/ph
e6a00 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 p-token-stream/PHP/Token.php',.'
e6a20 50 48 50 5f 54 6f 6b 65 6e 5f 49 4e 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 PHP_Token_INC'.=>.$vendorDir...'
e6a40 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
e6a60 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 4e 43 4c 55 44 45 27 20 3d 3e ken.php',.'PHP_Token_INCLUDE'.=>
e6a80 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 .$vendorDir...'/phpunit/php-toke
e6aa0 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f n-stream/PHP/Token.php',.'PHP_To
e6ac0 6b 65 6e 5f 49 4e 43 4c 55 44 45 5f 4f 4e 43 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 ken_INCLUDE_ONCE'.=>.$vendorDir.
e6ae0 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 ..'/phpunit/php-token-stream/PHP
e6b00 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 4e 4c 49 4e 45 5f 48 /Token.php',.'PHP_Token_INLINE_H
e6b20 54 4d 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 TML'.=>.$vendorDir...'/phpunit/p
e6b40 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a hp-token-stream/PHP/Token.php',.
e6b60 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 4e 53 54 41 4e 43 45 4f 46 27 20 3d 3e 20 24 76 65 6e 64 6f 'PHP_Token_INSTANCEOF'.=>.$vendo
e6b80 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 rDir...'/phpunit/php-token-strea
e6ba0 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 4e 53 m/PHP/Token.php',.'PHP_Token_INS
e6bc0 54 45 41 44 4f 46 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 TEADOF'.=>.$vendorDir...'/phpuni
e6be0 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 t/php-token-stream/PHP/Token.php
e6c00 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 4e 54 45 52 46 41 43 45 27 20 3d 3e 20 24 76 65 6e ',.'PHP_Token_INTERFACE'.=>.$ven
e6c20 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 dorDir...'/phpunit/php-token-str
e6c40 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 eam/PHP/Token.php',.'PHP_Token_I
e6c60 4e 54 5f 43 41 53 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e NT_CAST'.=>.$vendorDir...'/phpun
e6c80 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
e6ca0 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 53 53 45 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 p',.'PHP_Token_ISSET'.=>.$vendor
e6cc0 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d Dir...'/phpunit/php-token-stream
e6ce0 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 53 5f 45 /PHP/Token.php',.'PHP_Token_IS_E
e6d00 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f QUAL'.=>.$vendorDir...'/phpunit/
e6d20 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c php-token-stream/PHP/Token.php',
e6d40 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 53 5f 47 52 45 41 54 45 52 5f 4f 52 5f 45 51 55 41 4c 27 .'PHP_Token_IS_GREATER_OR_EQUAL'
e6d60 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 .=>.$vendorDir...'/phpunit/php-t
e6d80 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 oken-stream/PHP/Token.php',.'PHP
e6da0 5f 54 6f 6b 65 6e 5f 49 53 5f 49 44 45 4e 54 49 43 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 _Token_IS_IDENTICAL'.=>.$vendorD
e6dc0 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
e6de0 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 53 5f 4e 4f PHP/Token.php',.'PHP_Token_IS_NO
e6e00 54 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e T_EQUAL'.=>.$vendorDir...'/phpun
e6e20 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
e6e40 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 49 53 5f 4e 4f 54 5f 49 44 45 4e 54 49 43 41 4c 27 p',.'PHP_Token_IS_NOT_IDENTICAL'
e6e60 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 .=>.$vendorDir...'/phpunit/php-t
e6e80 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 oken-stream/PHP/Token.php',.'PHP
e6ea0 5f 54 6f 6b 65 6e 5f 49 53 5f 53 4d 41 4c 4c 45 52 5f 4f 52 5f 45 51 55 41 4c 27 20 3d 3e 20 24 _Token_IS_SMALLER_OR_EQUAL'.=>.$
e6ec0 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d vendorDir...'/phpunit/php-token-
e6ee0 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 stream/PHP/Token.php',.'PHP_Toke
e6f00 6e 5f 49 6e 63 6c 75 64 65 73 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 n_Includes'.=>.$vendorDir...'/ph
e6f20 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e punit/php-token-stream/PHP/Token
e6f40 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4c 49 4e 45 27 20 3d 3e 20 24 76 65 6e 64 .php',.'PHP_Token_LINE'.=>.$vend
e6f60 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 orDir...'/phpunit/php-token-stre
e6f80 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4c 49 am/PHP/Token.php',.'PHP_Token_LI
e6fa0 53 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 ST'.=>.$vendorDir...'/phpunit/ph
e6fc0 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 p-token-stream/PHP/Token.php',.'
e6fe0 50 48 50 5f 54 6f 6b 65 6e 5f 4c 4e 55 4d 42 45 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 PHP_Token_LNUMBER'.=>.$vendorDir
e7000 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
e7020 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4c 4f 47 49 43 41 4c P/Token.php',.'PHP_Token_LOGICAL
e7040 5f 41 4e 44 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f _AND'.=>.$vendorDir...'/phpunit/
e7060 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c php-token-stream/PHP/Token.php',
e7080 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4c 4f 47 49 43 41 4c 5f 4f 52 27 20 3d 3e 20 24 76 65 6e 64 .'PHP_Token_LOGICAL_OR'.=>.$vend
e70a0 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 orDir...'/phpunit/php-token-stre
e70c0 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4c 4f am/PHP/Token.php',.'PHP_Token_LO
e70e0 47 49 43 41 4c 5f 58 4f 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 GICAL_XOR'.=>.$vendorDir...'/php
e7100 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e unit/php-token-stream/PHP/Token.
e7120 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4c 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 php',.'PHP_Token_LT'.=>.$vendorD
e7140 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
e7160 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4d 45 54 48 4f PHP/Token.php',.'PHP_Token_METHO
e7180 44 5f 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 D_C'.=>.$vendorDir...'/phpunit/p
e71a0 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a hp-token-stream/PHP/Token.php',.
e71c0 27 50 48 50 5f 54 6f 6b 65 6e 5f 4d 49 4e 55 53 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 'PHP_Token_MINUS'.=>.$vendorDir.
e71e0 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 ..'/phpunit/php-token-stream/PHP
e7200 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4d 49 4e 55 53 5f 45 51 /Token.php',.'PHP_Token_MINUS_EQ
e7220 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 UAL'.=>.$vendorDir...'/phpunit/p
e7240 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a hp-token-stream/PHP/Token.php',.
e7260 27 50 48 50 5f 54 6f 6b 65 6e 5f 4d 4f 44 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 'PHP_Token_MOD_EQUAL'.=>.$vendor
e7280 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d Dir...'/phpunit/php-token-stream
e72a0 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4d 55 4c 54 /PHP/Token.php',.'PHP_Token_MULT
e72c0 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d '.=>.$vendorDir...'/phpunit/php-
e72e0 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 token-stream/PHP/Token.php',.'PH
e7300 50 5f 54 6f 6b 65 6e 5f 4d 55 4c 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 P_Token_MUL_EQUAL'.=>.$vendorDir
e7320 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
e7340 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4e 41 4d 45 53 50 41 P/Token.php',.'PHP_Token_NAMESPA
e7360 43 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 CE'.=>.$vendorDir...'/phpunit/ph
e7380 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 p-token-stream/PHP/Token.php',.'
e73a0 50 48 50 5f 54 6f 6b 65 6e 5f 4e 45 57 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 PHP_Token_NEW'.=>.$vendorDir...'
e73c0 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
e73e0 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4e 53 5f 43 27 20 3d 3e 20 24 76 ken.php',.'PHP_Token_NS_C'.=>.$v
e7400 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 endorDir...'/phpunit/php-token-s
e7420 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e tream/PHP/Token.php',.'PHP_Token
e7440 5f 4e 53 5f 53 45 50 41 52 41 54 4f 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 _NS_SEPARATOR'.=>.$vendorDir...'
e7460 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
e7480 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4e 55 4d 5f 53 54 52 49 4e 47 27 ken.php',.'PHP_Token_NUM_STRING'
e74a0 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 .=>.$vendorDir...'/phpunit/php-t
e74c0 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 oken-stream/PHP/Token.php',.'PHP
e74e0 5f 54 6f 6b 65 6e 5f 4f 42 4a 45 43 54 5f 43 41 53 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 _Token_OBJECT_CAST'.=>.$vendorDi
e7500 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 r...'/phpunit/php-token-stream/P
e7520 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4f 42 4a 45 43 54 HP/Token.php',.'PHP_Token_OBJECT
e7540 5f 4f 50 45 52 41 54 4f 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 _OPERATOR'.=>.$vendorDir...'/php
e7560 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e unit/php-token-stream/PHP/Token.
e7580 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4f 50 45 4e 5f 42 52 41 43 4b 45 54 27 20 3d php',.'PHP_Token_OPEN_BRACKET'.=
e75a0 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b >.$vendorDir...'/phpunit/php-tok
e75c0 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 en-stream/PHP/Token.php',.'PHP_T
e75e0 6f 6b 65 6e 5f 4f 50 45 4e 5f 43 55 52 4c 59 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e oken_OPEN_CURLY'.=>.$vendorDir..
e7600 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f .'/phpunit/php-token-stream/PHP/
e7620 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4f 50 45 4e 5f 53 51 55 41 Token.php',.'PHP_Token_OPEN_SQUA
e7640 52 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 RE'.=>.$vendorDir...'/phpunit/ph
e7660 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 p-token-stream/PHP/Token.php',.'
e7680 50 48 50 5f 54 6f 6b 65 6e 5f 4f 50 45 4e 5f 54 41 47 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 PHP_Token_OPEN_TAG'.=>.$vendorDi
e76a0 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 r...'/phpunit/php-token-stream/P
e76c0 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4f 50 45 4e 5f 54 HP/Token.php',.'PHP_Token_OPEN_T
e76e0 41 47 5f 57 49 54 48 5f 45 43 48 4f 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f AG_WITH_ECHO'.=>.$vendorDir...'/
e7700 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b phpunit/php-token-stream/PHP/Tok
e7720 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 4f 52 5f 45 51 55 41 4c 27 20 3d 3e en.php',.'PHP_Token_OR_EQUAL'.=>
e7740 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 .$vendorDir...'/phpunit/php-toke
e7760 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f n-stream/PHP/Token.php',.'PHP_To
e7780 6b 65 6e 5f 50 41 41 4d 41 59 49 4d 5f 4e 45 4b 55 44 4f 54 41 59 49 4d 27 20 3d 3e 20 24 76 65 ken_PAAMAYIM_NEKUDOTAYIM'.=>.$ve
e77a0 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 ndorDir...'/phpunit/php-token-st
e77c0 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f ream/PHP/Token.php',.'PHP_Token_
e77e0 50 45 52 43 45 4e 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e PERCENT'.=>.$vendorDir...'/phpun
e7800 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
e7820 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 50 49 50 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 p',.'PHP_Token_PIPE'.=>.$vendorD
e7840 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f ir...'/phpunit/php-token-stream/
e7860 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 50 4c 55 53 27 PHP/Token.php',.'PHP_Token_PLUS'
e7880 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 .=>.$vendorDir...'/phpunit/php-t
e78a0 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 oken-stream/PHP/Token.php',.'PHP
e78c0 5f 54 6f 6b 65 6e 5f 50 4c 55 53 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 _Token_PLUS_EQUAL'.=>.$vendorDir
e78e0 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
e7900 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 50 52 49 4e 54 27 20 P/Token.php',.'PHP_Token_PRINT'.
e7920 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f =>.$vendorDir...'/phpunit/php-to
e7940 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f ken-stream/PHP/Token.php',.'PHP_
e7960 54 6f 6b 65 6e 5f 50 52 49 56 41 54 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 Token_PRIVATE'.=>.$vendorDir...'
e7980 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
e79a0 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 50 52 4f 54 45 43 54 45 44 27 20 ken.php',.'PHP_Token_PROTECTED'.
e79c0 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f =>.$vendorDir...'/phpunit/php-to
e79e0 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f ken-stream/PHP/Token.php',.'PHP_
e7a00 54 6f 6b 65 6e 5f 50 55 42 4c 49 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f Token_PUBLIC'.=>.$vendorDir...'/
e7a20 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b phpunit/php-token-stream/PHP/Tok
e7a40 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 51 55 45 53 54 49 4f 4e 5f 4d 41 52 en.php',.'PHP_Token_QUESTION_MAR
e7a60 4b 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 K'.=>.$vendorDir...'/phpunit/php
e7a80 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
e7aa0 48 50 5f 54 6f 6b 65 6e 5f 52 45 51 55 49 52 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 HP_Token_REQUIRE'.=>.$vendorDir.
e7ac0 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 ..'/phpunit/php-token-stream/PHP
e7ae0 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 52 45 51 55 49 52 45 5f /Token.php',.'PHP_Token_REQUIRE_
e7b00 4f 4e 43 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f ONCE'.=>.$vendorDir...'/phpunit/
e7b20 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c php-token-stream/PHP/Token.php',
e7b40 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 52 45 54 55 52 4e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 .'PHP_Token_RETURN'.=>.$vendorDi
e7b60 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 r...'/phpunit/php-token-stream/P
e7b80 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 45 4d 49 43 4f HP/Token.php',.'PHP_Token_SEMICO
e7ba0 4c 4f 4e 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 LON'.=>.$vendorDir...'/phpunit/p
e7bc0 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a hp-token-stream/PHP/Token.php',.
e7be0 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 4c 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 'PHP_Token_SL'.=>.$vendorDir...'
e7c00 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
e7c20 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 4c 5f 45 51 55 41 4c 27 20 3d ken.php',.'PHP_Token_SL_EQUAL'.=
e7c40 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b >.$vendorDir...'/phpunit/php-tok
e7c60 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 en-stream/PHP/Token.php',.'PHP_T
e7c80 6f 6b 65 6e 5f 53 52 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e oken_SR'.=>.$vendorDir...'/phpun
e7ca0 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
e7cc0 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 52 5f 45 51 55 41 4c 27 20 3d 3e 20 24 76 65 6e p',.'PHP_Token_SR_EQUAL'.=>.$ven
e7ce0 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 dorDir...'/phpunit/php-token-str
e7d00 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 eam/PHP/Token.php',.'PHP_Token_S
e7d20 54 41 52 54 5f 48 45 52 45 44 4f 43 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f TART_HEREDOC'.=>.$vendorDir...'/
e7d40 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b phpunit/php-token-stream/PHP/Tok
e7d60 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 54 41 54 49 43 27 20 3d 3e 20 24 en.php',.'PHP_Token_STATIC'.=>.$
e7d80 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d vendorDir...'/phpunit/php-token-
e7da0 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 stream/PHP/Token.php',.'PHP_Toke
e7dc0 6e 5f 53 54 52 49 4e 47 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 n_STRING'.=>.$vendorDir...'/phpu
e7de0 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 nit/php-token-stream/PHP/Token.p
e7e00 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 54 52 49 4e 47 5f 43 41 53 54 27 20 3d 3e 20 hp',.'PHP_Token_STRING_CAST'.=>.
e7e20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e $vendorDir...'/phpunit/php-token
e7e40 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b -stream/PHP/Token.php',.'PHP_Tok
e7e60 65 6e 5f 53 54 52 49 4e 47 5f 56 41 52 4e 41 4d 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 en_STRING_VARNAME'.=>.$vendorDir
e7e80 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
e7ea0 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 57 49 54 43 48 27 P/Token.php',.'PHP_Token_SWITCH'
e7ec0 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 .=>.$vendorDir...'/phpunit/php-t
e7ee0 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 oken-stream/PHP/Token.php',.'PHP
e7f00 5f 54 6f 6b 65 6e 5f 53 74 72 65 61 6d 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 _Token_Stream'.=>.$vendorDir...'
e7f20 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
e7f40 6b 65 6e 2f 53 74 72 65 61 6d 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 53 74 72 65 ken/Stream.php',.'PHP_Token_Stre
e7f60 61 6d 5f 43 61 63 68 69 6e 67 46 61 63 74 6f 72 79 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 am_CachingFactory'.=>.$vendorDir
e7f80 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 ...'/phpunit/php-token-stream/PH
e7fa0 50 2f 54 6f 6b 65 6e 2f 53 74 72 65 61 6d 2f 43 61 63 68 69 6e 67 46 61 63 74 6f 72 79 2e 70 68 P/Token/Stream/CachingFactory.ph
e7fc0 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 54 48 52 4f 57 27 20 3d 3e 20 24 76 65 6e 64 6f 72 p',.'PHP_Token_THROW'.=>.$vendor
e7fe0 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d Dir...'/phpunit/php-token-stream
e8000 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 54 49 4c 44 /PHP/Token.php',.'PHP_Token_TILD
e8020 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 E'.=>.$vendorDir...'/phpunit/php
e8040 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 -token-stream/PHP/Token.php',.'P
e8060 48 50 5f 54 6f 6b 65 6e 5f 54 52 41 49 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 HP_Token_TRAIT'.=>.$vendorDir...
e8080 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 '/phpunit/php-token-stream/PHP/T
e80a0 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 54 52 41 49 54 5f 43 27 20 3d oken.php',.'PHP_Token_TRAIT_C'.=
e80c0 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b >.$vendorDir...'/phpunit/php-tok
e80e0 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 en-stream/PHP/Token.php',.'PHP_T
e8100 6f 6b 65 6e 5f 54 52 59 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 oken_TRY'.=>.$vendorDir...'/phpu
e8120 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 nit/php-token-stream/PHP/Token.p
e8140 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 55 4e 53 45 54 27 20 3d 3e 20 24 76 65 6e 64 6f hp',.'PHP_Token_UNSET'.=>.$vendo
e8160 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 rDir...'/phpunit/php-token-strea
e8180 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 55 4e 53 m/PHP/Token.php',.'PHP_Token_UNS
e81a0 45 54 5f 43 41 53 54 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e ET_CAST'.=>.$vendorDir...'/phpun
e81c0 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 it/php-token-stream/PHP/Token.ph
e81e0 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 55 53 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 p',.'PHP_Token_USE'.=>.$vendorDi
e8200 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 r...'/phpunit/php-token-stream/P
e8220 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 56 41 52 27 20 3d HP/Token.php',.'PHP_Token_VAR'.=
e8240 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b >.$vendorDir...'/phpunit/php-tok
e8260 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 en-stream/PHP/Token.php',.'PHP_T
e8280 6f 6b 65 6e 5f 56 41 52 49 41 42 4c 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 oken_VARIABLE'.=>.$vendorDir...'
e82a0 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f /phpunit/php-token-stream/PHP/To
e82c0 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 57 48 49 4c 45 27 20 3d 3e 20 24 ken.php',.'PHP_Token_WHILE'.=>.$
e82e0 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d vendorDir...'/phpunit/php-token-
e8300 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 stream/PHP/Token.php',.'PHP_Toke
e8320 6e 5f 57 48 49 54 45 53 50 41 43 45 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f n_WHITESPACE'.=>.$vendorDir...'/
e8340 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b phpunit/php-token-stream/PHP/Tok
e8360 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 6f 6b 65 6e 5f 58 4f 52 5f 45 51 55 41 4c 27 20 3d en.php',.'PHP_Token_XOR_EQUAL'.=
e8380 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b >.$vendorDir...'/phpunit/php-tok
e83a0 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e 2e 70 68 70 27 2c 0a 27 50 48 50 5f 54 en-stream/PHP/Token.php',.'PHP_T
e83c0 6f 6b 65 6e 5f 59 49 45 4c 44 27 20 3d 3e 20 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 oken_YIELD'.=>.$vendorDir...'/ph
e83e0 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 6e 2d 73 74 72 65 61 6d 2f 50 48 50 2f 54 6f 6b 65 6e punit/php-token-stream/PHP/Token
e8400 2e 70 68 70 27 2c 0a 27 54 65 78 74 5f 54 65 6d 70 6c 61 74 65 27 20 3d 3e 20 24 76 65 6e 64 6f .php',.'Text_Template'.=>.$vendo
e8420 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 65 78 74 2d 74 65 6d 70 6c 61 rDir...'/phpunit/php-text-templa
e8440 74 65 2f 54 65 78 74 2f 54 65 6d 70 6c 61 74 65 2e 70 68 70 27 2c 0a 29 3b 0a 3c 3f 70 68 70 0a te/Text/Template.php',.);.<?php.
e8460 0a 0a 0a 63 6c 61 73 73 20 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 39 ...class.ComposerAutoloaderInit9
e8480 65 37 64 38 36 36 64 63 36 36 64 39 32 31 39 65 66 38 36 35 32 63 61 38 36 38 39 61 63 39 35 0a e7d866dc66d9219ef8652ca8689ac95.
e84a0 7b 0a 70 72 69 76 61 74 65 20 73 74 61 74 69 63 20 24 6c 6f 61 64 65 72 3b 0a 0a 70 75 62 6c 69 {.private.static.$loader;..publi
e84c0 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 6c 6f 61 64 43 6c 61 73 73 4c 6f 61 64 65 c.static.function.loadClassLoade
e84e0 72 28 24 63 6c 61 73 73 29 0a 7b 0a 69 66 20 28 27 43 6f 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f r($class).{.if.('Composer\Autolo
e8500 61 64 5c 43 6c 61 73 73 4c 6f 61 64 65 72 27 20 3d 3d 3d 20 24 63 6c 61 73 73 29 20 7b 0a 72 65 ad\ClassLoader'.===.$class).{.re
e8520 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 43 6c 61 73 73 4c 6f 61 64 65 72 2e 70 68 quire.__DIR__...'/ClassLoader.ph
e8540 70 27 3b 0a 7d 0a 7d 0a 0a 70 75 62 6c 69 63 20 73 74 61 74 69 63 20 66 75 6e 63 74 69 6f 6e 20 p';.}.}..public.static.function.
e8560 67 65 74 4c 6f 61 64 65 72 28 29 0a 7b 0a 69 66 20 28 6e 75 6c 6c 20 21 3d 3d 20 73 65 6c 66 3a getLoader().{.if.(null.!==.self:
e8580 3a 24 6c 6f 61 64 65 72 29 20 7b 0a 72 65 74 75 72 6e 20 73 65 6c 66 3a 3a 24 6c 6f 61 64 65 72 :$loader).{.return.self::$loader
e85a0 3b 0a 7d 0a 0a 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
e85c0 28 27 43 6f 6d 70 6f 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 39 65 37 64 38 36 36 64 ('ComposerAutoloaderInit9e7d866d
e85e0 63 36 36 64 39 32 31 39 65 66 38 36 35 32 63 61 38 36 38 39 61 63 39 35 27 2c 20 27 6c 6f 61 64 c66d9219ef8652ca8689ac95',.'load
e8600 43 6c 61 73 73 4c 6f 61 64 65 72 27 29 2c 20 74 72 75 65 2c 20 74 72 75 65 29 3b 0a 73 65 6c 66 ClassLoader'),.true,.true);.self
e8620 3a 3a 24 6c 6f 61 64 65 72 20 3d 20 24 6c 6f 61 64 65 72 20 3d 20 6e 65 77 20 5c 43 6f 6d 70 6f ::$loader.=.$loader.=.new.\Compo
e8640 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 73 70 6c 5f ser\Autoload\ClassLoader();.spl_
e8660 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 27 43 6f 6d 70 6f autoload_unregister(array('Compo
e8680 73 65 72 41 75 74 6f 6c 6f 61 64 65 72 49 6e 69 74 39 65 37 64 38 36 36 64 63 36 36 64 39 32 31 serAutoloaderInit9e7d866dc66d921
e86a0 39 65 66 38 36 35 32 63 61 38 36 38 39 61 63 39 35 27 2c 20 27 6c 6f 61 64 43 6c 61 73 73 4c 6f 9ef8652ca8689ac95',.'loadClassLo
e86c0 61 64 65 72 27 29 29 3b 0a 0a 24 76 65 6e 64 6f 72 44 69 72 20 3d 20 64 69 72 6e 61 6d 65 28 5f ader'));..$vendorDir.=.dirname(_
e86e0 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
e8700 64 6f 72 44 69 72 29 3b 0a 0a 24 69 6e 63 6c 75 64 65 50 61 74 68 73 20 3d 20 72 65 71 75 69 72 dorDir);..$includePaths.=.requir
e8720 65 20 5f 5f 44 49 52 5f 5f 20 2e 20 27 2f 69 6e 63 6c 75 64 65 5f 70 61 74 68 73 2e 70 68 70 27 e.__DIR__...'/include_paths.php'
e8740 3b 0a 61 72 72 61 79 5f 70 75 73 68 28 24 69 6e 63 6c 75 64 65 50 61 74 68 73 2c 20 67 65 74 5f ;.array_push($includePaths,.get_
e8760 69 6e 63 6c 75 64 65 5f 70 61 74 68 28 29 29 3b 0a 73 65 74 5f 69 6e 63 6c 75 64 65 5f 70 61 74 include_path());.set_include_pat
e8780 68 28 6a 6f 69 6e 28 50 41 54 48 5f 53 45 50 41 52 41 54 4f 52 2c 20 24 69 6e 63 6c 75 64 65 50 h(join(PATH_SEPARATOR,.$includeP
e87a0 61 74 68 73 29 29 3b 0a 0a 24 6d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 20 aths));..$map.=.require.__DIR__.
e87c0 2e 20 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 27 3b 0a 66 6f ..'/autoload_namespaces.php';.fo
e87e0 72 65 61 63 68 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 reach.($map.as.$namespace.=>.$pa
e8800 74 68 29 20 7b 0a 24 6c 6f 61 64 65 72 2d 3e 73 65 74 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 th).{.$loader->set($namespace,.$
e8820 70 61 74 68 29 3b 0a 7d 0a 0a 24 6d 61 70 20 3d 20 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f path);.}..$map.=.require.__DIR__
e8840 20 2e 20 27 2f 61 75 74 6f 6c 6f 61 64 5f 70 73 72 34 2e 70 68 70 27 3b 0a 66 6f 72 65 61 63 68 ...'/autoload_psr4.php';.foreach
e8860 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).{
e8880 0a 24 6c 6f 61 64 65 72 2d 3e 73 65 74 50 73 72 34 28 24 6e 61 6d 65 73 70 61 63 65 2c 20 24 70 .$loader->setPsr4($namespace,.$p
e88a0 61 74 68 29 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 5f 5f 44 ath);.}..$classMap.=.require.__D
e88c0 49 52 5f 5f 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 3b IR__...'/autoload_classmap.php';
e88e0 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 6c .if.($classMap).{.$loader->addCl
e8900 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 72 assMap($classMap);.}..$loader->r
e8920 65 67 69 73 74 65 72 28 74 72 75 65 29 3b 0a 0a 72 65 74 75 72 6e 20 24 6c 6f 61 64 65 72 3b 0a egister(true);..return.$loader;.
e8940 7d 0a 7d 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 }.}.<?php....$vendorDir.=.dirnam
e8960 65 28 64 69 72 6e 61 6d 65 28 5f 5f 46 49 4c 45 5f 5f 29 29 3b 0a 24 62 61 73 65 44 69 72 20 3d e(dirname(__FILE__));.$baseDir.=
e8980 20 64 69 72 6e 61 6d 65 28 24 76 65 6e 64 6f 72 44 69 72 29 3b 0a 0a 72 65 74 75 72 6e 20 61 72 .dirname($vendorDir);..return.ar
e89a0 72 61 79 28 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d ray(.$vendorDir...'/phpunit/php-
e89c0 74 65 78 74 2d 74 65 6d 70 6c 61 74 65 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 text-template',.$vendorDir...'/p
e89e0 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 2d 6d 6f 63 6b 2d 6f 62 6a 65 63 74 73 27 2c 0a 24 76 hpunit/phpunit-mock-objects',.$v
e8a00 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 69 6d 65 72 27 2c endorDir...'/phpunit/php-timer',
e8a20 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 74 6f 6b 65 .$vendorDir...'/phpunit/php-toke
e8a40 6e 2d 73 74 72 65 61 6d 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 n-stream',.$vendorDir...'/phpuni
e8a60 74 2f 70 68 70 2d 63 6f 64 65 2d 63 6f 76 65 72 61 67 65 27 2c 0a 24 76 65 6e 64 6f 72 44 69 72 t/php-code-coverage',.$vendorDir
e8a80 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 2d 66 69 6c 65 2d 69 74 65 72 61 74 6f 72 27 2c ...'/phpunit/php-file-iterator',
e8aa0 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 70 68 70 75 6e 69 74 2f 70 68 70 75 6e 69 74 27 .$vendorDir...'/phpunit/phpunit'
e8ac0 2c 0a 24 76 65 6e 64 6f 72 44 69 72 20 2e 20 27 2f 73 79 6d 66 6f 6e 79 2f 79 61 6d 6c 27 2c 0a ,.$vendorDir...'/symfony/yaml',.
e8ae0 29 3b 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
e8b00 6d 70 6f 73 65 72 5c 41 75 74 6f 6c 6f 61 64 3b 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a mposer\Autoload;................
e8b20 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 0a 63 6c 61 73 73 20 43 6c 61 73 73 4c 6f 61 64 65 72 0a ..............class.ClassLoader.
e8b40 7b 0a 0a 20 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 34 20 3d {...private.$prefixLengthsPsr4.=
e8b60 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 70 72 65 66 69 78 44 69 72 73 50 73 72 .array();.private.$prefixDirsPsr
e8b80 34 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 61 6c 6c 62 61 63 6b 44 69 4.=.array();.private.$fallbackDi
e8ba0 72 73 50 73 72 34 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 0a 20 70 72 69 76 61 74 65 20 24 70 72 rsPsr4.=.array();....private.$pr
e8bc0 65 66 69 78 65 73 50 73 72 30 20 3d 20 61 72 72 61 79 28 29 3b 0a 70 72 69 76 61 74 65 20 24 66 efixesPsr0.=.array();.private.$f
e8be0 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 72 69 76 allbackDirsPsr0.=.array();..priv
e8c00 61 74 65 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 66 61 6c 73 65 3b 0a 70 72 69 ate.$useIncludePath.=.false;.pri
e8c20 76 61 74 65 20 24 63 6c 61 73 73 4d 61 70 20 3d 20 61 72 72 61 79 28 29 3b 0a 0a 70 75 62 6c 69 vate.$classMap.=.array();..publi
e8c40 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 28 29 0a 7b 0a 72 65 74 75 72 c.function.getPrefixes().{.retur
e8c60 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 6d 65 n.call_user_func_array('array_me
e8c80 72 67 65 27 2c 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 29 3b 0a 7d 0a 0a 70 rge',.$this->prefixesPsr0);.}..p
e8ca0 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 50 72 65 66 69 78 65 73 50 73 72 34 28 29 ublic.function.getPrefixesPsr4()
e8cc0 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 3b .{.return.$this->prefixDirsPsr4;
e8ce0 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 6c 6c 62 61 63 6b 44 .}..public.function.getFallbackD
e8d00 69 72 73 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 irs().{.return.$this->fallbackDi
e8d20 72 73 50 73 72 30 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 67 65 74 46 61 rsPsr0;.}..public.function.getFa
e8d40 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 28 29 0a 7b 0a 72 65 74 75 72 6e 20 24 74 68 69 73 2d llbackDirsPsr4().{.return.$this-
e8d60 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 3b 0a 7d 0a 0a 70 75 62 6c 69 63 20 66 75 6e >fallbackDirsPsr4;.}..public.fun
e8d80 63 74 69 6f 6e 20 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 ction.getClassMap().{.return.$th
e8da0 69 73 2d 3e 63 6c 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 is->classMap;.}.....public.funct
e8dc0 69 6f 6e 20 61 64 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 ion.addClassMap(array.$classMap)
e8de0 0a 7b 0a 69 66 20 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 .{.if.($this->classMap).{.$this-
e8e00 3e 63 6c 61 73 73 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 >classMap.=.array_merge($this->c
e8e20 6c 61 73 73 4d 61 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 lassMap,.$classMap);.}.else.{.$t
e8e40 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 7d 0a 7d 0a 0a his->classMap.=.$classMap;.}.}..
e8e60 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 28 24 70 72 65 ........public.function.add($pre
e8e80 66 69 78 2c 20 24 70 61 74 68 73 2c 20 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a 7b fix,.$paths,.$prepend.=.false).{
e8ea0 0a 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b .if.(!$prefix).{.if.($prepend).{
e8ec0 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 .$this->fallbackDirsPsr0.=.array
e8ee0 5f 6d 65 72 67 65 28 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 24 74 68 69 73 2d 3e 66 _merge(.(array).$paths,.$this->f
e8f00 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 allbackDirsPsr0.);.}.else.{.$thi
e8f20 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 s->fallbackDirsPsr0.=.array_merg
e8f40 65 28 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 2c 0a 28 61 72 72 e(.$this->fallbackDirsPsr0,.(arr
e8f60 61 79 29 20 24 70 61 74 68 73 0a 29 3b 0a 7d 0a 0a 72 65 74 75 72 6e 3b 0a 7d 0a 0a 24 66 69 72 ay).$paths.);.}..return;.}..$fir
e8f80 73 74 20 3d 20 24 70 72 65 66 69 78 5b 30 5d 3b 0a 69 66 20 28 21 69 73 73 65 74 28 24 74 68 69 st.=.$prefix[0];.if.(!isset($thi
e8fa0 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d s->prefixesPsr0[$first][$prefix]
e8fc0 29 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d )).{.$this->prefixesPsr0[$first]
e8fe0 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 0a 72 65 74 [$prefix].=.(array).$paths;..ret
e9000 75 72 6e 3b 0a 7d 0a 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 24 74 68 69 73 2d 3e 70 72 urn;.}.if.($prepend).{.$this->pr
e9020 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 efixesPsr0[$first][$prefix].=.ar
e9040 72 61 79 5f 6d 65 72 67 65 28 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 24 74 68 69 73 ray_merge(.(array).$paths,.$this
e9060 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 0a ->prefixesPsr0[$first][$prefix].
e9080 29 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 50 73 72 30 5b );.}.else.{.$this->prefixesPsr0[
e90a0 24 66 69 72 73 74 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 0a $first][$prefix].=.array_merge(.
e90c0 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 5b 24 70 72 65 $this->prefixesPsr0[$first][$pre
e90e0 66 69 78 5d 2c 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 29 3b 0a 7d 0a 7d 0a 0a 0a 0a 0a fix],.(array).$paths.);.}.}.....
e9100 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 73 72 34 28 24 70 72 .....public.function.addPsr4($pr
e9120 65 66 69 78 2c 20 24 70 61 74 68 73 2c 20 24 70 72 65 70 65 6e 64 20 3d 20 66 61 6c 73 65 29 0a efix,.$paths,.$prepend.=.false).
e9140 7b 0a 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 0a 20 69 66 20 28 24 70 72 65 70 65 6e 64 {.if.(!$prefix).{...if.($prepend
e9160 29 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d 20 61 72 ).{.$this->fallbackDirsPsr4.=.ar
e9180 72 61 79 5f 6d 65 72 67 65 28 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 24 74 68 69 73 ray_merge(.(array).$paths,.$this
e91a0 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 ->fallbackDirsPsr4.);.}.else.{.$
e91c0 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d 20 61 72 72 61 79 5f 6d this->fallbackDirsPsr4.=.array_m
e91e0 65 72 67 65 28 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 34 2c 0a 28 erge(.$this->fallbackDirsPsr4,.(
e9200 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 29 3b 0a 7d 0a 7d 20 65 6c 73 65 69 66 20 28 21 69 73 array).$paths.);.}.}.elseif.(!is
e9220 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 set($this->prefixDirsPsr4[$prefi
e9240 78 5d 29 29 20 7b 0a 0a 20 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 x])).{...$length.=.strlen($prefi
e9260 78 29 3b 0a 69 66 20 28 27 5c 5c 27 20 21 3d 3d 20 24 70 72 65 66 69 78 5b 24 6c 65 6e 67 74 68 x);.if.('\\'.!==.$prefix[$length
e9280 20 2d 20 31 5d 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 .-.1]).{.throw.new.\InvalidArgum
e92a0 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 41 20 6e 6f 6e 2d 65 6d 70 74 79 20 50 53 52 2d 34 20 entException("A.non-empty.PSR-4.
e92c0 70 72 65 66 69 78 20 6d 75 73 74 20 65 6e 64 20 77 69 74 68 20 61 20 6e 61 6d 65 73 70 61 63 65 prefix.must.end.with.a.namespace
e92e0 20 73 65 70 61 72 61 74 6f 72 2e 22 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c 65 .separator.");.}.$this->prefixLe
e9300 6e 67 74 68 73 50 73 72 34 5b 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 65 66 69 78 5d 20 3d ngthsPsr4[$prefix[0]][$prefix].=
e9320 20 24 6c 65 6e 67 74 68 3b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b .$length;.$this->prefixDirsPsr4[
e9340 24 70 72 65 66 69 78 5d 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a 7d 20 65 6c 73 $prefix].=.(array).$paths;.}.els
e9360 65 69 66 20 28 24 70 72 65 70 65 6e 64 29 20 7b 0a 0a 20 24 74 68 69 73 2d 3e 70 72 65 66 69 78 eif.($prepend).{...$this->prefix
e9380 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 72 72 61 79 5f 6d 65 72 67 65 28 DirsPsr4[$prefix].=.array_merge(
e93a0 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 2c 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 .(array).$paths,.$this->prefixDi
e93c0 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 0a 29 3b 0a 7d 20 65 6c 73 65 20 7b 0a 0a 20 24 74 rsPsr4[$prefix].);.}.else.{...$t
e93e0 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d 20 3d 20 61 his->prefixDirsPsr4[$prefix].=.a
e9400 72 72 61 79 5f 6d 65 72 67 65 28 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 rray_merge(.$this->prefixDirsPsr
e9420 34 5b 24 70 72 65 66 69 78 5d 2c 0a 28 61 72 72 61 79 29 20 24 70 61 74 68 73 0a 29 3b 0a 7d 0a 4[$prefix],.(array).$paths.);.}.
e9440 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 28 24 70 }.........public.function.set($p
e9460 72 65 66 69 78 2c 20 24 70 61 74 68 73 29 0a 7b 0a 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b refix,.$paths).{.if.(!$prefix).{
e9480 0a 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 3d 20 28 61 72 72 61 .$this->fallbackDirsPsr0.=.(arra
e94a0 79 29 20 24 70 61 74 68 73 3b 0a 7d 20 65 6c 73 65 20 7b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 y).$paths;.}.else.{.$this->prefi
e94c0 78 65 73 50 73 72 30 5b 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 65 66 69 78 5d 20 3d 20 28 xesPsr0[$prefix[0]][$prefix].=.(
e94e0 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 0a 0a 70 75 62 6c 69 array).$paths;.}.}.........publi
e9500 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 50 73 72 34 28 24 70 72 65 66 69 78 2c 20 24 70 61 74 c.function.setPsr4($prefix,.$pat
e9520 68 73 29 20 7b 0a 69 66 20 28 21 24 70 72 65 66 69 78 29 20 7b 0a 24 74 68 69 73 2d 3e 66 61 6c hs).{.if.(!$prefix).{.$this->fal
e9540 6c 62 61 63 6b 44 69 72 73 50 73 72 34 20 3d 20 28 61 72 72 61 79 29 20 24 70 61 74 68 73 3b 0a lbackDirsPsr4.=.(array).$paths;.
e9560 7d 20 65 6c 73 65 20 7b 0a 24 6c 65 6e 67 74 68 20 3d 20 73 74 72 6c 65 6e 28 24 70 72 65 66 69 }.else.{.$length.=.strlen($prefi
e9580 78 29 3b 0a 69 66 20 28 27 5c 5c 27 20 21 3d 3d 20 24 70 72 65 66 69 78 5b 24 6c 65 6e 67 74 68 x);.if.('\\'.!==.$prefix[$length
e95a0 20 2d 20 31 5d 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 .-.1]).{.throw.new.\InvalidArgum
e95c0 65 6e 74 45 78 63 65 70 74 69 6f 6e 28 22 41 20 6e 6f 6e 2d 65 6d 70 74 79 20 50 53 52 2d 34 20 entException("A.non-empty.PSR-4.
e95e0 70 72 65 66 69 78 20 6d 75 73 74 20 65 6e 64 20 77 69 74 68 20 61 20 6e 61 6d 65 73 70 61 63 65 prefix.must.end.with.a.namespace
e9600 20 73 65 70 61 72 61 74 6f 72 2e 22 29 3b 0a 7d 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c 65 .separator.");.}.$this->prefixLe
e9620 6e 67 74 68 73 50 73 72 34 5b 24 70 72 65 66 69 78 5b 30 5d 5d 5b 24 70 72 65 66 69 78 5d 20 3d ngthsPsr4[$prefix[0]][$prefix].=
e9640 20 24 6c 65 6e 67 74 68 3b 0a 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b .$length;.$this->prefixDirsPsr4[
e9660 24 70 72 65 66 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 $prefix].=.(array).$paths;.}.}..
e9680 0a 0a 0a 0a 0a 70 75 62 6c 69 63 20 66 75 6e 63 74 69 6f 6e 20 73 65 74 55 73 65 49 6e 63 6c 75 .....public.function.setUseInclu
e96a0 64 65 50 61 74 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 dePath($useIncludePath).{.$this-
e96c0 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 3d 20 24 75 73 65 49 6e 63 6c 75 64 65 50 61 74 >useIncludePath.=.$useIncludePat
e96e0 68 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 65 74 55 h;.}........public.function.getU
e9700 73 65 49 6e 63 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 seIncludePath().{.return.$this->
e9720 75 73 65 49 6e 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 useIncludePath;.}.......public.f
e9740 75 6e 63 74 69 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 unction.register($prepend.=.fals
e9760 65 29 0a 7b 0a 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 e).{.spl_autoload_register(array
e9780 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
e97a0 70 65 6e 64 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 6e 72 pend);.}.....public.function.unr
e97c0 65 67 69 73 74 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 egister().{.spl_autoload_unregis
e97e0 74 65 72 28 61 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 ter(array($this,.'loadClass'));.
e9800 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 6c 6f 61 64 43 6c 61 }........public.function.loadCla
e9820 73 73 28 24 63 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 ss($class).{.if.($file.=.$this->
e9840 66 69 6e 64 46 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 findFile($class)).{.include.$fil
e9860 65 3b 0a 0a 72 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 e;..return.true;.}.}.........pub
e9880 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 7b 0a lic.function.findFile($class).{.
e98a0 0a 20 69 66 20 28 27 5c 5c 27 20 3d 3d 20 24 63 6c 61 73 73 5b 30 5d 29 20 7b 0a 24 63 6c 61 73 ..if.('\\'.==.$class[0]).{.$clas
e98c0 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 0a 20 69 66 20 28 s.=.substr($class,.1);.}....if.(
e98e0 69 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 isset($this->classMap[$class])).
e9900 7b 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 {.return.$this->classMap[$class]
e9920 3b 0a 7d 0a 0a 0a 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 20 3d 20 73 74 72 74 72 28 ;.}....$logicalPathPsr4.=.strtr(
e9940 24 63 6c 61 73 73 2c 20 27 5c 5c 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f $class,.'\\',.DIRECTORY_SEPARATO
e9960 52 29 20 2e 20 27 2e 70 68 70 27 3b 0a 0a 24 66 69 72 73 74 20 3d 20 24 63 6c 61 73 73 5b 30 5d R)...'.php';..$first.=.$class[0]
e9980 3b 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 4c 65 6e 67 74 68 73 ;.if.(isset($this->prefixLengths
e99a0 50 73 72 34 5b 24 66 69 72 73 74 5d 29 29 20 7b 0a 66 6f 72 65 61 63 68 20 28 24 74 68 69 73 2d Psr4[$first])).{.foreach.($this-
e99c0 3e 70 72 65 66 69 78 4c 65 6e 67 74 68 73 50 73 72 34 5b 24 66 69 72 73 74 5d 20 61 73 20 24 70 >prefixLengthsPsr4[$first].as.$p
e99e0 72 65 66 69 78 20 3d 3e 20 24 6c 65 6e 67 74 68 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 73 74 refix.=>.$length).{.if.(0.===.st
e9a00 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a 66 6f 72 65 61 63 68 rpos($class,.$prefix)).{.foreach
e9a20 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 44 69 72 73 50 73 72 34 5b 24 70 72 65 66 69 78 5d .($this->prefixDirsPsr4[$prefix]
e9a40 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c .as.$dir).{.if.(file_exists($fil
e9a60 65 20 3d 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e e.=.$dir...DIRECTORY_SEPARATOR..
e9a80 20 73 75 62 73 74 72 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 2c 20 24 6c 65 6e 67 74 .substr($logicalPathPsr4,.$lengt
e9aa0 68 29 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 7d 0a 7d 0a 0a h))).{.return.$file;.}.}.}.}.}..
e9ac0 0a 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 50 73 ..foreach.($this->fallbackDirsPs
e9ae0 72 34 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 r4.as.$dir).{.if.(file_exists($f
e9b00 69 6c 65 20 3d 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 ile.=.$dir...DIRECTORY_SEPARATOR
e9b20 20 2e 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 ...$logicalPathPsr4)).{.return.$
e9b40 66 69 6c 65 3b 0a 7d 0a 7d 0a 0a 0a 20 69 66 20 28 66 61 6c 73 65 20 21 3d 3d 20 24 70 6f 73 20 file;.}.}....if.(false.!==.$pos.
e9b60 3d 20 73 74 72 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 27 5c 5c 27 29 29 20 7b 0a 0a 20 24 6c 6f =.strrpos($class,.'\\')).{...$lo
e9b80 67 69 63 61 6c 50 61 74 68 50 73 72 30 20 3d 20 73 75 62 73 74 72 28 24 6c 6f 67 69 63 61 6c 50 gicalPathPsr0.=.substr($logicalP
e9ba0 61 74 68 50 73 72 34 2c 20 30 2c 20 24 70 6f 73 20 2b 20 31 29 0a 2e 20 73 74 72 74 72 28 73 75 athPsr4,.0,.$pos.+.1)...strtr(su
e9bc0 62 73 74 72 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 34 2c 20 24 70 6f 73 20 2b 20 31 29 bstr($logicalPathPsr4,.$pos.+.1)
e9be0 2c 20 27 5f 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 29 3b 0a 7d 20 65 ,.'_',.DIRECTORY_SEPARATOR);.}.e
e9c00 6c 73 65 20 7b 0a 0a 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 20 3d 20 73 74 72 74 72 lse.{...$logicalPathPsr0.=.strtr
e9c20 28 24 63 6c 61 73 73 2c 20 27 5f 27 2c 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f ($class,.'_',.DIRECTORY_SEPARATO
e9c40 52 29 20 2e 20 27 2e 70 68 70 27 3b 0a 7d 0a 0a 69 66 20 28 69 73 73 65 74 28 24 74 68 69 73 2d R)...'.php';.}..if.(isset($this-
e9c60 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 29 29 20 7b 0a 66 6f 72 65 61 63 >prefixesPsr0[$first])).{.foreac
e9c80 68 20 28 24 74 68 69 73 2d 3e 70 72 65 66 69 78 65 73 50 73 72 30 5b 24 66 69 72 73 74 5d 20 61 h.($this->prefixesPsr0[$first].a
e9ca0 73 20 24 70 72 65 66 69 78 20 3d 3e 20 24 64 69 72 73 29 20 7b 0a 69 66 20 28 30 20 3d 3d 3d 20 s.$prefix.=>.$dirs).{.if.(0.===.
e9cc0 73 74 72 70 6f 73 28 24 63 6c 61 73 73 2c 20 24 70 72 65 66 69 78 29 29 20 7b 0a 66 6f 72 65 61 strpos($class,.$prefix)).{.forea
e9ce0 63 68 20 28 24 64 69 72 73 20 61 73 20 24 64 69 72 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 ch.($dirs.as.$dir).{.if.(file_ex
e9d00 69 73 74 73 28 24 66 69 6c 65 20 3d 20 24 64 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 ists($file.=.$dir...DIRECTORY_SE
e9d20 50 41 52 41 54 4f 52 20 2e 20 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 29 29 20 7b 0a 72 PARATOR...$logicalPathPsr0)).{.r
e9d40 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a 7d 0a 7d 0a 7d 0a 7d 0a 0a 0a 20 66 6f 72 65 61 63 eturn.$file;.}.}.}.}.}....foreac
e9d60 68 20 28 24 74 68 69 73 2d 3e 66 61 6c 6c 62 61 63 6b 44 69 72 73 50 73 72 30 20 61 73 20 24 64 h.($this->fallbackDirsPsr0.as.$d
e9d80 69 72 29 20 7b 0a 69 66 20 28 66 69 6c 65 5f 65 78 69 73 74 73 28 24 66 69 6c 65 20 3d 20 24 64 ir).{.if.(file_exists($file.=.$d
e9da0 69 72 20 2e 20 44 49 52 45 43 54 4f 52 59 5f 53 45 50 41 52 41 54 4f 52 20 2e 20 24 6c 6f 67 69 ir...DIRECTORY_SEPARATOR...$logi
e9dc0 63 61 6c 50 61 74 68 50 73 72 30 29 29 20 7b 0a 72 65 74 75 72 6e 20 24 66 69 6c 65 3b 0a 7d 0a calPathPsr0)).{.return.$file;.}.
e9de0 7d 0a 0a 0a 20 69 66 20 28 24 74 68 69 73 2d 3e 75 73 65 49 6e 63 6c 75 64 65 50 61 74 68 20 26 }....if.($this->useIncludePath.&
e9e00 26 20 24 66 69 6c 65 20 3d 20 73 74 72 65 61 6d 5f 72 65 73 6f 6c 76 65 5f 69 6e 63 6c 75 64 65 &.$file.=.stream_resolve_include
e9e20 5f 70 61 74 68 28 24 6c 6f 67 69 63 61 6c 50 61 74 68 50 73 72 30 29 29 20 7b 0a 72 65 74 75 72 _path($logicalPathPsr0)).{.retur
e9e40 6e 20 24 66 69 6c 65 3b 0a 7d 0a 0a 0a 20 72 65 74 75 72 6e 20 24 74 68 69 73 2d 3e 63 6c 61 73 n.$file;.}....return.$this->clas
e9e60 73 4d 61 70 5b 24 63 6c 61 73 73 5d 20 3d 20 66 61 6c 73 65 3b 0a 7d 0a 7d 0a 3c 3f 70 68 70 0a sMap[$class].=.false;.}.}.<?php.
e9e80 0a 69 66 20 28 50 48 50 5f 53 41 50 49 20 21 3d 3d 20 27 63 6c 69 27 29 20 7b 0a 20 20 20 20 65 .if.(PHP_SAPI.!==.'cli').{.....e
e9ea0 63 68 6f 20 27 57 61 72 6e 69 6e 67 3a 20 43 6f 6d 70 6f 73 65 72 20 73 68 6f 75 6c 64 20 62 65 cho.'Warning:.Composer.should.be
e9ec0 20 69 6e 76 6f 6b 65 64 20 76 69 61 20 74 68 65 20 43 4c 49 20 76 65 72 73 69 6f 6e 20 6f 66 20 .invoked.via.the.CLI.version.of.
e9ee0 50 48 50 2c 20 6e 6f 74 20 74 68 65 20 27 2e 50 48 50 5f 53 41 50 49 2e 27 20 53 41 50 49 27 2e PHP,.not.the.'.PHP_SAPI.'.SAPI'.
e9f00 50 48 50 5f 45 4f 4c 3b 0a 7d 0a 0a 72 65 71 75 69 72 65 20 5f 5f 44 49 52 5f 5f 2e 27 2f 2e 2e PHP_EOL;.}..require.__DIR__.'/..
e9f20 2f 73 72 63 2f 62 6f 6f 74 73 74 72 61 70 2e 70 68 70 27 3b 0a 0a 75 73 65 20 43 6f 6d 70 6f 73 /src/bootstrap.php';..use.Compos
e9f40 65 72 5c 43 6f 6e 73 6f 6c 65 5c 41 70 70 6c 69 63 61 74 69 6f 6e 3b 0a 0a 65 72 72 6f 72 5f 72 er\Console\Application;..error_r
e9f60 65 70 6f 72 74 69 6e 67 28 2d 31 29 3b 0a 0a 69 66 20 28 66 75 6e 63 74 69 6f 6e 5f 65 78 69 73 eporting(-1);..if.(function_exis
e9f80 74 73 28 27 69 6e 69 5f 73 65 74 27 29 29 20 7b 0a 20 20 20 20 40 69 6e 69 5f 73 65 74 28 27 64 ts('ini_set')).{.....@ini_set('d
e9fa0 69 73 70 6c 61 79 5f 65 72 72 6f 72 73 27 2c 20 31 29 3b 0a 0a 20 20 20 20 24 6d 65 6d 6f 72 79 isplay_errors',.1);......$memory
e9fc0 49 6e 42 79 74 65 73 20 3d 20 66 75 6e 63 74 69 6f 6e 20 28 24 76 61 6c 75 65 29 20 7b 0a 20 20 InBytes.=.function.($value).{...
e9fe0 20 20 20 20 20 20 24 75 6e 69 74 20 3d 20 73 74 72 74 6f 6c 6f 77 65 72 28 73 75 62 73 74 72 28 ......$unit.=.strtolower(substr(
ea000 24 76 61 6c 75 65 2c 20 2d 31 2c 20 31 29 29 3b 0a 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 $value,.-1,.1));.........$value.
ea020 3d 20 28 69 6e 74 29 20 24 76 61 6c 75 65 3b 0a 20 20 20 20 20 20 20 20 73 77 69 74 63 68 28 24 =.(int).$value;.........switch($
ea040 75 6e 69 74 29 20 7b 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 73 65 20 27 67 27 3a 0a 20 20 unit).{.............case.'g':...
ea060 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 2a 3d 20 31 30 32 34 3b 0a 20 20 ..............$value.*=.1024;...
ea080 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6e 6f 20 62 72 65 61 6b 20 28 63 75 6d 75 6c ..............//.no.break.(cumul
ea0a0 61 74 69 76 65 20 6d 75 6c 74 69 70 6c 69 65 72 29 0a 20 20 20 20 20 20 20 20 20 20 20 20 63 61 ative.multiplier).............ca
ea0c0 73 65 20 27 6d 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 24 76 61 6c 75 65 20 2a se.'m':.................$value.*
ea0e0 3d 20 31 30 32 34 3b 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 2f 2f 20 6e 6f 20 62 72 =.1024;.................//.no.br
ea100 65 61 6b 20 28 63 75 6d 75 6c 61 74 69 76 65 20 6d 75 6c 74 69 70 6c 69 65 72 29 0a 20 20 20 20 eak.(cumulative.multiplier).....
ea120 20 20 20 20 20 20 20 20 63 61 73 65 20 27 6b 27 3a 0a 20 20 20 20 20 20 20 20 20 20 20 20 20 20 ........case.'k':...............
ea140 20 20 24 76 61 6c 75 65 20 2a 3d 20 31 30 32 34 3b 0a 20 20 20 20 20 20 20 20 7d 0a 0a 20 20 20 ..$value.*=.1024;.........}.....
ea160 20 20 20 20 20 72 65 74 75 72 6e 20 24 76 61 6c 75 65 3b 0a 20 20 20 20 7d 3b 0a 0a 20 20 20 20 .....return.$value;.....};......
ea180 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 20 3d 20 74 72 69 6d 28 69 6e 69 5f 67 65 74 28 27 6d 65 6d $memoryLimit.=.trim(ini_get('mem
ea1a0 6f 72 79 5f 6c 69 6d 69 74 27 29 29 3b 0a 20 20 20 20 2f 2f 20 49 6e 63 72 65 61 73 65 20 6d 65 ory_limit'));.....//.Increase.me
ea1c0 6d 6f 72 79 5f 6c 69 6d 69 74 20 69 66 20 69 74 20 69 73 20 6c 6f 77 65 72 20 74 68 61 6e 20 35 mory_limit.if.it.is.lower.than.5
ea1e0 31 32 4d 0a 20 20 20 20 69 66 20 28 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 20 21 3d 20 2d 31 20 26 12M.....if.($memoryLimit.!=.-1.&
ea200 26 20 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 28 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 29 20 3c &.$memoryInBytes($memoryLimit).<
ea220 20 35 31 32 20 2a 20 31 30 32 34 20 2a 20 31 30 32 34 29 20 7b 0a 20 20 20 20 20 20 20 20 40 69 .512.*.1024.*.1024).{.........@i
ea240 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 29 3b 0a ni_set('memory_limit',.'512M');.
ea260 20 20 20 20 7d 0a 20 20 20 20 75 6e 73 65 74 28 24 6d 65 6d 6f 72 79 49 6e 42 79 74 65 73 2c 20 ....}.....unset($memoryInBytes,.
ea280 24 6d 65 6d 6f 72 79 4c 69 6d 69 74 29 3b 0a 7d 0a 0a 2f 2f 20 72 75 6e 20 74 68 65 20 63 6f 6d $memoryLimit);.}..//.run.the.com
ea2a0 6d 61 6e 64 20 61 70 70 6c 69 63 61 74 69 6f 6e 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 20 3d 20 mand.application.$application.=.
ea2c0 6e 65 77 20 41 70 70 6c 69 63 61 74 69 6f 6e 28 29 3b 0a 24 61 70 70 6c 69 63 61 74 69 6f 6e 2d new.Application();.$application-
ea2e0 3e 72 75 6e 28 29 3b 0a 0a 43 6f 70 79 72 69 67 68 74 20 28 63 29 20 32 30 31 31 20 4e 69 6c 73 >run();..Copyright.(c).2011.Nils
ea300 20 41 64 65 72 6d 61 6e 6e 2c 20 4a 6f 72 64 69 20 42 6f 67 67 69 61 6e 6f 0a 0a 50 65 72 6d 69 .Adermann,.Jordi.Boggiano..Permi
ea320 73 73 69 6f 6e 20 69 73 20 68 65 72 65 62 79 20 67 72 61 6e 74 65 64 2c 20 66 72 65 65 20 6f 66 ssion.is.hereby.granted,.free.of
ea340 20 63 68 61 72 67 65 2c 20 74 6f 20 61 6e 79 20 70 65 72 73 6f 6e 20 6f 62 74 61 69 6e 69 6e 67 .charge,.to.any.person.obtaining
ea360 20 61 20 63 6f 70 79 0a 6f 66 20 74 68 69 73 20 73 6f 66 74 77 61 72 65 20 61 6e 64 20 61 73 73 .a.copy.of.this.software.and.ass
ea380 6f 63 69 61 74 65 64 20 64 6f 63 75 6d 65 6e 74 61 74 69 6f 6e 20 66 69 6c 65 73 20 28 74 68 65 ociated.documentation.files.(the
ea3a0 20 22 53 6f 66 74 77 61 72 65 22 29 2c 20 74 6f 20 64 65 61 6c 0a 69 6e 20 74 68 65 20 53 6f 66 ."Software"),.to.deal.in.the.Sof
ea3c0 74 77 61 72 65 20 77 69 74 68 6f 75 74 20 72 65 73 74 72 69 63 74 69 6f 6e 2c 20 69 6e 63 6c 75 tware.without.restriction,.inclu
ea3e0 64 69 6e 67 20 77 69 74 68 6f 75 74 20 6c 69 6d 69 74 61 74 69 6f 6e 20 74 68 65 20 72 69 67 68 ding.without.limitation.the.righ
ea400 74 73 0a 74 6f 20 75 73 65 2c 20 63 6f 70 79 2c 20 6d 6f 64 69 66 79 2c 20 6d 65 72 67 65 2c 20 ts.to.use,.copy,.modify,.merge,.
ea420 70 75 62 6c 69 73 68 2c 20 64 69 73 74 72 69 62 75 74 65 2c 20 73 75 62 6c 69 63 65 6e 73 65 2c publish,.distribute,.sublicense,
ea440 20 61 6e 64 2f 6f 72 20 73 65 6c 6c 0a 63 6f 70 69 65 73 20 6f 66 20 74 68 65 20 53 6f 66 74 77 .and/or.sell.copies.of.the.Softw
ea460 61 72 65 2c 20 61 6e 64 20 74 6f 20 70 65 72 6d 69 74 20 70 65 72 73 6f 6e 73 20 74 6f 20 77 68 are,.and.to.permit.persons.to.wh
ea480 6f 6d 20 74 68 65 20 53 6f 66 74 77 61 72 65 20 69 73 20 66 75 72 6e 69 73 68 65 64 0a 74 6f 20 om.the.Software.is.furnished.to.
ea4a0 64 6f 20 73 6f 2c 20 73 75 62 6a 65 63 74 20 74 6f 20 74 68 65 20 66 6f 6c 6c 6f 77 69 6e 67 20 do.so,.subject.to.the.following.
ea4c0 63 6f 6e 64 69 74 69 6f 6e 73 3a 0a 0a 54 68 65 20 61 62 6f 76 65 20 63 6f 70 79 72 69 67 68 74 conditions:..The.above.copyright
ea4e0 20 6e 6f 74 69 63 65 20 61 6e 64 20 74 68 69 73 20 70 65 72 6d 69 73 73 69 6f 6e 20 6e 6f 74 69 .notice.and.this.permission.noti
ea500 63 65 20 73 68 61 6c 6c 20 62 65 20 69 6e 63 6c 75 64 65 64 20 69 6e 20 61 6c 6c 0a 63 6f 70 69 ce.shall.be.included.in.all.copi
ea520 65 73 20 6f 72 20 73 75 62 73 74 61 6e 74 69 61 6c 20 70 6f 72 74 69 6f 6e 73 20 6f 66 20 74 68 es.or.substantial.portions.of.th
ea540 65 20 53 6f 66 74 77 61 72 65 2e 0a 0a 54 48 45 20 53 4f 46 54 57 41 52 45 20 49 53 20 50 52 4f e.Software...THE.SOFTWARE.IS.PRO
ea560 56 49 44 45 44 20 22 41 53 20 49 53 22 2c 20 57 49 54 48 4f 55 54 20 57 41 52 52 41 4e 54 59 20 VIDED."AS.IS",.WITHOUT.WARRANTY.
ea580 4f 46 20 41 4e 59 20 4b 49 4e 44 2c 20 45 58 50 52 45 53 53 20 4f 52 0a 49 4d 50 4c 49 45 44 2c OF.ANY.KIND,.EXPRESS.OR.IMPLIED,
ea5a0 20 49 4e 43 4c 55 44 49 4e 47 20 42 55 54 20 4e 4f 54 20 4c 49 4d 49 54 45 44 20 54 4f 20 54 48 .INCLUDING.BUT.NOT.LIMITED.TO.TH
ea5c0 45 20 57 41 52 52 41 4e 54 49 45 53 20 4f 46 20 4d 45 52 43 48 41 4e 54 41 42 49 4c 49 54 59 2c E.WARRANTIES.OF.MERCHANTABILITY,
ea5e0 0a 46 49 54 4e 45 53 53 20 46 4f 52 20 41 20 50 41 52 54 49 43 55 4c 41 52 20 50 55 52 50 4f 53 .FITNESS.FOR.A.PARTICULAR.PURPOS
ea600 45 20 41 4e 44 20 4e 4f 4e 49 4e 46 52 49 4e 47 45 4d 45 4e 54 2e 20 49 4e 20 4e 4f 20 45 56 45 E.AND.NONINFRINGEMENT..IN.NO.EVE
ea620 4e 54 20 53 48 41 4c 4c 20 54 48 45 0a 41 55 54 48 4f 52 53 20 4f 52 20 43 4f 50 59 52 49 47 48 NT.SHALL.THE.AUTHORS.OR.COPYRIGH
ea640 54 20 48 4f 4c 44 45 52 53 20 42 45 20 4c 49 41 42 4c 45 20 46 4f 52 20 41 4e 59 20 43 4c 41 49 T.HOLDERS.BE.LIABLE.FOR.ANY.CLAI
ea660 4d 2c 20 44 41 4d 41 47 45 53 20 4f 52 20 4f 54 48 45 52 0a 4c 49 41 42 49 4c 49 54 59 2c 20 57 M,.DAMAGES.OR.OTHER.LIABILITY,.W
ea680 48 45 54 48 45 52 20 49 4e 20 41 4e 20 41 43 54 49 4f 4e 20 4f 46 20 43 4f 4e 54 52 41 43 54 2c HETHER.IN.AN.ACTION.OF.CONTRACT,
ea6a0 20 54 4f 52 54 20 4f 52 20 4f 54 48 45 52 57 49 53 45 2c 20 41 52 49 53 49 4e 47 20 46 52 4f 4d .TORT.OR.OTHERWISE,.ARISING.FROM
ea6c0 2c 0a 4f 55 54 20 4f 46 20 4f 52 20 49 4e 20 43 4f 4e 4e 45 43 54 49 4f 4e 20 57 49 54 48 20 54 ,.OUT.OF.OR.IN.CONNECTION.WITH.T
ea6e0 48 45 20 53 4f 46 54 57 41 52 45 20 4f 52 20 54 48 45 20 55 53 45 20 4f 52 20 4f 54 48 45 52 20 HE.SOFTWARE.OR.THE.USE.OR.OTHER.
ea700 44 45 41 4c 49 4e 47 53 20 49 4e 0a 54 48 45 20 53 4f 46 54 57 41 52 45 2e 0a 0a 16 63 ad 66 87 DEALINGS.IN.THE.SOFTWARE....c.f.
ea720 32 d8 1b 90 9c 8c 99 9c 89 0e 99 8f 93 d8 4f 02 00 00 00 47 42 4d 42 2.............O....GBMB